In a practical software development project, the classical waterfall model is hard to use. So, Iterative waterfall model can be thought of as incorporating the necessary changes to the classical waterfall model to make it usable in practical software development projects. It is almost same as the classical waterfall model except some changes are made to increase the efficiency of the software development.
The iterative waterfall model provides feedback paths from every phase to its preceding phases, which is the main difference from the classical waterfall model.
Feedback paths introduced by the iterative waterfall model are shown in the figure below.
When errors are detected at some later phase, these feedback paths allow correcting errors committed by programmers during some phase. The feedback paths allow the phase to be reworked in which errors are committed and these changes are reflected in the later phases. But, there is no feedback path to the stage – feasibility study, because once a project has been taken, does not give up the project easily.
It is good to detect errors in the same phase in which they are committed. It reduces the effort and time required to correct the errors.
Phase Containment of Errors: The principle of detecting errors as close to their points of commitment as possible is known as Phase containment of errors.
Advantages of Iterative Waterfall Model
- Feedback Path: In the classical waterfall model, there are no feedback paths, so there is no mechanism for error correction. But in iterative waterfall model feedback path from one phase to its preceding phase allows correcting the errors that are committed and these changes are reflected in the later phases.
- Simple: Iterative waterfall model is very simple to understand and use. That’s why it is one of the most widely used software development models.
Drawbacks of Iterative Waterfall Model
- Difficult to incorporate change requests: The major drawback of the iterative waterfall model is that all the requirements must be clearly stated before starting of the development phase. Customer may change requirements after some time but the iterative waterfall model does not leave any scope to incorporate change requests that are made after development phase starts.
- Incremental delivery not supported: In the iterative waterfall model, the full software is completely developed and tested before delivery to the customer. There is no scope for any intermediate delivery. So, customers have to wait long for getting the software.
- Overlapping of phases not supported: Iterative waterfall model assumes that one phase can start after completion of the previous phase, But in real projects, phases may overlap to reduce the effort and time needed to complete the project.
- Risk handling not supported: Projects may suffer from various types of risks. But, Iterative waterfall model has no mechanism for risk handling.
- Limited customer interactions: Customer interaction occurs at the start of the project at the time of requirement gathering and at project completion at the time of software delivery. These fewer interactions with the customers may lead to many problems as the finally developed software may differ from the customers’ actual requirements.
Attention reader! Don’t stop learning now. Get hold of all the important CS Theory concepts for SDE interviews with the CS Theory Course at a student-friendly price and become industry ready.
- Software Engineering | Classical Waterfall Model
- Software Engineering | Failure of Waterfall model
- Difference between Waterfall Model and Spiral Model
- Difference between Waterfall model and Incremental model
- Difference between V-model and Waterfall model
- Difference between RAD Model and Waterfall Model
- Difference between Waterfall model and Prototype model
- When should you use Waterfall Model
- Difference between Waterfall Testing and V-Model Testing
- Software Engineering | Pham-Nordmann-Zhang Model (PNZ model)
- Waterfall Software Testing
- Software Engineering | Jelinski Moranda software reliability model
- Software Engineering | Schick-Wolverton software reliability model
- Software Engineering | Introduction to Software Engineering
- Difference between Agile Testing and Waterfall Testing
- Difference between Scrum Testing and Waterfall Testing
- Software Engineering | COCOMO Model
- Software Engineering | Spiral Model
- Software Engineering | Rapid application development model (RAD)
- Software Engineering | Incremental process model
If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to firstname.lastname@example.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.
Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.