Software Development Process
Software Development Process
Software Development Process
Development Process
Waterfall Model
What is Waterfall model?
It’s a classical model used in system development life cycle to create a system with a linear and sequential
approach. It is termed waterfall because the model develops systematically from one phase to another in
a downward fashion
Introduced by Dr. Winston W. Royce in 1970
Waterfall Advantages
Natural approach for problem solving
Conceptually simple, cleanly divides the problem into distinct independent phases
Easy to administer in a contractual setup – each phase is a milestone
Waterfall disadvantages
Assumes that requirements can be specified and frozen early
May fix hardware and other technologies too early
Follows the “big bang” approach – all or nothing delivery; too risky
Very document oriented, requiring docs at the end of each phase
Waterfall Usage
Well suited for projects where requirements can be understood easily and technology decisions are easy
Has been used widely
For standard/familiar type of projects it still may be the most optimum
Well suited to the out sourcing model
Prototyping
Addresses the requirement specification limitation of waterfall
Instead of freezing requirements only by discussions, a prototype is built to understand the requirements
Helps alleviate the requirements risk
A small waterfall model replaces the requirements stage
Development of prototype
Starts with initial requirements
Only key features which need better understanding are included in prototype
No point in including those features that are well understood
Feedback from users taken to improve the understanding of the requirements
Prototyping
Cost can be kept low
Build only features needing clarification
“quick and dirty” – quality not important, scripting etc can be used
Things like exception handling, recovery, standards are omitted
Cost can be a few % of the total
Learning in prototype building will help in building, besides improved requirements
Advantages
Requirement will be more stable and more likely to satisfy user needs
Early opportunity to explore scale/performance issues
Ability to modify or cancel the project early
Enhanced user engagement
Disadvantages:
Potential hit on cost and schedule
Potential false sense of security if prototype does not focus on key (high risk) issues
Applicability:
When req are hard to elicit
When confidence in reqs is low
Where reqs are not well understood
When design is driven by user needs
Variants
Paper Prototypes
UI Prototypes
Technology Proving
Rapid Prototyping environments