Software Engineering | Iterative Waterfall Model

29 Sep, 2021
In a practical software development project, the classical waterfall model is hard to use. So, the 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 the 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 the 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.
Cost-Effective –It is highly cost-effective to change the plan or requirements in the model. Moreover, it is best suited for agile organizations.
Well-organized –In this model, less time is consumed on documenting and the team can spend more time on development and designing. 
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 the development phase. Customers may change requirements after some time but the iterative waterfall model does not leave any scope to incorporate change requests that are made after the 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 a 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, the 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. 
prakhyatsinghal08
Software Engineering
Writing code in comment?
Please use ide.geeksforgeeks.org,
generate link and share the link here.
Types of Software Testing
Differences between Black Box Testing vs White Box Testing
Functional vs Non Functional Requirements
Differences between Verification and Validation
Unit Testing | Software Testing
Software Testing | Basics
System Testing
Software Requirement Specification (SRS) Format
Difference between Spring and Spring Boot
Software Testing Life Cycle (STLC)