The waterfall model is a linear model and it is widely used for small projects with frozen requirements, for most software development projects.
A typical waterfall model consists of :
- Requirements Analysis Phase.
- Design Phase.
- Coding Phase.
- Testing Phase.
- Maintenance Phase.
Requirements Analysis Phase:
The waterfall model begins with the Requirements analysis phase. Requirements gathering and interaction with the end customer takes place in this phase. Detailed functionality, limitations of the software product to be developed are understood by the team. A detailed document called the Software Requirements Specifications (SRS) document would be prepared.
This phase starts after the requirements phase is completed. In this phase, the system design is carried out. System design implies hardware design and software design. The functionality of hardware and software is separated out and the design of the software modules is carried out. Documents like high-level system design and low-level design documents are prepared.
The coding phase starts after the design phase is complete. In this phase, the design is converted into a workable code by the development team. Developers may perform unit testing in this phase.
Once the coding phase is completed QA team combines all the components and a testable product is deployed on the QA environment. The product is tested for its functionality and performance requirements. A test report containing the test results is prepared.QA team ensures that it product works without any defects.
On successful completion of testing, the product will be rolled out to the client and if any enhancements are required, they are worked upon as feature requests.
A regular operation and system maintenance would be carried out for the healthy operation of the product in the production environment.
As you notice each phase in the waterfall model has deliverables at the end of each phase as input for the next phase.
1.Requirements phase: SRS document, Maintenance plan
2.System design phase: Hardware design document, Software design document, Unit test plan, System test plan
3.Coding phase: Program code, Unit test report
4.Testing phase: Test report, the product without defects.
5.Maintenance Phase: Production metrics, Feature requests, Working Product.
The waterfall model is a simple and linear model.
It is easy to understand.
The waterfall model is ideal for small projects and with frozen requirements that don’t change.
Project monitoring is easy because of the visible outputs at each stage.
Frozen requirements are extremely difficult in real life.
Each phase starts after the completion of the earlier phase.
Testing only starts after the completion of the coding phase.
The waterfall model cannot adapt to any changes to the artifacts.
Any change needs a formal process of getting the modification approved which takes a lot of time in real life.
QA Team would be idle during the coding phase and the support team would be idle until the maintenance phase.