L02 SoftwareProcess
L02 SoftwareProcess
2. Incremental maintenance
CASE
• Incremental model 4. Other
• RAD – Rapid Application Development – CBSE
– Agile
Waterfall Model
Disadvantages
Software
Process
Advantages • Sequential, does not reflect
Easy reality
• Does not produce a prototype
Process
Model
Structured • Relies heavily on being able to
Linear
Incremental
Provide a accurately assess requirements at
the start
Evolutionary
Other
template into • Little feedback from users until it
which methods for might be too late. Therefore cannot
CASE
analysis, design, adapt to users’ needs, lack of
intelligence and adaptability
code, testing and • Problems in the specification may
maintenance can be found very late (at Coding or
be placed. integration)
• It can take a long time before the
first version is out
Pure Waterfall
• The “god parent” of models
Software
Process • Linear sequence of phases
• “Pure” model: no phases overlap
• Risky!
Process
• Integration and testing occur at the end
Model
Linear • Too late!!
Incremental
Evolutionary
Other
Integration and
system testing
Operation and
maintenance
Incremental Process Models
Software • Goal: provide quick basic functionality to the
Process users
• Process is not linear
Process
Requirements are well defined
Model • Software is completed in small increments
Linear • The system “Grows” in a number of small steps
Incremental
Evolutionary
Other
2 kinds :
CASE 1. Incremental Model
2. RAD
1. Incremental Model
Software • 1st build provides the CORE functionalities
Process
• Each increment “deliverable” adds a new
functionality.
Process • This is repeated until the product is complete
Model
Linear • It combines characteristics of the waterfall model
Incremental and the iterative nature of the prototyping model.
Evolutionary
Other
CASE
When to use?
• When the software can be
Build Then
broken into increments This first This 2nd
and each increment
represent a solution This 3rd This 4th
Complete system
The Incremental Model
Software 1st Example:
Process increme 2nd 3rd Facebook (a social
nt networking website) with
Process parts like member registration,
Model sign in, forget password, member
Linear profile, search members, friends
Incremental list, blog, blog search, photos,
Evolutionary
photo search and messaging.
Other
1st increment:
CASE member registration,
sign in, member
profile and search
members.
2nd increment:
friends list, blog, blog
search.
3rd increment:
Same team develops all the increments photos, photo search,
messaging and
password retrieval .
2. The Rapid Application Development (RAD) Model
Software
Process • Builds on the Incremental model with emphases on
short development cycle.
Process
• A speed waterfall model
Model • Components are built using this model as a fully
Linear functional units in a relatively short time
Incremental
Evolutionary
• It assumes that the system can be modularized
Other • Involves multiple teams!
• RAD will fail if we don’t have strong and skillful
CASE
teams
RAD Model
Te am # n
Software Mo d e lin g
Process
bus ine s s m ode ling
da t a m ode ling
proc e s s m ode ling
Co n s t ru c t io n
c om pone nt re us e
Te am # 2
Process Co m m u n ic at io n a ut om a t ic c ode
ge ne ra t ion
t e s t ing
Model Mo d e ling
b u sin e ss m o d e lin g
Linear d a t a m o d e lin g
p ro ce ss m o d e lin g
Incremental
Plan n in g
Evolutionary Co ns t ruc t io n De p lo ym e n t
Other Te am # 1 co m p o n e n t re u se in t e g rat io n
a u t o m a t ic co d e
g e n e ra t io n d e liv e ry
Mo d e lin g t e st in g fe e d b ack
CASE b u sin e ss mo d e lin g
d at a mo d e lin g
p ro ce ss mo d e lin g
Co n s t ru c t io n
co mp o n e n t re u se
au t o mat ic co d e
g e n e rat io n
t e st in g
6 0 - 9 0 d ays
Evolutionary Process Models
• Specification, development and validation activities are
Software
Process carried out concurrently with rapid feedback across these
activities
• Core requirements are well understood but additional
Process requirements are evolving and changing fast
Model
• Design most prominent parts first
Linear
Incremental • Usually via a visual prototype
Evolutionar
y
• Good for situations with:
Other • Rapidly changing requirements
CASE
• Non-committal customer
• Vague problem domain 3 models:
1. Prototype
2. Spiral
3. Concurrent
Evolutionary Process Models
Software Advantages
Process Do not require full knowledge of the requirements
Iterative (software gets more complex with each
Process iteration)
Model
Linear
Divide project into builds (standalone software package
Incremental - binaries)
Evolutionar
Allows feedback, show user something sooner
y
Other Use to develop more complex systems
Provide steady, visible progress to customer
CASE
Disadvantages
• Time estimation is difficult
• Project completion date may be unknown
1. Prototyping Model
Software
Process • Start with what is known about requirements.
• Complete a quick design.
Process • Build the prototype by focusing on what will be seen
Model by the user.
Linear • Use the prototype to show the user and help refining
Incremental
requirements.
Evolutionary
• Better communication
Prototy
pe
Spiral
Concur E
Other
CASE
Prototype Model
Software Advantages Disadvantages
Process
Prototype can serve as • Customer might think
a way for identifying that the prototype is the
Process
requirements. final product and forget
Model
the lack of quality i.e.
Linear It is developed very
Incremental PERFORMANCE,
quickly.
Evolutionary
RELIABILITY.
Prototy
pe
Spiral When to use?
Concur E
• When the customer define general objectives for the
Other
SW but does NOT identify details about INPUT,
CASE OUTPUT, or processing requirements.
• The developer is unsure of the efficiency of an
algorithm, human machine interaction, etc.
2. Spiral Model
• Iterative (like Prototype) and controlled (like
Software waterfall)
Process
• Software is developed using evolutionary
Process
releases
Model
Linear
• Complexity increase with each release
Incremental • A spiral process rather than as a sequence of activities
with backtracking
Evolutionary
Prototype • Each loop in the spiral represents a phase in the process.
Spiral
Concur E
• No fixed phases such as req. specification or design -
Other loops in the spiral are chosen depending on what is
required—more flexible
CASE
• Emphasize risk analysis and management (Risks are
explicitly assessed and resolved throughout the process)
• A series of Mini-projects
• Each addresses a set of “risks”
The Spiral Model – Start small, explore risks,
prototype, plan, repeat
• Number of spirals is variable
Software
Process
Process
Model
Linear
Incremental
Evolutionary
Prototype
Spiral
Concur E
Other Customer
communication
CASE
Customer
feedback
Spiral Model
Software
Process Advantages
Can be combined with other models
Process
Model
Risk orientation provides early warning of
Linear problems
Incremental
Disadvantages
Evolutionary
Prototype • More complex
Spiral
Concur E
• Requires more management
Other
CASE
When to use?
• Very large projects, mission critical systems
• When technical skills must be evaluated at each step.
3. Concurrent Engineering Model
Software Plan
Process
Process
objective
Model • Based on systematic reuse where
Linear
Incremental
systems are integrated from
Evolutionary existing components or COTS
Other
CBSE
(Commercial-off-the-shelf)
systems. (E.g., data conversion, encryption,
CASE device drivers, data mining modules)
• But you are not an expert is QR-Code technology, what should you do?
• Solution:
• You can use QR-Code Components which can be purchased from vendors.
• For example: http://www.keepautomation.com/products/java_barcode/barcodes/qrcode.html
Software Engineering
Step (2)
System Specification
& Construction
Analysis
Develop a User Design
Requirements
new system
based on System
Analysis
Application
& Design
components Spec Models
Software
Homework