Waterfall Model in Software Engineering
The Waterfall Model is considered to be a basic SDLC model which was invented by Winston Royce in 1970. This model is considered to be simple but involves a sequential approach where the ongoing phase must be accomplished in order to initiate or start the next phase.
Why Waterfall Model is used?
The Waterfall Model is used when the following criteria are met:
- The project requirements are clearly defined and there’s no room left for any sort of confusion or misunderstandings related to any module or feature.
- The goal of the project is clear to all the stakeholders involved in the project.
- The project involves long-term development with enough timeframe.
- The expectation in terms of error or bug is nearly zero.
Different Phases of Waterfall Model
As mentioned above, the Waterfall model is a sequential approach where the current phase has to be completed to move to the next phase. There are five phases involved in this model which are defined below:
- Requirements Gathering & Analysis: The first and foremost phase that paves the path to the rest of the phases is Requirement Gathering & Analysis. In this phase, the Business Analyst ensures that the precise requirement is gathered from the stakeholders involved in the project. Further, this phase also involves documenting the requirements in terms of functional and non-functional requirements. The document to be prepared is called Software Requirements Specification (SRS). In the nutshell, this phase is all about “What” and not “How” to be developed.
- Design Phase: Once the requirement gathering process is done, the next phase is introduced where a detailed design document is created that defines the architecture, overall design, user interface, etc.
- Implementation Phase: This is the next or the third phase in Waterfall Model where the development team involves in developing the entire system in the form of modules or units. Each developed unit is then tested which is termed as Unit Testing. Further, all these developed systems are integrated together to form the envisioned system.
- Testing Phase: Once the system is developed by the development team in the previous phase, the source code if then handed over to the Testing or QA team who initiate the process of checking for the defects like bugs or errors in the code by running test cases either through the manual or automation. All the issues found in this phase are handed over to the development team so that the respective issues can be fixed.
- Deployment & Maintenance: After all the issues have been fixed and the testing team has approved the code, the next or the last phase involves deploying the code to the live or production environment to make it live. Apart from this, this phase also includes maintenance of the code where either the issues (if found any) are fixed or new features are added.

Post Comment