Prescriptive Software Models Recall Boehm’s paper • Why did they “invent” the waterfall model? – Distinction between programmer and user – Increased application,

Download Report

Transcript Prescriptive Software Models Recall Boehm’s paper • Why did they “invent” the waterfall model? – Distinction between programmer and user – Increased application,

Prescriptive Software Models
Recall Boehm’s paper
• Why did they “invent” the waterfall model?
– Distinction between programmer and user
– Increased application, higher risks
– Large systems: development is a group activity
• Bring order to chaos:
– Increased system and company size requires a design
phase
– Different end users demands a requirements phase
– Need for quality demands an orderly approach
Prescriptive models
• Several variants of the waterfall model exist
– All depend on stable requirements
– All focus on deliverables and documentation
• These models are still popular today
– For contracts that require documentation (DoD,
government, etc)
– For large systems with many developers
– But they frequently “fail”
• What are the benefits and drawbacks of each?
Types of Prescriptive Models
• Waterfall
Com m unic a t ion
proje c t init ia t ion
re quire m e nt ga t he ring
Planning
estimat ing
scheduling
tracking
Mode ling
analysis
design
Const r uc t ion
code
t est
De ploy m e nt
de liv e ry
s upport
f e e dba c k
Types of Prescriptive Models
• Incremental
increment # n
Co m m u n i c a t i o n
Pla nning
M ode ling
analy s is
des ign
Co n s t ru c t i o n
c ode
t es t
De p l o y m e n t
d e l i v e ry
fe e dba c k
deliv ery of
nt h increment
increment # 2
Co m m u n i c a t i o n
Pla nning
M ode ling
analy s is
des ign
Co n s t ru c t i o n
c ode
De p l o y m e n t
t es t
d e l i v e ry
fe e dba c k
increment # 1
Co m m u n i c a t i o n
Pla nning
M ode ling
analy s is
des ign
Co n s t ru c t i o n
c ode
De p l o y m e n t
t es t
d e l i v e ry
fe e dba c k
deliv ery of
1st increment
project calendar t ime
deliv ery of
2nd increment
Types of Prescriptive Models
• Rapid Application Development (RAD)
Team # n
M o d e lin g
bus ines s m odeling
dat a m odeling
proc ess m odeling
C o n s t r u c t io n
c om ponent reus e
aut om at ic c ode
generat ion
t est ing
Team # 2
Com m unicat ion
Mo d eling
b u si n e ss m o d e l i n g
dat a m odeling
p ro ce ss m o d e l i n g
Planning
Co nst r uct io n
Team # 1
co m p o n e n t re u se
a u t o m a t i c co d e
g e n e ra t i o n
t e st i n g
Mode ling
business modeling
dat a modeling
process modeling
Const r uct ion
component reuse
aut omat ic code
generat ion
t est ing
6 0 - 9 0 days
De ploym e nt
int egrat ion
deliv ery
feedback
Types of Prescriptive Models
• Evolutionary models: spiral
planning
estimation
scheduling
risk analysis
communication
modeling
analysis
design
start
deployment
delivery
feedback
construction
code
test
Types of Prescriptive Models
• Prototyping
Qu ick p l an
Com m unicat ion
Mo d e lin g
Qu ick d e sig n
Deployment
De live r y
& Fe e dback
Const r uct ion
of
pr ot ot ype
Types of Prescriptive Models
• Unified Process Model
UP Phas e s
Incept ion
Elaborat ion
Const ruct ion
Transit ion
Wor k flow s
Requirements
Analysis
Design
Implementation
Test
Support
Iterati ons
#1
#2
#n-1
#n
Product ion
In-class exercise
• Which prescriptive model would you use to:
– Developing software to automatically drive
racecars through a track without crashing. This has
never been attempted before under software
control. The requirements are stable.
– Developing software to track the financial bailout.
The software requirements are very clear. You
need to create a system to perform 3 distinct
tasks. All functions will interface with each other
and the same underlying database.