Evolutionary Models: Prototyping
Q u i ck p l an
Quick
Com m unicat ion plan
communication
Mo d e li n g
Modeling
Qu ick d e si g n
Quick design
Deployment
Deployment Construction
De live r y
delivery & of Const
prototype
r uct ion
& Fe e dback
feedback Construction
of
of ot
pr prototype
ot ype
1
Evolutionary Models: The Spiral
planning
estimation
scheduling
risk analysis
communication
modeling
analysis
design
start
deployment
construction
delivery
code
feedback test
2
Evolutionary Models: Concurrent
none
Modeling act ivit y
represents the state
Under of a software engineering
activity or task
development
A wait ing
changes
Under review
Under
revision
Baselined
Done
3
Still Other Process Models
Component based development—the process to
apply when reuse is a development objective
Formal methods—emphasizes the mathematical
specification of requirements
AOSD—provides a process and methodological
approach for defining, specifying, designing, and
constructing aspects
Unified Process—a “use-case driven, architecture-
centric, iterative and incremental” software process
closely aligned with the Unified Modeling Language
(UML)
4
The Unified Process (UP)
Elaborat ion
elaboration
Incept ion
inception
const ruct ion
Release
t ransit ion
soft ware increment
product ion
5
UP Phases
UP Phases
Incept ion Elaborat ion Const ruct ion Transit ion Product ion
Workflows
Requirements
Analysis
Design
Implementation
Test
Support
Iterations #1 #2 #n-1 #n
6
UP Work Products
Incept ion phase
Elaborat ion phase
Vision document
Init ial use-case model
Init ial project glossary
Const ruct ion phase
Use-case model
Init ial business case Supplement ary requirement s
Init ial risk assessment . including non-funct ional Design model
Transit ion phase
Project plan, Analy sis model Soft ware component s
phases and it erat ions. Soft ware archit ect ure Int egrat ed soft ware Deliv ered soft ware increment
Business model, Descript ion. increment Bet a t est report s
if necessary . Execut able archit ect ural General user feedback
Test plan and procedure
One or more prot ot y pes prot ot y pe.
I nc e pt i o
Test cases
n Preliminary design model Support document at ion
Rev ised risk list user manuals
Project plan including inst allat ion manuals
it erat ion plan descript ion of current
adapt ed workflows increment
milest ones
t echnical work product s
Preliminary user manual
7
Personal Software Process (PSP)
Planning. This activity isolates requirements and develops both size and
resource estimates. In addition, a defect estimate (the number of defects
projected for the work) is made. All metrics are recorded on worksheets or
templates. Finally, development tasks are identified and a project schedule is
created.
High-level design. External specifications for each component to be constructed
are developed and a component design is created. Prototypes are built when
uncertainty exists. All issues are recorded and tracked.
High-level design review. Formal verification methods are applied to uncover
errors in the design. Metrics are maintained for all important tasks and work
results.
Development. The component level design is refined and reviewed. Code is
generated, reviewed, compiled, and tested. Metrics are maintained for all
important tasks and work results.
Postmortem. Using the measures and metrics collected (this is a substantial
amount of data that should be analyzed statistically), the effectiveness of the
process is determined. Measures and metrics should provide guidance for
modifying the process to improve its effectiveness.
8
Team Software Process (TSP)
Build self-directed teams that plan and track their work,
establish goals, and own their processes and plans.
These can be pure software teams or integrated product
teams (IPT) of three to about 20 engineers.
Show managers how to coach and motivate their teams
and how to help them sustain peak performance.
Accelerate software process improvement by making
CMM Level 5 behavior normal and expected.
Provide improvement guidance to high-maturity
organizations.
Facilitate university teaching of industrial-grade team
skills.