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 Evaluate alternatives identify, resolve risks Risk analysis Risk analysis Risk analysis REVIEW Requirements plan Life-cycle plan Plan next phase Prototype 3 Prototype 2 Risk analysis Prototype 1 Operational protoype Simulations, models, benchmarks Concept of Operation S/W requirements Development plan Requirement validation Integration and test plan Design V&V Product design Detailed design Code Unit test Integration test Acceptance test Develop, verify Service next-level product 10 Iterative Models • Build software in multiple iterations • Two flavors – Incremental – Evolutionary 11 Incremental Model Release 1 Requirements Design Coding Test Deployment Release 2 Design Coding Test Deployment Coding Test Release 3 Design 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 Version 1 Requirements Coding Design Test Deployment Feedback 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 Phases vs. Activities Activities performed concurrently, but with differing intensity Phases Process Workflows Inception Elaboration Construction Transition Business Modeling Requirements Architecture & Design Implementation Test Deployment In an iteration, you walk through all workflows Supporting Workflows Workflows group activities logically Configuration Mgmt Management Environment Preliminary Iteration(s) Iter. #1 Iter. #2 Iter. #n Iter. Iter. #n+1 #n+2 Iterations Iter. #m Iter. 20 #m+1
© Copyright 2026 Paperzz