Waterfall Software Process Model:
Waterfall model software process model was derived from general system engineering process and it is so called as the stages go top to bottom and while one stage of the process is complete it moves to the next stage and not supposed to come back to any previous stage. Shortly, the operation enters an stage if and only if the previous stage, if any, completes. However, in practice, things doesn’t happen this way.
Let’s see an illustration of the involved stages of Waterfall model.
Stages of Waterfall Software Process Model
- Requirements analysis & definition
- System & software design
- Implementation & unit testing
- Integration & system testing
- Operation & maintenance
Requirements Analysis & Definition
Members from the software consults with the client and prepares complete service documentation in this stage. Firstly, the clients will provide their necessities along with constraints and flow of work. Secondly, the developers will analyze the given information to create the documentation both for developers and for the clients. The next stage starts with this approved document.
System & Software Design
The system design process then, based on the approved project documentation, defines the software and hardware requirements for the project. Software team builds the software architecture which will include modules and their relations, databases and their relations. At the end of this stage, the software team will exactly know what they are going to develop, what are the problems, what are the risks and how to manage the risks and how the parts integrates with each other etc.
Implementation & Unit Testing
In this stage, software team tests each unit or module separately to find out if those meets requirements or expectations. Developers implements solutions to issues found in the tests. At the end of this stage, all parts of the system are should be working accurately.
Integration & System Testing
At this stage, integration takes place. Approved system parts join together to build up the complete system. However, the software team now makes integration and system testing. These test goes through all the requirements to make sure everything is in place and operating as expectations. Issues are common in this stage, as the software moves from development environment to live. Software team locates and solves these issues, if any.
Operation & Maintenance
In this stage, the fully functional system goes live for real life usage. Software team solves errors or bugs that pop up in this stage. The maintenance part continues with system enhancement and along with changes in requirements which might cause new development or changes in system.
Advantages (Pros) of Waterfall Model
- Each stage produces a document thus the whole development process remain documented.
- Waterfall model fits with other engineering process models which is an advantage as software engineering is different from other types engineering.
Disadvantages (Cons) of Waterfall Model
- It is hard to implement changes at any stage as each stage documented in earlier stage.
- In practical, gaps or bugs or errors of any stage like design, requirements etc. can be discovered at a time while another stage has already been started. Then we have to pause the current stage and make changes to documents and rework current stage to suit the changes.
- It is costly if the project requirements has chances of frequent changes.
Usage
Usage of waterfall model is generally in developing parts of larger systems with fixed requirements.