Waterfall model is a first and basic model of the software development life cycle.
In this model, the execution happens in sequence order meaning the output of one phase is equal to Input of another phase. Each phase should be completed before going to the next phase. Waterfall model is the first liner sequential model of SDLC.
Waterfall model is a simple model which is easy to use and understand. Waterfall model is the first approach used in software development.
Each phase requires deliverable from the previous stage in a waterfall model. Requirements are moved to the design phase, design moved to development and code made during the development phase is moved to the testing. This model is used when we have – Life Critical & Machine Critical projects.
· Apart from the waterfall model requirement changes are allowed in all other models.
· Apart from the waterfall model test engineers test the application in all other models.
Different Stages of Waterfall Models
Requirement Collection Phase
The first stage of the waterfall model is requirement collection, where a business analyst will collect all the information and business need of the customer in the form of requirement documents.
The documents should be clear and easy to understand, and all requirements are properly listed.
With the help of SRS (Software Requirement Specification), CRS (Customer Requirement Specification) and BRS (Business Requirement Specification), the SRS document is created. The SRS document contains everything that should be designed and developed.
Characteristics of a functional requirement
- In-Detail & Proper flow
- Easy to understand (Simple language)
- Measurable (It should be in Numbers) or Countable.
Feasibility Study Phase: –
The Second Stage of the waterfall model is a feasibility study. It is based on the requirements, where a set of high -level people like (Business Analyst, Human Resource, Architecture) analyze whether the project is Doable or not Doable.
An organization needs to have the following aspects to develop the project:
Economic:-Can organization complete the application within given the budget or not?
Legal:-Can organization handles this project as cyber law and other regulatory compliances.
Operation feasibility:-Can organization creates the operations which are expected by the customer?
Technical:-Need to check whether the current computer system can support the software
Schedule: – The project can be completed within the given schedule or not.
Designing Phase: –
In the third stage of the waterfall Model, once the feasibility study is done, move to the design phase, it defines the architecture of the project. The designing phase specifies the essential tools required for the project such as programming language like Java, .NET, PHP; database like Oracle, MySQL, and a combination of hardware and the software.
After that designers prepare a blueprint of an application which is divided into two parts –
HLD (High-Level Design):-In high-level design, the designer will focus on models (flow charts, flow diagrams, decision tables, decision trees, data dictionary).
LLD (Low-Level Design):-In low-level design, the designer will focus on components (User interface).
Coding Phase: –
The fourth stage of the waterfall model is coding. After the complication of requirement and designing phase, the next phase is to develop a software system.
The developer starts writing code according to their programming knowledge and using the particular program language like- java, python, C++, C#, etc.
The Front-end developers develop easy and attractive GUI, and necessary interfaces to interact with back-end operations and back-end developers do back-end coding according to the required operations.
Testing Phase: –
Once the developer completes the coding Phase, the application is handed over to the test engineers where they start checking the functionality of an application according to the customer need or requirement.
During the testing process, a test engineer may encounter some bugs or defects in the software which are not working as per the customer requirements. If the testing team finds any bug then they sends a bug to the development team with proper explanation.
After that developer needs to check whether the bug is valid or not. If the bug is valid then the developer will fix it and replace it with the new one, then it needs to be retested by the tester to check whether the bug is fixed or not.
Installation Phase: –
In the installation phase of the waterfall model, the process will continue until the application is bug-free/ stable/ and works according to customer needs.
After that, the stable application is installed into the customer’s environment for customer use.
After receiving the product, the customer will do one round of testing for their satisfaction. While using a product if the customer faces any defect, it will be informed to the development team of that particular software to solve the issue. When all the bugs are resolved, the software finally deployed to the end-user.
Maintenance Phase: –
The Last and long-lasting phase of the waterfall model is the maintenance phase. This process will continue until the application comes to an end. When a customer starts using the Software, then they may have some issues which need to be in-detail tested & fixed.
Maintenance phase also includes changes in software and hardware to maintain its operational effectiveness and improve its performance. The process of taking care of product time to time is called maintenance.
Example of waterfall model:-
Previously waterfall model is used to make an application like CRM (Customer Relationship Management), HRM (Human Resource Management), Supply Chain Management System and Retail Chains, etc. Now a day’s waterfall models are replaced by other models like Agile Methodology and iterative Model etc.
Advantages of Waterfall Model
Important benefits of the waterfall model are as follows-
- Easy to understand and easy to use.
- The requirement should be clear.
- Best suited for a smaller project where requirements are well understood.
- Waterfall model had clearly defined stage.
- Waterfall model had an advantage to efficiently arranging the tasks.
- The Process and results should be well documented.
Disadvantages of Waterfall model
Important problems of the waterfall model are as follows-
- Developers used to test the application.
- No parallel deliverable.
- Requirement review, not exits.
- The reversible flow of bug flow (Customer side bug will be found).
- Requirement changes not allowed.
- Risk amount is high in the waterfall model