Software Life Cycle Models Johns Hopkins University Whiting School of Engineering Course 605.704 Summer 2001 Prof. Joseph M. Demasco Copyright © 2000 Joseph M. Demasco All Rights Reserved Focus of This Module • • • • Purpose of life cycle models Samples of different life cycle models Strengths & weaknesses Appropriateness for object-oriented projects • Analysis & design deliverables Reasons for Using a Life Cycle Model • Provides framework for standard set of terminology, activities & deliverables • Increases visibility of project progress to all stakeholders • Provides basis for project planning, estimating & scheduling • Provides mechanism for project tracking & control Impacts of Choosing an Appropriate Life Cycle • • • • • • Increased development speed Increased product quality Improved tracking & control Improved client relations Decreased project risk Decreased project overhead Adapted from S. McConnell, Rapid Development, Microsoft Press, 1997. Common Types of Life Cycle Models • • • • • • • Code & fix Waterfall Prototyping Spiral Staged delivery Design-to-schedule Iterative/Incremental Code & Fix Model I think you get the jist of things…and I need it next week!! Better get coding!! •Maybe have written specs •Maybe not •Always have customer expectations •No well-defined phases/milestones •Code & fix, code & fix, …. •No time to document •Little/no time to test •Success achieved by heroism & luck •Difficult/impossible to repeat succeses Pure Waterfall Model •Project momentum increases with time Planning & Definition •Difficult to repeat phases •Expensive to repeat phases Requirements Analysis Design •Single pass thru each phase Code & Unit Test •Prior phase ends before next one starts •Many variations exist Formal Test Implement TIME Modified Waterfall Model Planning & Definition Requirements Analysis Design Code & Unit Test Formal Test Implement Waterfall Works Well When... • Requirements are stable – Customers know what they want – Customers will commit • Technology/methodology is wellunderstood • Problem is complex but well-understood • Estimates are updated & commitments renewed one or more times in every phase Waterfall Model Disadvantages • Requirements must be fully-specified up front • Project momentum may make repeating phases difficult • Visibility & control may be poor without careful selection of project milestones • Product not delivered until the end Rapid Prototyping Model •Can help firm up requirements Planning & Definition •Can be incorporated into other SDLC’s Requirements Analysis •Typically focuses on interfaces Design Code & Unit Test Assess Prototype Candidate Evaluation Formal Test Prototype Planning Implement Rapid Analysis Demo Prototype Develop PROTOTYP E Prototype SOURCE: J.M. Demasco, “Incorporating Rapid Prototyping Into the Software Project Life Cycle,” National Conference on Software Engineering, Washington, DC, February 1990. Evolutionary Prototyping Model •Useful when requirements are rapidly changing Concept Definition •Customer reluctant to commit Implement Initial Protoype Refine Prototype •Difficult to predict iteration number/duration •Requires disciplined management •Careful not to degrade into code & fix Implement Spiral Model 3 1 •Spiral Model is “risk-driven” 2 •An iterative model •Divides a project into iterations: 6 •Each iteration treated as a project •Each iteration deals with 1 or more risks •Iterate until all major risks addressed •Last iteration is a waterfall process 5 4 Adapted from B. Boehm, “A Spiral Model of Software Development and Enhancement,” IEEE Computer, May 1988. Staged Delivery Model Planning & Definition Know what is going to be built Requirements Analysis Architectural Design Detailed Design •Must have careful management •Must have careful technical planning •Successive releases must be designed with minimal dependencies Code Release 1 Test ... ... Deliver Detailed Design Code Release N Test Deliver Deliver in stages or increments Design-to-Schedule Model Planning & Definition Requirements Analysis Architectural Design Det. Design •Product is fully planned •Product is fully designed •Staged delivery based on priority High Priority Features Code Staged Release Test Det. Design Medium Priority Features Code •All stages may not be delivered Test DELIVERY DATE Deliver Det. Design Low Priority Features Code Test Life Cycle Model Comparisons Life Cycle Model Capability Works with poorly understood requirements Works with poorly understood architecture Produces highly reliable system Produces growable system Manages risks Can be constrained to a predefined schedule Has low overhead Allows for mid-course corrections Provides customer with progress visibility Provides management with progress visibility Requires little manager/developer sophistication Code & Fix P P P P-F P P E P-E F P E Pure Waterfall P P E E P F P P P F F Adapted from S. McConnell, Rapid Development, Microsoft Press, 1997. Modified Waterfall F-E F-E E E F F E F F F-E P-F Spiral E E E E E F F F E E P Life Cycle Model Comparisons Life Cycle Model Capability Works with poorly understood requirements Works with poorly understood architecture Produces highly reliable system Produces growable system Manages risks Can be constrained to a predefined schedule Has low overhead Allows for mid-course corrections Provides customer with progress visibility Provides management with progress visibility Requires little manager/developer sophistication Evolutionary P/T E P-F F E F P F E E F P Staged Delivery P P E E F F F P F E F Adapted from S. McConnell, Rapid Development, Microsoft Press, 1997. Design-toSchedule P-F P F F-E F-E E F P-F F E P Iterative/Incremental Models • Different meanings to different people • Basic rule of thumb: • Iterative – Each iteration implements a subset of requirements through the test phase – Each iteration adds new functionality and/or refines existing functionality • Incremental – Each increment corresponds to a release with new functionality – Each increment has gone through several iterations • Sample models • Larman • Rational Unified Process (RUP) A Sample Iterative/Incremental Life Cycle Each increment can contain multiple R-D-C-T iterations Requirements Analysis Design Project Planning Code Production Test INCREMENT 1 INCREMENT N
© Copyright 2026 Paperzz