3. Overview
• Process Models
▫ Perspective process models
Waterfall
Incremental
Evolutionary
▫ Specialized Process Models
▫ Component-Based Development
▫ The Formal Methods Model
▫ Aspect-Oriented Software Development.
3
4. • Prescriptive process models define a predefined
set of process elements and a predictable process
work flow.
• Prescriptive process models strive for structure
and order in software development.
• Activities and tasks occur sequentially with
defined guidelines for progress.
4
6. Advantages & Disadvantages
• Advantages
▫ Base model
▫ Simple and easy
▫ Small projects with well understood requirements
• Disadvantages
• No feedback
• No parallel activities
• High risk
• Need patience to see final output
6
8. • Also known as verification and validation model
• Extension of waterfall model.
• Testing is associated with every phase of life
cycle
• Advantages
• Time saving
• Every component must be testable
• Progress can be tracked easily
• Proactive defect tracking
• Disadvantages
• No feedback
• Risk analysis not done
8
9. The Incremental Model
C o m m u n i c a t i o n
P l a n n i n g
M o d e l i n g
C o n s t r u c t i o n
D e p l o y m e n t
d e l i v e r y
f e e d b a c k
analy sis
design code
t est
increment # 1
increment # 2
delivery of
1st increment
delivery of
2nd increment
delivery of
nt h increment
increment # n
project calendar time
C o m m u n i c a t i o n
P l a n n i n g
M o d e l i n g
C o n s t r u c t i o n
D e p l o y m e n t
d e l i v e r y
f e e d b a c k
analy sis
design code
t est
C o m m u n i c a t i o n
P l a n n i n g
M o d e l i n g
C o n s t r u c t i o n
D e p l o y m e n t
d e l i v e r y
f e e d b a c k
analysis
design
code
t es t
10. • Used when requirements are well understood
• Multiple independent deliveries are identified.
• Workflow is in a linear fashion in each
increment.
• Provides needed functionality earlier while
delivering optional components later.
• Useful when staffing is too short for full scale
development.
10
11. Evolutionary Models: Prototyping
Construction
of prototype
Communicat ion
Quick plan
Const ruct ion
of
prot ot ype
Mo de ling
Quick de sign
De live ry
& Fe e dback
Deployment
communication
Quick
plan
Modeling
Quick design
Construction
of prototype
Deployment
delivery &
feedback
12. Description
• Mixture of evolutionary and iterative approach
• Used when requirements are not sure.
• Serves as mechanism to identify requirements
• Feedback is used to refine the product.
12
13. Disadvantages
• Stakeholders see what appears to be a working version of
the software. They may be unaware that the prototype
architecture is also evolving. This means that the
developers may not have considered the overall software
quality or long-term maintainability.
• As a software engineer, you may be tempted to make
implementation compromises to get a prototype working
quickly. If you are not careful, these less than- ideal
choices have now become an integral part of the evolving
system.
13
14. Evolutionary Models: The Spiral
communication
planning
modeling
construction
deployment
delivery
feedback
start
analysis
design
code
test
estimation
scheduling
risk analysis
15. • Objective setting: Specific objectives for the phase
are identified.
• Risk assessment and reduction: Risks are assessed
and activities are put in place to reduce the key risks.
• Development and validation: A development model
for the system is chosen which can be any of the
general models.
• Planning: The project is reviewed and the next phase
of the spiral is planned.
Spiral Model sectors
17. • Risk handling
• Radius of spiral=cost
• Angular dimension = progress
• Meta model
• Good for large projects
• Customer satisfaction
• Disadvantages
▫ Complex
▫ Expertise
▫ Time
17
18. Evolutionary Models: Concurrent
Under review
Baselined
Done
Under
revision
Await ing
changes
Under
development
none
Modeling activity
represents the state
of a software engineering
activity or task
20. Class assignment
• what happens when we emphasize development
speed over product quality?
20
Editor's Notes
Simple, well defined requirements, no change friendly
The spiral model is similar to the incremental model, with more emphases placed on risk analysis.
The spiral model has four phases:
Planning,
Risk Analysis
Engineering
Evaluation.
A software project repeatedly passes through these phases in iterations (called Spirals in this model).
The baseline spiral, starting in the planning phase, requirements are gathered and risk is assessed.
Each subsequent spiral builds on the baseline spiral. Requirements are gathered during the planning phase.
In the risk analysis phase, a process is undertaken to identify risk and alternate solutions. A prototype is produced at the end of the risk analysis phase.
Software is produced in the engineering phase, along with testing at the end of the phase. The evaluation phase allows the customer to evaluate the output of the project to date before the project continues to the next spiral.
In the spiral model, the angular component represents progress, and the radius of the spiral represents cost.