Definition of the waterfall model
The waterfall model is a popular design approach to software development. In this approach of software development, “rather than jumping in and immediately developing a product, the waterfall model suggest that software engineers work in a series of stages” (Lethbridge and Laganière, 2005, pg 429). It is in fact a linear approach in which the phases outlined in the above figure is followed sequentially. Developers first capture and develop their client’s requirements; once this has been completed, a design is outlined and then programming beings, with testing and deployment following thereafter. The waterfall model stresses that before the completion of each stage, quality assurance is performed to ensure the “next stage is built on a good foundation” (Lethbridge and Laganière, 2005, pg 22).
Advantages of the waterfall model
- It enforces a disciplined approach.
- Documentation at each phase allows easier maintenance as every change is reflected in the relevant document.
- The product at each stage is checked for quality assurance.
Disadvantages of the waterfall model
- A full working version of the software will not be available until late in the project lifespan.
- Introduces the “blocking state” in which project team members must wait for other team members to complete dependent tasks. Delays during one phase leads to the delay of another and consequently, may lead to the late delivery of the software.
- Furthermore, as this life cycle demands that there be documentation at every stage, the specification is long and detailed.
- One final disadvantage is the inability to make changes if the initial plan is not well thought out.
- Not the recommended design approach for modern software engineering.
We hope the article has helped you explore the basics of the waterfall model in software development. You may also like reading Operating System – functions of Operating System. If you liked this article, please share it by clicking on the icons below.
The article publication date: 18 November 2017
Lethbridge, T. and Laganière, R. (2005). Object-Oriented Software Engineering Practical Software Development using UML and Java. 2nd ed. London, McGraw-Hill.
Photo credit: twitter.com
Author: Marjana Chowdhury
Marjana Chowdhury is a graduate of Queen Mary, University of London. She has a keen interest in business, accounting and computer science. She writes regularly online on a variety of subjects.