03-Software Lifecycle Models
03-Software Lifecycle Models
Reading:
Rapid Development Ch. 7, 25
(further reading: Ch. 21, 35, 36, 20)
These lecture slides are copyright (C) Marty Stepp, 2007, with significant content taken from slides
written by Valentin Razmov. They may not be rehosted, sold, or modified without expressed
permission from the author. All rights reserved.1
Lecture outline
The software lifecycle
evaluating models
Lifecycle models
code-and-fix
waterfall
spiral
evolutionary prototyping
staged delivery
design-to-schedule
2
Ad-hoc development
ad-hoc development: creating software without any
formal guidelines or process
3
The software lifecycle
software lifecycle: series of steps / phases, through
which software is produced
can take months or years to complete
4
Lifecycle phases
standard phases
Requirements Analysis & Specification
High-level (Architectural) Design
Detailed (Object-oriented) Design
Implementation, Integration, Debugging
Testing, Profiling, Quality Assurance
Operation and Maintenance
5
One view of SW cycle phases
Implemented
Expressed in By
Structured By Realized By
Terms Of Verified
By
class...
class...
class... ?
class....?
Use Case Application Solution
Domain Subsystems Source Test
Model Domain
Objects Code Cases
Objects
6
Some software models
Several models for developing software have been
attempted, varying the order and frequency in which
these stages occur:
code-and-fix: write some code, debug it, repeat until finished
waterfall: perform the standard phases (requirements, design,
code, test) in sequence
spiral: assess risks at each step, and do the most critical
action immediately
evolutionary prototyping: build an initial requirement spec,
code it, then "evolve" the spec and code as needed
staged delivery: build initial requirement specs for several
releases, then design-and-code each in sequence
7
Model pros/cons
value of models
decomposing workflow
understanding and managing the process
as a management tool
limitations of models
a model is just a model
abstracts away some aspects and highlights others
artificial constraints
compromises with model are often necessary
(as with almost everything in SE)
risk of overemphasizing the process
the process is not the end in itself; product delivery is
8
Evaluating models
Criteria for evaluation of models
Risk management
Quality / cost control
Predictability
Visibility of progress
Customer involvement and feedback
9
Code-and-fix model
code first
version
modify until
client is satisfied
operations mode
retirement
10
Problems with code-and-fix
benefits
no planning whatsoever; little management overhead
applicable for very small projects and short-lived prototypes
req. change
requirements
verify
design
verify
implementation
test
operations
retirement
12
Detailed waterfall view
13
Waterfall issues
waterfall model is perhaps the most common model for
software development
we will use a waterfall-like model in this course
benefits
formal, standard; has specific phases with clear goals
good feedback loops between adjacent phases
What are some drawbacks to this method?
15
Spiral model (Boehm)
Cumulative
cost
Progress
through
Determine steps Evaluate alternatives,
objectives, identify, resolve risks
alternatives,
constraints
(OAC) Risk
Assessment
Concrete
Specification
OAC Risk
Assessment
Abstract
Barry Boehm, USC Specifcation
OAC Risk Risk
Requirements Assessment Control
Risk
OAC Control
Risk
Commit Control
Review
partition Requirements
Concept of
Plan
Operation
Requirements
Abstract Specification Abstract
Plan Specification Concrete
Requirements Specification
Validation
Concrete Specification
Plan
Abstract Specification
Validation
Software Concrete
Plan next phases Development Plan Specification Validation Develop, verify
and Verification next-level product
16
Another view of the spiral
17
Another view of spiral model
Risk Assessment
Req. Change
Requirements
Risk Assessment
Verify
Design
Risk Assessment
Verify
Implementation
Test
Adds a Risk Analysis
step to each phase
Operations
19
Spiral benefits
benefits of spiral
provides early indication of unforeseen problems
as costs increase, risks decrease
always addresses the biggest risk first
focuses attention on reuse
accommodates changes, growth
eliminates errors and unattractive choices early
limits to how much is enough (not too much design, reqs, etc)
treats development, maintenance same way
20
Spiral problems
What are some drawbacks to the spiral model?
- complicated
- relies on developers to have risk-assessment expertise
- possibly more management overhead to assess risk
- need for more elaboration of project steps
(clearer milestones)
- matching to contract software
(doesn't work well when you're bound to a fixed
inflexible contract)
21
Evolutionary prototype model
requirements
verify
arch. design
verify
for each build:
perform detailed
design, implement,
test, deliver
operations
retirement
22
Evolutionary details
idea: build an initial requirement spec, code it, then
"evolve" the spec and code as needed
each repetition is an "evolution" of the code, not necessarily
bug fixes
24
Problems with evolutionary
What are some problems with this model?
25
Staged delivery
staged delivery
waterfall-like beginnings, then develop in short stages
requires tight coordination with documentation, management,
and marketing
can ship at any time during implementation
from the outside (to customers) it looks like a successful
delivery even if it is not the final goal the team aimed for
design-to-tools
a model where the project only incorporates features that are
easy to implement by using or combining existing components
reduces development time at cost of losing control of project
27
Which model is best?
The choice of a model depends on the project
circumstances and requirements.
A good choice of a model can result in a vastly more
productive environment than a bad choice.
A cocktail of models is frequently used in practice to
get the best of all worlds.
care must be applied; some models can't mix easily or at all
waterfall
spiral
evolutionary
prototyping
staged delivery
design-to-
schedule
29
Possible answer
Rate each model 1-5 in each of the categories shown:
Risk Quality/ Predict- Visibility Customer
mgmt. cost ctrl. ability involvement
code-and-fix
1 1 1 3 2
waterfall
2 4 3 1 2
spiral
5 5 3 3 3
evolutionary
prototyping 3 3 2 5 5
staged delivery
3 5 3 3 4
design-to-
schedule 4 3 5 3 2
30