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