The first oldest SDLC model introduced in software development process is waterfall model which is easy to understand and implement. Since the phases of waterfall model are arranged in linear order, waterfall model is also known as Linear Sequential life cycle Model. Waterfall model uses ‘Requirements gathering, Design and Build’ concept.
In Waterfall model, each phase (step) take the input from the previous phase and give the output (if any) to the next phase which again acts as the input to the next phase. Before starting with the new phase the currently running phase should be fully completed.
In waterfall model we begin with the user requirement phase and flow down through various phases finishing with the maintenance phase. In waterfall model, suppose there is a need to change some requirements in the previously completed phase, then we cannot go back and change it. We have to again start from the beginning first phase of the life cycle of the model.
Waterfall model is used basically for the small projects for which the requirements are well understood. The following are the phases followed by the waterfall model:
1. User requirement gathering and analysis:
This is the first phase of the waterfall model. In this phase the user requirements are gathered and walkthrough is done to understand all the requirements. All the requirements which are given by user are verified whether the requirements are valid and testable or not.
2. System Design:
System design includes the hardware and software requirements. System design describes in detail the functions and operations to be performed, including the screen layouts, overall system architecture.
Taking the input from the system design phase, according to the design create the program / code. The system is designed into small portions called the unit. These units are integrated into the next phase. Each unit is tested individually which is known as Unit Testing.
After the small units are tested in the implementation phase, all the units from the previous implementation phase are integrated into the system. The System is then again tested as a whole for its any failure or fault. This type of testing is called as integration testing.
5. Deployment of a system:
Once the system is tested it is deployed into its respective environment. It is then released into the market for the customer use. After deployment of a system, a Sanity check is performed to ensure that the system does not break. Sanity testing takes care that each functional area is working fine.
This is the last phase of the waterfall model. In this phase it is ensured that the application is running properly into the respective environment. If in case any customer finds any defect, he/she claims the issue. To overcome reported issues and to enhance the product’s new modified versions of that product are introduced into the market.
When to use Waterfall model?
1. Waterfall model is basically used when the requirements are fixed and clearly known.
2. It is used for the shorter applications.
3. The resources are adequately available.
4. When all the requirements are well and properly documented.
Advantages of waterfall model:
1. Easy to understand and implement.
2. Used for shorter applications so it is cost effective.
3. Requirements are well documented.
4. Each phase is completed fully before starting with new phase.
Disadvantages of waterfall model:
1. This model cannot be used for large applications.
2. Less effective if the requirements are not fixed and not clearly specified.
3. Since the testing is done in the latter stage, the bugs and defects cannot be found earlier. So it is expensive for the large and complex projects.
4. In waterfall model it is difficult to back in in between to change any document in the previous phase.