What is Waterfall Model?
- It was first Process Model to be introduced.
- It is very simple to understand and use.
- It is also referred to as a linear-sequential life cycle model.
- In this model, each phase must be completed before the next phase can begin and there is no overlapping in the phases.
- This model is basically used for the project which is small and there are no uncertain requirements.
- At the end of each phase, a review takes place to determine if the project is on the right path and whether or not to continue or discard the project.
- In this model the testing starts only after the development is complete.
- Waterfall model is the earliest SDLC approach that was used for software development.
Waterfall Model Design and Flow-
Waterfall model has the different phases as shown in the diagram.
1. Requirement Gathering and Analysis-
- It is very important to understand the customer requirements and expectation so that end of the project meet the specification.
- All requirements of the system to gathered in this phase and documented in a requirement specification doc.
2. System Design-
- System design is prepared on the bases of the requirement specification.
- it helps in specifying hardware and system requirements and also helps in defining overall system architecture.
- In this phase all module divided into the small module then after doing the coding of the small module than doing the coding of whole software.
- After doing the coding we can perform the unit testing.
- In this phase we are tested the developed module or software, perform the integration testing, system testing for the purpose of finding the bugs.
- Here perform the functional and non functional testing.
5. Deployment of System-
- Once the functional and non functional testing is done, then product is deployed in the customer environment or released into the market.
- There are some issues which come up in the client environment. To fix those issues in this phase. Maintenance is done to deliver these changes in the customer environment.
Advantages of waterfall model:
- It is very simple and easy to understand and use.
- Each phase has specific deliverable and a review process.
- In this model phases are processed and completed one at a time. Phases do not overlap.
- Waterfall model works well for smaller projects where requirements are very well understood.
Disadvantages of waterfall model:
- Once an application is in the testing stage, it is very difficult to go back and change something.
- High amounts of risk and uncertainty
- Not a good model for complex and object-oriented projects
- Not a good model for long and ongoing projects
- Not suitable for the projects where requirements are at a moderate to high risk of changing.