SE464/CS446/ECE452 Software Life-Cycle and Process Models Instructor: Krzysztof Czarnecki 1
Some of these slides are based on: Lecture slides by Ian Summerville accompanying his classic textbook software engineering, see http://www.comp.lancs.ac.uk/computing/resources/ser/ 2
Overview Build-and-fix model Waterfall model Rapid prototyping model Incremental model Evolutionary Spiral model 3
Software Life-Cycle and Process Models Life-cycle models Phases in the life of artifacts Process models The software development and operation activities and their ordering Requirements elicitation Specification Design Implementation Integration Testing 4
Build and Fix Model Properties No planning or analysis The working program is the only workproduct Advantage Appropriate for small programs written by one person Disadvantage Understandability and maintainability decrease rapidly with increasing program size Totally unsatisfactory Need a life-cycle model Game plan Phases Milestones 5
Waterfall Model Characterized by Sequential steps (phases) Feedback loops (between two phases in development) Documentation-driven Advantages Documentation and clearly defined phases Maintenance easier (assuming up-to-date docs available) Disadvantages Complete and frozen specification document up-front often not feasible in practice Customer involvement in the first phase only Sequential and complete execution of phases often not desirable Process difficult to control The product becomes available very late in the process (significant risk of building the wrong system) Applicability Only appropriate when the requirements are well-understood 6
Rapid Prototyping Model Rapid prototyping phase followed by waterfall Do not turn the rapid prototype into the product Rapid prototyping may replace the specification phase never the design phase Comparison: Waterfall model try to get it right the first time Rapid prototyping frequent change, then discard 7
Advantages and Disadvantages Advantages Requirements better specified and validated Early feasibility analysis Strong involvement of the customer in the prototyping phase Disadvantage Higher development effort Danger that due to schedule slip, the prototype becomes part of the product 8
Spiral model Waterfall model plus risk analysis and prototyping preceding each phase and evaluation following each phase Inner cycles denoting early system analysis and prototyping Outer cycles denoting the rest of the classic waterfall Radial dimension: cumulative cost to date Angular dimension: progress through the spiral If all risks cannot be resolved, the project is immediately terminated Appropriate only for big projects (high management overhead) First proposed by Boehm in 1987 Precursor of iterative models 9
Spiral model Determine objectives alternatives and constraints Plan next phase REVIEW Requirements plan Life-cycle plan Development plan Integration and test plan Risk analysis Risk analysis Risk analysis Prototype 2 Risk analysis Prototype 1 Concept of Operation S/W requirements Requirement validation Design V&V Service Acceptance test Evaluate alternatives identify, resolve risks Prototype 3 Operational protoype Simulations, models, benchmarks Product design Code Unit test Integration test Detailed design Develop, verify next-level product 10
Iterative Models Build software in multiple iterations Two flavors Incremental Evolutionary 11
Incremental Model Requirements Release 1 Design Coding Test Deployment Release 2 Design Coding Test Deployment Release 3 Design Coding Test Deployment User requirements are prioritized and the highest priority requirements are included in early increments Each release adds more functionality, i.e., a new increment 12
Incremental Model Advantages Operational quality portion of product within weeks (whereas in waterfall and rapid prototyping models Operational quality complete product at end) Less traumatic Smaller capital outlay, rapid return on investment Comprehensive spec up front can be used as a contract Disadvantage May be hard to create a comprehensive requirements spec up front if a domain not well understood 13
Evolutionary Version 1 Requirements Design Coding Test Deployment Version 1 Requirements Design Coding Test Deployment Version 1 Requirements Feedback Design Coding Test Deployment New versions implement new (increments) and evolving requirements (Many refer to it as just iterative) 14
Evolutionary Model (contd) Advantages Early increments act as a prototype to help elicit requirements for later increments Constant customer involvement and validation Allows for good risk management - lower risk of overall project failure Project can be continued as long as each increment delivers value Agile software development methods use the evolutionary model Disadvantages Build-and-fix danger Can use agile development practices (unit test, increment planning, etc.) to avert this danger Not appropriate when a larger part of a system needs to be commissioned from a supplier Need a comprehensive requirements spec as a contract up front 15
Process model risk problems Waterfall High risk for new systems because of specification and design problems Low risk for well-understood developments using familiar technology Prototyping Lower risk for new applications because specification validated Potentially high risk for stages beyond prototyping Evolutionary Middle ground between waterfall and prototyping 16
Hybrid process models Large systems are usually made up of several sub-systems The same process model need not be used for all subsystems Prototyping for high-risk specifications Waterfall model for well-understood developments Taylor the process to a problem 17
Use of the Models in Practice 18
Lifecycle vs. Processes Lifecycle models Phases in the life of an artifact, e.g., a system Process models Activities performed on artifacts, e.g., development activities 19
Process Workflows Business Modeling Requirements Architecture & Design Implementation Test Phases vs. Activities Activities performed concurrently, but with differing intensity Phases Inception Elaboration Construction Transition Deployment Supporting Workflows In an iteration, you walk through all workflows Configuration Mgmt Workflows group activities logically Management Environment Preliminary Iteration(s) Iter. #1 Iter. #2 Iter. #n Iter. #n+1 Iter. #n+2 Iter. #m Iter. #m+1 20 Iterations