Introduction to Waterfall Model of SDLC (Software Development Life Cycle)
Waterfall Models is the first widely used SDLC model that was introduced in 1970. It is a sequential model i.e., all the stages are connected in a series manner or the next phase will only start only if the previous phase is completed. Due to the resemblance of the diagrammatic representation of the model with a waterfall, it is called the “Waterfall Model”. Since the working in this model is done in a sequential way there is no overlap between the steps.
This model constitutes of six phases:
1) Requirements Phase: It is the first task we do when we start with a project. The main aim here is to understand the exact requirements of the customer and to document them properly. In this phase, a large document called Software Requirement Specification (SRS) document is created which contains a detailed description of what the system will do in the common language.
2) Design Phase: Here the main aim is to transform the requirements gathered in the SRS into a suitable form that permits further coding in a programming language. Here we define the overall software architecture together with high-level and detailed design. All this work done here is documented in a Software Design Document (SDD).
3) Development Phase: Also known as the implementation phase, here with the inputs from the design phase the software or system is developed in small units which are integrated into the next phase. The development and testing of each unit are done independently to check for errors and failures.
4) Testing Phase: In this part of the SDLC, each unit of code generated in the previous step is tested. This type of testing is known as unit testing. Another part of this phase is to integrate the small units into a system. This system is further tested for faults and failures.
5) Deployment Phase: Once the Testing phase is over the product is deployed into the client environment. This is considered the final step but for a system to work continuously, one must make changes to cater to the developing or growing market by making updates to the code.
6) Maintenance Phase: There are some issues that can come up in the client environment. To fix those issues, patches are released. Also to enhance the product some better versions are released. Maintenance is done to deliver these changes in the customer environment.