The Waterfall approach to the software development life cycle (SDLC) was the earliest approach to be adopted for software development. Of the eight SDLC models, the Waterfall method is characterized by phases in the process only beginning once the previous phase is finished. Furthermore, no phases overlap.
Here are the sequence for the Waterfall model of SDLC:
- Requirement gathering and analysis: In this phase, developers create all possible system requirements and create a requirement specification document.
- System design: This phase involves taking the requirement specifications from the previous phase and preparing a system design from them. Performing a system design will allow for hardware and systems requirements to be defined, as well as the definition of an overall system architecture.
- Implementation: The third phase takes the input from the system design and then develops units (small programs). After creation, each unit is then tested to ensure functionality.
- Integration and testing: The units developed during the implementation phase are then tested and integrated into systems. After integration, entire systems are then tested again for any issue.
- Deployment of system: After testing for both function and non-function, products are either released into a customer environment or the market.
- Maintenance: Products are rarely issue-free, so when problems arise, patches are sent out. Additionally, product enhancements are also released to make current releases better.
Waterfall Model Advantages and Disadvantages
The main advantages of the Waterfall model of SDLC is that it permits control and departmentalization. Moreover, a clear schedule for deadlines is possible for each stage along the production line. This also means that products can move through the process one at a time, which can limit problems.
Other advantages include:
- Clearly defined milestones
- Defined stages
- Arrangeable tasks
- Documented processes and results
The biggest disadvantages of the Waterfall method is that there’s not much room for revision and/or reflection throughout the process. This means that after a product enters the testing phase, it isn’t easy to double back and make changes to parts that aren’t documented well or even introduced during the conceptual stage.
Other disadvantages include:
- Large amounts of uncertainty and risk
- No accommodation for requirement changes
- Not optimal for long-term or on-going projects
- Progress is hard to measure
For more helpful information, check out our tips on creating an SDLC and keep an eye on the blog for part two of this series!