The waterfall model is one of the earliest models of the Software Development Life Cycle. The different phases in the waterfall model progress sequentially downwards, resembling a waterfall, hence the name – “Waterfall Model”.
Once a phase of the development cycle gets completed, there is no way to go back to that phase again in order to correct it or make any desired change to it. In this model, each phase must be completed before the next phase can begin. This is because the outcome of the previous phase will act as the input for the current phase.
Since the phases are followed in a linear sequence. So, this model is also known as Linear Sequential Model.
Phases of the Waterfall Model
Requirement Gathering & Analysis
All the possible requirements of the system to be developed are captured in this phase. Here, the requirement feasibility analysis is done to ensure whether the requirements are feasible or not. In this phase, a Software Requirement Specification (SRS) document is created, containing both functional and non-functional requirements of the software to be developed.
In this phase, we gradually move forward to answer the ‘How’ of the system after answering the ‘What’ of the system in the previous phase. Here, we create design documents specifying the different modules/components of the system, their interfacing, data flow, etc.
All of the data collected is stored in a document named Software Design Document(SDD). This document helps in establishing the architecture of software development projects.
The implementation phase is also known as the coding phase. In this phase, based on the design documents created in the previous phase, the software product is developed. This phase makes use of a development environment, programming language, database, etc to create the software product.
In this phase, the software product developed in the previous phase is validated as per the functional and non-functional requirements specified during the requirement gathering and analysis phase.
The deployment phase involves making the software live in the production/real environment after it tested for its tested thoroughly in the previous phase.
Over a period of time, a software product may require some updates in order to remain functional in the real-world environment. The maintenance phase takes care of this activity by timely tuning the software as per the requirement.
Advantages of the Waterfall Model
- It is easy to understand and implement.
- There are specific deliverables in each phase of the life cycle.
- All the activities to be performed in each phase are clearly defined.
- It is perfectly suitable for short projects where all the requirements are predefined and understood clearly.
- It is easier to assign tasks to the different team members.
- It’s well documented.
Disadvantages of Waterfall Model
- As this model requires freezing of requirements, hence, it not suitable for projects in which changes in requirements are possible/inevitable.
- The working model is only visible in the later phases of the life cycle – after the implementation phase.
- Any correction or update in the previous phase is not possible.
- It is not possible to keep track of the progress or state of the development within stages.
- It is not suitable for long and complex projects.
Application of Waterfall Model
The Waterfall model is applicable for the following types of projects-
- It is suitable for short term or smaller projects.
- Projects where requirements are perfectly documented and clearly understood.
- Projects where frequent changes are not required or anticipated.
This completes our tutorial on the Waterfall Model of SDLC. Let us know in the comments for any query or concern. You can also check our below related tutorials-
- Introduction to Software Engineering
- Software Development Life Cycle
- Software Testing Life Cycle
- Difference b/w SDLC & STLC
Kuldeep is the founder and lead author of ArtOfTesting. He is skilled in test automation, performance testing, big data, and CI-CD. He brings his decade of experience to his current role where he is dedicated to educating the QA professionals. You can connect with him on LinkedIn.