The Incremental Model

Prescriptive Process Models
1/23
Prescriptive Models

Prescriptive process models advocate an
orderly approach to software engineering
2/23
The Waterfall Model
Communicat ion
project init iat ion
requirement gat hering
Planning
estimating
scheduling
tracking
Modeling
analysis
design
Const ruct ion
code
t est
Deployment
delivery
support
f eedback
Pro: the most widely used model; a template for use
Con: inflexible to changing customer requirements
This is a good model to use when requirements are well
understood
3/23
Incremental Models
Incremental Model: delivers software in small but
usable pieces, each piece builds on pieces
already delivered
Rapid Application and Development (RAD)
Model: makes heavy use of reusable software
components with an extremely short development
cycle
4/23
The Incremental Model
increment # n
Co m m u n i c a t i o n
Pl a n n i n g
M o d e l i n g
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 d b a c k
deliv ery of
nt h increment
increment # 2
Co m m u n i c a t i o n
Pl a n n i n g
M o d e l i n g
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 d b a c k
increment # 1
deliv ery of
2nd increment
Co m m u n i c a t i o n
Pl a n n i n g
M o d e l i n g
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 d b a c k
deliv ery of
1st increment
project calendar t ime
delivers software in small but usable pieces, each piece builds
on pieces already delivered
5/23
A software project has significant functionality
but big pressure on short time-to-market…..
How does the incremental model help to deliver this
software by the business deadline?
Example: A word-processing software
I: basic file management, editing, document production
II: more sophisticated editing and document production
III: spelling and grammar checking
IV: advanced page layout capability
6/23
The RAD Model
The RAD model is a high-speed adaptation of the linear
sequential model. Project requirements must be well
understood and the project scope tightly constrained
Developers can use component-based construction
techniques to build a fully functional system in a short time
period
Pro: may shorten development time significantly
Con: the system may not be modularized for use;
performance issue; risk issue
7/23
The RAD Model
Team # n
M o d e lin g
bus ines s m odeling
dat a m odeling
proc es s 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 es t ing
Team # 2
Co m m u n icat io n
Mo d el i ng
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
Plan n in g
Co nst r uct i o 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
Mo d e lin g
D e p lo ym e n t
int egrat ion
deliv ery
f eedback
business modeling
dat a modeling
process modeling
Co n st r u ct io n
component reuse
aut omat ic code
generat ion
t est ing
6 0 - 9 0 d ays
makes heavy use of reusable software components with
an extremely short development cycle
8/23
Assumptions of using RAD model for software
project development:
1. A project can be modularized
2. Major functionality could be delivered in short time
3. Sufficient human resources will be available
9/23
Evolutionary Models
Prototyping Model: good first step when customer has a
legitimate need, but is clueless about the details,
developer needs to resist pressure to extend a rough
prototype into a production product
Spiral Model: couples iterative nature of prototyping with
the controlled and systematic aspects of the linear
sequential model
Concurrent Development Model: similar to spiral model
often used in development of client/server applications
10/23
Evolutionary Models: Prototyping
Qu ick
p lan
Quick
Com m unicat ion
plan
communication
Mo
d e l in g
Modeling
Qu i ck d e sig n
Quick design
Deployment
Deployment
De live r y
delivery &
& Fe e dback
feedback
Const r uct ion
Construction
of
of ot
prototype
pr
ot ype
11/23
The Prototyping Model
This model is good to use when the customer has
legitimate needs, but is not able to articulate the details
at the start of the project. A small mock-up of a working
system is developed and presented to the customer.
Pro: evaluated by user and used to refine requirements
Con: the first system built is barely usable; unrealistic
expectations from the customer; the performance issue
12/23
Which software projects are easy to
prototype?
Human-machine interaction
Computer graphics
Mathematical algorithms
Command-driven systems
Control functions
Real-time applications
Embedded software
13/23
Evolutionary Models: The Spiral
planning
estimation
scheduling
risk analysis
communication
modeling
analysis
design
start
deployment
delivery
feedback
construction
code
test
Each loop in the spiral shows a phase of the SW process
Each loop will be split into few sections, the task regions
Each region conducts a set of work tasks, the task set
14/23
A Spiral Model (II)
The loops in the spiral could be identified as:
 concept development, product development, product
enhancement and product maintenance OR
 product specification, prototype development, software
versions updated OR
 system feasibility, requirements definition, system
design, etc.
15/23
A Spiral Model (III)
The task regions in each spiral loop could contain:
 customer communication, planning, risk analysis,
engineering, construction & release, customer evaluation
OR
 objective setting, risk assessment and reduction,
development and validation, planning
Points: when to trigger a new phase of the spiral and
what to do?
16/23
A Spiral Model (IV)
 It combines the iterative nature of prototyping with the
systematic control found in the linear sequential model
 Assessment of both management and technical risks is
performed as each incremental release is completed
It demands risk assessment expertise and relies on this
expertise for success.
17/23
Evolutionary Models: Concurrent
none
Modeling act ivit y
rep resent s t he st at e
o f a so f t ware eng ineering
act ivit y o r t ask
Under
development
A wait ing
changes
Under review
Under
revision
Baselined
Done
different parts (stages) of a project will be performed at
different places (activities) concurrently in the process
18/23
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

Unified Process—a “use-case driven, architecturecentric, iterative and incremental” software process
closely aligned with the Unified Modeling Language
(UML)
19/23
The Unified Process (UP)
Elab
o r at io n
elaboration
Incep t io n
inception
inception
co nst r uct io n
Release
soft ware increment
t r ansit io n
p r o d uct io n
20/23
The Unified Process (UP)
Use-case driven, architecture centric, iterative, and
incremental software process
Phases
• Inception phase (customer communication and planning)
• Elaboration phase (communication and modeling)
• Construction phase
• Transition phase (customer delivery and feedback)
• Production phase (software monitoring and support)
21/23
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
22/23
UP and UML
UML is a modeling notation and language to support
OO software engineering practice
UP is a process framework in which UML may be
applied as part of software engineering activities
In UP, what’s the meaning of a workflow?
A task set
Does the UP phase occur in a sequence?
No. UP phases could be with staggered concurrency.
23/23