Software Life-Cycle and Process Models

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