In the waterfall model, software development progress through various phases like Requirements Analysis, Design etc – sequentially. It is also referred to as a linear-sequential life cycle model.
- Simple and easy to understand.
- Easy to manage as each phase has its own specific deliverables.
- Overlapping of stages is avoided.
- Good for small projects.
- Increase in the amount of risk and uncertainty.
- Not good for complex and large projects.
- Not suitable where the requirements keep changing.
In Iterative model, a big project is divided into small parts, and each part is subjected to multiple iterations of the waterfall model. At the end of iteration, a new module is developed or an existing module is enhanced. This module is integrated into the software architecture and the entire system is tested all together.
- The main advantage of iterative development is the test feedback is immediately available at the end of each cycle.
- This model increases communication overheads significantly since, at the end of each cycle, feedback about deliverables, effort etc must be given.