It is the most basic model of SDLC(Software Development Life Cycle), means that all the other models are derived from waterfall model.
It is a step by step procedure to develop the software, it consists of various phases like:
In this phase we collect the business need of the customer in the form of requirement document.
In this phase a set of people will sit and decide if the project is doable or not i.e, Feasible or not.
In this phase we develop a document which is like the blue print of the application.
In this phase the developers start writing the code by using any of the programing language and develops the application according to the requirements.
Once the software is developed the test engineers start checking the functionality of an application works according to the customer's requirement, this process is known as testing.
While testing process we may encounter some bugs which needs to be reported to the developer, the developer fix the bug and again gives it back to the test engineer for testing, this process continues until the application is bug free or stable or works according to the requirements.
Once the software is deployed, tested and working according to the requirements, it is installed at the customer's place, this process is known as installation or deployment or roll-out.
Once the software is deployed at customer's place they start using it and due to some issues they may encounter some problems in the software which needs to be fixed immediately by the company during maintenance process.
Advantages of Waterfall Model:
1.All the other models are derived from waterfall model.
2. Easy to understand and use.
3. Execution happens in sequential order i.e, output of one phase is the input of other phase therefore phases do not overlap.
Disadvantages of Waterfall Model:
There are no parallel deliverables i.e, two process can not be executed simultaneously.
No review process in waterfall model i.e, downward flow of bugs are possible.
Requirement changes are not allowed.
In waterfall model developers are used to test the software.
Back tracking is not possible i.e, reverse process is not allowed(Changes are not allowed).