It’s a traditional software development life cycle model. In this model you can see progress as following downward like a waterfall, through different phases like requirement gathering and analysis, design, coding, testing and maintenance.
In this model only next phase begun when the goal of previous phase has been completed.
Advantages of Waterfall:
- Requirements do not change frequently, so we get a stable product.
- Very simple to implement
- Significant project progress visibility to manager as well as client.
- A perfect model for a big project.
Disadvantages of Waterfall:
- Reverse engineering is not possible i.e we cannot go back and change requirement once design has been developed.
- Requirement changes on later stage are difficult to incorporate.
- Customer may not be satisfied, if the changes they required are not incorporated in the product.
- It is not suitable for long term projects where requirements may change time to time
- Waterfall model can be used only when the requirements are very well known and fixed
Waterfall model process flow: