Waterfall model is the oldest model in the software development models. This model was the very first initiated between all the development models. This model is also applied as a consequent life cycle model. Waterfall model is very easy to use and learn. In the waterfall model when first stage will be totally finished, then next stage can be start. Waterfall model are normally utilized for the small scale projects and also for the predefined and specific requirements. These requirements can not be changed again and again in the waterfall model.
In this model when one phase will be completed then review process performed, this review process make sure that the project is running on the right track. In the waterfall model, testing can only performed after the completion of the development.
Please see the below diagram related with the waterfall model phases --
Advantages Of Waterfall Model:-
There are several types of advantages when using waterfall model. Few advantages are mentioned as below --
Waterfall model is very easy and simple to learn and to utilize.
In the waterfall model all phases are completed separately not overlapped because these phases are executed one by one.
Waterfall model is successful mainly for the small scale projects, where all the requirements are very clear to the team.
This is very simple and easy to control because of the inflexibility of this model.
Disadvantages Of Waterfall Model:-
There are also many disadvantage of the waterfall model. Few of them are mentioned as below --
There is a major drawback of this model is- once when application is in the testing phase then there is very tough to move back and make any changes.
In the time of using this model there are a lot of risks and doubt.
Waterfall model is not good model for the complicated and materialistic projects.
Waterfall model is not properly supported to the projects where requirements are consistently changed.
This model is not good for the long time duration and continuing projects.
Waterfall model can apply only in few areas. These areas mentioned as below --
Project’s time duration should be short.
Project requirements should be fixed, not changed at time to time.
Client interaction should not be involved again and again during the development of the software.