What is Incremental Model or Iterative Model?
The Incremental Model is a method of software development where the product is designed, implemented and tested incrementally. Little more is added each time until the product is finished. It involves both development and maintenance. This is also known as the Iterative Model.
The product is decomposed into a number of components, each of which is designed and built separately. Multiple development cycles take place here, making the life cycle a “multi-waterfall” cycle. Cycles are divided up into smaller, more easily managed modules. Each module passes through the requirements, design, implementation and testing phases. The first module is often a core product where the basic requirements are addressed, and supplementary features are added in the next increments. Once the core product is analyzed by the client, there is plan development for the next increment. Each subsequent release of the module adds function to the previous release. The process continues until the complete system is achieved.
Advantages and Disadvantages of Incremental / Iterative Model
- Incremental Model allows partial utilization of the product and avoids a long development time.
- Generates working software quickly and early during the software life cycle.
- This model is more flexible and less costly to change scope and requirements.
- It is easier to test and debug as smaller changes are made during each iteration.
- In this model, the customer can respond to each built.
- As testing is done after each iteration, faulty elements of the software can be quickly identified because few changes are made within any single iteration.
- As additional functional is added to the product at every stage, problems may arise related to system architecture which was not evident in earlier stages.
- It needs good planning and design at every step.
- Needs a clear and complete definition of the whole system before it can be broken down and built incrementally.
- Total cost is higher than waterfall.