The waterfall model is a sequential software development model in which development is seen as flowing steadily downwards (like a waterfall) through several phases.
Following phases are followed perfectly in sequential order:
Requirements specification
Design
Implementation
Integration
Testing
Installation
Maintenance
When to use the waterfall model:
Requirements are very well known, clear and fixed.Product definition is stable.
There are no ambiguous requirements
Ample resources with required expertise are available freely
Advantages of waterfall model:
Due to the rigidity of the model it is easy to managePhases are processed and completed one at a time.
It is simple and easy to understand and use.
Useful for smaller projects where requirements are very well understood.
Each phase has specific deliverables and a review process.
Disadvantages of waterfall model:
In testing stage, it is very difficult to go back and change something that was not well-thought out in the design stage.High amounts of risk and uncertainty.
Not good model for complex and object-oriented projects.
Poor model for ongoing projects.