CH-2 Software Development Methodoogies
CH-2 Software Development Methodoogies
2
The Waterfall Model
• The waterfall model is the classic lifecycle
sense” approach.
• Introduced by Royce 1970.
3
phase
User Requirements output User Requirements Document
5
Cont…………
6
Disadvantages
• Idealised, doesn’t match reality well.
7
Cont...........
•Difficult to integrate risk management
8
Cont……
• All requirements must be known upfront
9
When to use the Waterfall Model
Requirements are very well known
Technology is understood
• If no go to 1
• else stop.
11
This loop approach gives rise to structured iterative lifecycle
models.
In 1988 Boehm developed the spiral model as an iterative
model which includes risk analysis and risk management.
12
Cumulative cost Evaluate alternatives,
Determine objectives, Identify & resolve risks
alternatives & constraints
Prototypes Operational
Review & Start P1 P2 P3 Prototype
commitment RequirementsConcept Design, Detailed design
plan Of Operation Validation
Development & Verification
plan Requirements
validation Coding
Integration &
Test plan Unit & Integration
Testing
End Acceptance Develop & verify
Plan next phase Testing
next-level product
13
Each cycle follows a waterfall model by:
• Determining objectives
• Specifying constraints
• Generating alternatives
• Identifying risks
• Resolving risks
14
Advantages
• Realism: the model accurately reflects the iterative nature
of software development on projects with unclear
requirements
15
Cont……….
• Provides early indication of insurmountable risks, without
much cost
17
Cont….
• Time spent for evaluating risks is too large for small or low-
risk projects
• Time spent for planning, resetting objectives, doing risk
analysis and prototyping may be excessive
• The model is complex
• Risk assessment expertise is required
• Spiral may continue indefinitely
• Developers must be reassigned during non-development
phase activities
• May be hard to define objective, verifiable milestones that
indicate readiness to proceed through the next iteration
18
When to use Spiral Model
• When creation of a prototype is appropriate
• When costs and risk evaluation is important
• For medium to high-risk projects
• Long-term project commitment is unwise because of
potential changes to economic priorities
• Users are unsure of their needs
• Requirements are complex
• New product line
• Significant changes are expected (research and exploration)
19
Rapid Prototyping
Key idea: Customers are non-technical and usually don’t
know what they want/can have.
• evolutionary prototyping
20
Requirements Capture
Iterate
Quick Design
Build Prototype
Customer Evaluation of
Prototype
21
Advantages
• Reduces risk of incorrect user requirements
22
Disadvantages
• An unstable/badly implemented prototype often
becomes the final product.
23
Cont.......
• Difficult to scale up to large projects where documentation
is essential
25
An Iterative Development Process...
• Recognizes the reality of changing requirements
•Caspers Jones’s research on 8000 projects
• 40% of final requirements arrived after the analysis
phase, after development had already begun
• Promotes early risk mitigation, by breaking down the system
into mini-projects and focusing on the riskier elements first
• Allows you to “plan a little, design a little, and code a little”
• Encourages all participants, including testers, integrators, and
technical writers to be involved earlier
• Allows the process itself to modulate with each iteration,
allowing you to correct errors sooner and put into practice
lessons learned in the prior iteration
• Focuses on component architectures, not final big bang
deployments
An Incremental Development Process...
• Allows for software to evolve, not be produced in one huge
effort
• Allows software to improve, by giving enough time to the
evolutionary process itself
• Forces attention on stability, for only a stable foundation can
support multiple additions
• Allows the system (a small subset of it) to actually run much
sooner than with other processes
• Allows interim progress to continue through the stubbing of
functionality
• Allows for the management of risk, by exposing problems
earlier in the development process
Risk Management
• Identification of the risks
• Iterative/Incremental Development
Simple design
• Iterative
• Time-bound
• Incremental
• Convergent
• People-oriented
• Collaborative
Joint Application Development (JAD) Methodology
• JAD is a requirements-def inition and user-interface design
methodology in which end-users, executives, and developers
attend intense off-site meetings to work out a system's
details.
34