The waterfall model is a software development process model.
It’s a sequential and linear software development process model that includes a set of specified phases.
The next thing should be mentioned is that the single phase must be completed to commence the next phase of the sequential process.
The output of the present phase will also pass into the next phase as an input.
Following are the principle stages of the waterfall model
Requirements analysis and definition
The system requirements, constraints and goals must be clearly identified and documented with the participation of the system users. The system requirement specification would be the ultimate output of this stage.
System and software design
The system would be designed according to the requirement specification.
The overall system architecture and the software design would be determined.
The fundamental software system abstraction and their relationships are also described.
Implementation and unit testing
The system is programmed and developed as a set of programs or program units and tested individually by unit testing.
Integration and System testing
The developed program units would be integrated into a complete software application and tested using system testing to ensure that the software full fill the requirements. After completing the integration and system testing, it will be delivered to the customer.
Operation and maintenance
This is the longest phase in the waterfall model.
The software system will install in the client end for practical use.
This is also where we find errors which are not discovered during the early stages of the life cycle and report them to the developers for corrections.
Software Maintenance will be done over the course of the software life time.
Advantages of the waterfall model
The waterfall model is really easy to understand and could be used to develop a software system if the requirements are very well understood.
Each phase of the model and the workload can be clearly identified as the phases and milestones are well defined in the waterfall model. Phases are getting completed one by one in a sequential order without overlapping each other.
The waterfall model is more suitable for a project which has well defined requirements. When compared to methodologies like agile it’s rather simple and easy to use.
At the end of the each phase this model has specific deliverables and a review process.
For More detailed reference, please read the book ‘’Software Engineering (7th Edition)’’ by Ian Sommerville