Slide 3.1 Object-Oriented and Classical Software Engineering Fifth Edition, WCB/McGraw-Hill, 2002 Stephen R. Schach srs@vuse.vanderbilt.edu
CHAPTER 3 Slide 3.2 SOFTWARE LIFE-CYCLE MODELS
Overview Slide 3.3 Build-and-fix model Waterfall model Rapid prototyping model Incremental model Extreme programming Synchronize-and-stabilize model Spiral model Object-oriented life-cycle models Comparison of life-cycle models
Software Life-Cycle Models Slide 3.4 Life-cycle model (formerly, process model) The steps through which the product progresses Requirements phase Specification phase Design phase Implementation phase Integration phase Maintenance phase Retirement
Build and Fix Model Slide 3.5 Problems No specifications No design Totally unsatisfactory Need a life-cycle model Game plan Phases Milestones
Waterfall Model Slide 3.6 Characterized by Feedback loops Documentation-driven Advantages Documentation Maintenance easier Disadvantages Specification document» Joe and Jane Johnson» Mark Marberry
Rapid Prototyping Model Slide 3.7 Linear model Rapid
Three Key Points Slide 3.8 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
Waterfall and Rapid Prototyping Models Slide 3.9 Waterfall model Many successes Client s needs Rapid prototyping model Not proved Has its own problems Solution Rapid prototyping for the requirements phase Waterfall model for the rest of the life cycle
Incremental Model Slide 3.10 Divide project into builds
Incremental Model (contd) Slide 3.11 Waterfall, rapid prototyping models Operational quality complete product at end Incremental model Operational quality portion of product within weeks Less traumatic Smaller capital outlay, rapid return on investment Need open architecture maintenance implications Variations used in object-oriented life cycle
Incremental Model (contd) Slide 3.12 Problems Build-and-fix danger Contradiction in terms
Incremental Model (contd) Slide 3.13 More risky version pieces may not fit CABTAB and its dangers
Extreme Programming Slide 3.14 Somewhat controversial new approach Stories (features client wants) Estimate duration and cost of each story Select stories for next build Each build is divided into tasks Test cases for a task are drawn up first Pair programming Continuous integration of tasks
Unusual Features of XP Slide 3.15 Computers are put in the center of a large room lined with cubicles A client representative is always present Cannot work overtime for 2 successive weeks No specialization Refactoring
Evaluating XP Slide 3.16 XP has had some successes Good when requirements are vague or changing Too soon to evaluate XP
Synchronize-and Stabilize Model Slide 3.17 Microsoft s life-cycle model Requirements analysis interview potential customers Draw up specifications Divide project into 3 or 4 builds Each build is carried out by small teams working in parallel
Synchronize-and Stabilize Model (contd) Slide 3.18 At the end of the day synchronize (test and debug) At the end of the build stabilize (freeze build) Components always work together Get early insights into the operation of the product
Spiral Model Slide 3.19 Simplified form Waterfall model plus risk analysis preceding each phase
Simplified Spiral Model Slide 3.20 View of spiral
A Key Point of the Spiral Model Slide 3.21 If all risks cannot be resolved, the project is immediately terminated
Full Spiral Model Slide 3.22 Precede each phase by Alternatives Risk analysis Follow each phase by Evaluation Planning of next phase Radial dimension: cumulative cost to date Angular dimension: progress through the spiral
Full Spiral Model (contd) Slide 3.23
Analysis of Spiral Model Slide 3.24 Strengths It is easy to judge how much to test No distinction is made between development, maintenance Weaknesses For large-scale software only For internal (in-house) software only
Object-Oriented Life-Cycle Models Slide 3.25 Need for iteration within and between phases Fountain model Recursive/parallel life cycle Round-trip gestalt Unified software development process All incorporate some form of Iteration Parallelism Incremental development Danger CABTAB
Fountain Model Slide 3.26 Overlap (parallelism) Arrows (iteration) Smaller maintenance circle
Conclusions Slide 3.27 Different life-cycle models Each with its own strengths Each with its own weaknesses Criteria for deciding on a model include: The organization Its management Skills of the employees The nature of the product Best suggestion Mix-and-match life-cycle model