The incremental model (also known as iterative enhancement model) comprises the features of waterfall model in an iterative manner. The waterfall model performs each phase for developing complete software whereas the incremental model has phases similar to the linear sequential model arid has an iterative nature of prototyping. During the implementation phase, the project is divided into small subsets known as increments that are implemented individually. This model comprises several phases where each phase produces an increment. These increments are identified in the beginning of the development process and the entire process from requirements gathering to delivery of the product is carried out for each increment.
The basic idea of this model is to start the process with requirements and iteratively enhance the requirements until the final software is implemented. In addition, as in prototyping, the increment provides feedback from the user specifying the requirements of the software. This approach is useful as it simplifies the software development process as implementation of smaller increments is easier than implementing the entire system.
Each stage of incremental model adds some functionality to the product and passes it on to the next stage. The first increment is generally known as a core product and is used by the user for a detailed evaluation. This process results in creation of a plan for the next increment. This plan determines the modifications (features or functions) of the product in order to accomplish user requirements. The iteration process, which includes the delivery of the increments to the user, continues until the software is completely developed.
The increments result in implementations, which are assessed in order to measure the progress of the product.
Various advantages and disadvantages associated with the incremental model are listed in Table.
Table Advantages and Disadvantages of Incremental Model
- Avoids the problems resulting in risk driven approach in the software
- Understanding increases through successive refinements.
- Performs cost-benefit analysis before enhancing software with capabilities
- Incrementally grows in effective solution after every iteration
- Does not involve high complexity rate
- Early feedback is generated because implementation occurs rapidly for a small subset of the software.
- Requires planning at the management and technical level
- Becomes invalid when there is time constraint on the project schedule or when the users cannot accept the phased deliverables.