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.
- Software Engineering | Project size estimation techniques
- Types of Software Testing
- Software Testing | Basics
- Software Engineering | Architectural Design
- Software Engineering | Halstead’s Software Metrics
- Beta Testing | Software Testing
- Software Engineering | Debugging Approaches
- Pairwise Software Testing
- Software Engineering | COCOMO Model
- Software Engineering | Classification of Software Requirements
- Software Engineering | Classical Waterfall Model
- Software Engineering | Spiral Model
- Software Engineering | Requirements Engineering Process
- Software Engineering | Requirements Elicitation
- Software Engineering | System configuration management
If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to email@example.com. 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.