CSC 205 - Software Engineering I 1 Overview - Software Lifecycles, Processes, Methods and Tools Software lifecycle basics Software lifecycles – build-and-fix.

Slides:



Advertisements
Similar presentations
1 Software Processes A Software process is a set of activities and associated results which lead to the production of a software product. Activities Common.
Advertisements

Lecture # 2 : Process Models
1 Information Systems Development (ISD) Systems Development Life Cycle Overview of Analysis Phase Overview of Design Phase CP2236: Information Systems.
Software Engineering CSE470: Process 15 Software Engineering Phases Definition: What? Development: How? Maintenance: Managing change Umbrella Activities:
1 Chapter 4 - Part 1 Software Processes. 2 Software Processes is: Coherent (logically connected) sets of activities for specifying, designing, implementing,
CSE 470 : Software Engineering The Software Process.
CHAPTER 1 SOFTWARE DEVELOPMENT. 2 Goals of software development Aspects of software quality Development life cycle models Basic concepts of algorithm.
SEP1 - 1 Introduction to Software Engineering Processes SWENET SEP1 Module Developed with support from the National Science Foundation.
Chapter 2 – Software Processes
© 2005 by Prentice Hall Appendix 2 Automated Tools for Systems Development Modern Systems Analysis and Design Fourth Edition Jeffrey A. Hoffer Joey F.
CH02: Modeling the process and life cycle Process of developing software (organization and discipline in the activities) contribute to the quality of the.
Chapter 6: Design of Expert Systems
CSC 402 Requirements Engineering 1 Overview - Software Lifecycles, Processes, Methods and Tools Software lifecycle basics Software lifecycles – build-and-fix.
CSC 402 Requirements Engineering 1. 2 Problem Definition Requirements Definition informal statement of need for system natural language statement of what.
R R R CSE870: Advanced Software Engineering (Cheng): Intro to Software Engineering1 Advanced Software Engineering Dr. Cheng Overview of Software Engineering.
CSC x402 Requirements Engineering 1 Overview - Software Lifecycles, Processes, Methods and Tools Software lifecycle basics Software lifecycles – build-and-fix.
Fundamentals of Information Systems, Second Edition
Software lifecycle. CS351 - Software Engineering (AY2004)2 Software lifecycle “student view” Design & Specification Coding Testing (optional) Hand it.
Software Lifecycle Software Lifecycle Basics Lifecycle Models Methods and Tools.
Software Process CS 414 – Software Engineering I Donald J. Bagert Rose-Hulman Institute of Technology December 17, 2002.
© 2005 by Prentice Hall Appendix 2 Automated Tools for Systems Development Modern Systems Analysis and Design Fourth Edition Jeffrey A. Hoffer Joey F.
Chapter 3 Software Processes.
Appendix 2 Automated Tools for Systems Development © 2006 ITT Educational Services Inc. SE350 System Analysis for Software Engineers: Unit 2 Slide 1.
S/W Project Management Software Process Models. Objectives To understand  Software process and process models, including the main characteristics of.
CSI315 Web Applications and Technology Overview of Systems Development (342)
Chapter 2 The process Process, Methods, and Tools
Chapter 2 The Process.
Dillon: CSE470: SE, Process1 Software Engineering Phases l Definition: What? l Development: How? l Maintenance: Managing change l Umbrella Activities:
1 Chapter 2 The Process. 2 Process  What is it?  Who does it?  Why is it important?  What are the steps?  What is the work product?  How to ensure.
College of Engineering and Computer Science Computer Science Department CSC 131 Computer Software Engineering Fall 2006 Lecture # 1 (Ch. 1, 2, & 3)
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 1 Software Processes.
©Ian Sommerville 2000, Mejia-Alvarez 2009 Slide 1 Software Processes l Coherent sets of activities for specifying, designing, implementing and testing.
Introduction to Software Engineering LECTURE 2 By Umm-e-Laila 1Compiled by: Umm-e-Laila.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 3 Slide 1 Software Processes l Coherent sets of activities for specifying, designing,
Capability Maturity Models Software Engineering Institute (supported by DoD) The problems of software development are mainly caused by poor process management.
Software Engineering Lecture # 17
Software Life-Cycle Models Somnuk Keretho, Assistant Professor Department of Computer Engineering Faculty of Engineering, Kasetsart University
Software Engineering Management Lecture 1 The Software Process.
CS451 - Lecture 3 1 CS451 Lecture 3: Software Lifecycle and Product Yugi Lee STB #555 (816) * Acknowledgement:
Lecture 3 Software Engineering Models (Cont.)
Software Engineering Principles Principles form the basis of methods, techniques, methodologies and tools Principles form the basis of methods, techniques,
CS 3610: Software Engineering – Fall 2009 Dr. Hisham Haddad – CSIS Dept. Chapter 2 The Software Process Discussion of the Software Process: Process Framework,
University of Sunderland CIFM03Lecture 2 1 Quality Management of IT CIFM03 Lecture 2.
Slide 2.1 CHAPTER 2 THE SOFTWARE PROCESS. Slide 2.2 Overview l Client, Developer, and User l Requirements Phase l Specification Phase l Design Phase l.
Historical Aspects Origin of software engineering –NATO study group coined the term in 1967 Software crisis –Low quality, schedule delay, and cost overrun.
Software Engineering II Lecture 3 Fakhar Lodhi. Software Life-Cycle Steps Life-cycle model (formerly, process model) –Requirements phase –Specification.
Software Engineering - Abdul Majeed. What is software? Definition of Software Engineering Software Process Generic view of Software Engineering Software.
Level 1 Level 1 – Initial: The software process is characterized as ad hoc and occasionally even chaotic. Few processes are defined, and success depends.
Chapter 2 – Software Processes Lecture 1 Chapter 2 Software Processes1.
© 2006 Pearson Addison-Wesley. All rights reserved 2-1 Chapter 2 Principles of Programming & Software Engineering.
Software Engineering Jon Walker. What is Software Engineering? Why do we call it Software Engineering? Why not just call it programming or software development?
Assoc. Prof. Dr. Ahmet Turan ÖZCERİT.  System and Software  System Engineering  Software Engineering  Software Engineering Standards  Software Development.
Software Development Life Cycle (SDLC)
Ch7: Software Production Process. 1 Waterfall models  Invented in the late 1950s for large air defense systems, popularized in the 1970s  Main characteristics:
Process Asad Ur Rehman Chief Technology Officer Feditec Enterprise.
CS3320-Chap21 Office Hours TR 1:00-2:15 PM W 2:30-3:30 PM By appointment.
Software Development Process CS 360 Lecture 3. Software Process The software process is a structured set of activities required to develop a software.
Lectures 2 & 3: Software Process Models Neelam Gupta.
Software Project Management Unit 1. Evolving role of software S/w now a days resides in the mobile, mainframes The main role of the s/w is to transform.
Systems Development Process and Methodologies Dr. T. Ravichandran.
Advanced Software Engineering Dr. Cheng
Appendix 2 Automated Tools for Systems Development
Software Engineering Management
Software Processes (a)
Business System Development
Chapter 6: Design of Expert Systems
Level 1 Level 1 – Initial: The software process is characterized as ad hoc and occasionally even chaotic. Few processes are defined, and success depends.
Software life cycle models
CS310 Software Engineering Lecturer Dr.Doaa Sami
Information Systems Development (ISD) Systems Development Life Cycle
Presentation transcript:

CSC Software Engineering I 1 Overview - Software Lifecycles, Processes, Methods and Tools Software lifecycle basics Software lifecycles – build-and-fix – waterfall – rapid prototype – incremental – spiral Process improvement – CMM & ISO9000 Methods and Tools

CSC Software Engineering I 2 Software Lifecycle A series of steps through which a software product progresses Lifetimes vary from days to months to years Consists of – people! – overall process – intermediate products – stages of the process

CSC Software Engineering I 3 Software Production Personnel Client – individual or organization that wants a product to be developed Developer(s) – (members of) an organization producing the product User(s) – person who authorizes the client to contract the developer – person(s) who will utilize software in operation internal software development: client = developer contract software development: client ≠ developer

CSC Software Engineering I 4 What is a process? Device for producing a product (getting the job done!) Level of indirection – Process description describes wide class of instances Humans create process descriptions to solve classes of problems Thus – software processes are devices for creating and evolving software products

CSC Software Engineering I 5 Intermediate Software Products Objectives – Demarcate end of phases – Enable effective reviews – Specify requirements for next phase Form – Rigorous – Machine processible (highly desirable) Content – Specifications, Tests, Documentation

CSC Software Engineering I 6 Phases of a Software Lifecycle Standard Phases – Requirements Analysis & Specification – Design – Implementation and Integration – Operation and Maintenance – Change in Requirements – Testing throughout! Phases promotes manageability and provides organization

CSC Software Engineering I 7 Requirements Analysis and Specification Problem Definition —> Requirements Specification – determine exactly what client (and user) wants and process constraints – develop a contract with client – what task the product is to do Difficulties – client asks for wrong product – client is computer/software illiterate – specifications may be ambiguous, inconsistent, incomplete Validation – extensive specification reviews to check that requirements satisfies client needs – look for ambiguity, consistency, incompleteness – check for feasibility, testability – develop system/acceptance test plan

CSC Software Engineering I 8 Design Requirements Specification —> Design – develop architectural design (system structure): decompose software into modules with module interfaces – develop detailed design (module specifications): select algorithms and data structures – maintain record of design decisions and traeability – how the product is to do its task Difficulties – miscommunication between module designers – design may be inconsistent, incomplete, ambiguous Verification – extensive design reviews (inspections with checklists) to determine that design conforms to requirements – check module interactions – develop integration test plan

CSC Software Engineering I 9 Implementation and Integration Design —> Implementation – implement modules and verify they meet their specifications – combine modules according to architectural design – how the product does its task Difficulties – module interaction errors – order of integration has a critical influence on product quality and productivity Verification and Testing – extensive code reviews (inspections with checklists) to determine that implementation conforms to requirements and design – develop and test on unit/module test plan: focus on individual module functionality – test on integration test plan: focus on module interfaces – test on system test plan: focus on requirements and determine whether product as a whole functions correctly

CSC Software Engineering I 10 Operation and Maintenance Operation —> Change – maintain software after (and during) user operation – integral part of process – determine whether product as a whole still functions correctly Difficulties – design not extensible – lack of up-to-date documentation – personnel turnover Verification and Testing – extensive review to determine that change is made correctly and all documentation updated – test to determine that change is correctly implemented – test to determine that no inadvertent changes were made to compromise system functionality (check that no affected software has regressed)

CSC Software Engineering I 11 Build-and-Fix Build First Version Retirement Operations Mode Modify until Client is satisfied

CSC Software Engineering I 12 Waterfall (collapsed) - See Schach, pg. 66 Requirements Verify Retirement Operations Test Implementation Verify Design Req. Change

CSC Software Engineering I 13 Rapid Prototyping - See Schach, pg. 71 Rapid Prototype Verify Retirement Operations Test Implementation Verify Design Req. Change

CSC Software Engineering I 14 For each build: Perform detailed design, implement. Test. Deliver. Incremental - See Schach, pg. 73 Requirements Verify Retirement Operations Verify Arch. Design

CSC Software Engineering I 15 The Spiral Model [Boehm,1988]

CSC Software Engineering I 16 (Extremely) Simplified Spiral Model Requirements Verify Retirement Operations Test Implementation Verify Design Req. Change Add a Risk Analysis step to each phase! Risk Assessment

CSC Software Engineering I 17 CMM is not a software lifecycle model... but a strategy for improving the software process regardless of the process model followed – Basic premise: the use of new software methods alone will not improve productivity and quality, because software management is, in part, the cause of problems – CMM assists organizations in providing the infrastructure required for achieving a disciplined and mature process Includes – technical aspects of software production – managerial aspects of software production Capability Maturity Model (CMM) [Watts Humphrey,1989]

CSC Software Engineering I 18 Capability Maturity Model (continued) Five maturity levels – 1. initial – ad hoc process – 2. repeatable process – basic project management – 3. defined process – process modeling and definition – 4. managed process – process measurement – 5. optimizing process – process control and dynamic improvement to move from one stage to the next, the SEI provides a series of questionnaires and conducts process assessments that highlight current shortcomings

CSC Software Engineering I 19 ISO 9000 Further attempt to improve software quality based on International Standards Organization (ISO) ISO 9000 = series of five related standards – within ISO 9000 standard series ISO focuses on software and software development Basic features: – stress on documenting the process in both words and pictures – requires management commitment to quality – requires intensive training of workers – emphasizes measurement Adopted by over 60 countries (USA, Japan, European Union,...) To be ISO 9000 compliant, a company’s process must be certified

CSC Software Engineering I 20 Software Methods and Tools Methods provide a means or procedure for accomplishing a task Tools are devices for performing some task – analytical tools – software tools Methodology guides the proper use of methods and tools Process helps to enact a methodology Environments are a synergistic collection of tools with process support

CSC Software Engineering I 21 Analytical Tools Problem solving techniques that help in software development – cost-benefit analysis ¤ compare expected benefits against estimated costs – stepwise refinement ¤ divide and conquer – abstraction ¤ focus on some important property and ignore (for the time being) irrelevant details Analytical tools underlie many software development methods

CSC Software Engineering I 22 Software Tools Software tools are an automated implement for performing a task Tools facilitate work because they are – fast, immune to boredom and "cheating" Actual Software Tools are... – powerful, effective, convenient, natural, reliable, robust – Most software development tools are not ¤ exceptions: compilers, editors, loaders these have been polished, refined, and debugged through long-term use and hence made reliable and robust these have been made natural and effective through extended exposure and maintenance

CSC Software Engineering I 23 Tool Obstacles Tool use obstacles – developers tend to be like hammer and screwdriver carpenters – tools are not powerful and/or effective – tools are unreliable and/or unrobust ¤ comes with time and money – tools are inconvenient and/or unnatural ¤ comes from successful use Tool building obstacles – Short history of large-scale software development – Limited success in ¤ developing software well ¤ exploiting “tools” successfully – Few software techniques have had time and use required to achieve tool status – No “tools” at all in some key areas (e.g., real-time analysis)

CSC Software Engineering I 24 Requirements Preview Requirements determine the “What” of a software product’s functionality. Requirements analysis and specification transforms – informal product definition into – formal requirements specification A step in between is transforming the product definition into a natural language statement of the system’s functionality