ITERATIVE ENHANCEMENT MODEL
The Iterative enhancement model combines elements of the linear sequential model (applied repetitively) with the iterative philosophy of prototyping. In this model, the software is broken down into several modules, which are incrementally developed and delivered. First, the development team develops the core module of the system and then it is later refined into increasing levels of capability of adding new functionalities in successive version.
Each linear sequence produces a deliverable increment of the software. For example, word processing software developed using the iterative paradigm might deliver basis file management, editing, and document production functions in the first increment; more
sophisticated editing, and document production capabilities in the second increment; spelling and grammar checking in the third increment; and advanced page layout capability in the fourth increment. It should be noted that the process flow for any increment could incorporate the prototyping paradigm.
When an iterative enhancement model is used, the first increment is often a more product. That is, basic requirements are addressed, but many supplementary features (some known, other unknown) remain undelivered. As a result of use and/or evaluation, a plan is developed for the next increment. The plan addresses the modification of the core product to better meet the needs of the customer and the delivery of additional features and functionality. This process is repeated following the delivery of each increment, under the complete product is produced.
Advantages of Iterative Enhancement Model
The various advantages of following the approach of the iterative enhancement are as follows :
- The possibility of changes in requirement is reduced because of the shorter time span between the design of a component and its delivery.
- Early delivery of some useful components improves cash flow, because you get some return on investment early on.
- ‘Gold-plating’, that is the requesting of features that are unnecessary and not in fact used, is less as users will know that they get more the one bite of the cherry if a feature is not in the current increment then it can be included in the next.
- Smaller sub-projects are easier to control and manage.
- The feedbacks from early increments improve the later stages.
- Users get benefits earlier than with a conventional approach.
- Job satisfaction is increased for developers who see their labours bearing fruit at regular, short, intervals.
- The project can be temporarily abandoned if more urgent work crops up.
Disadvantages of iterative Enhancement Model
The various disadvantages of iterative enhancement model have been put forward :
- Programmers may be more productive working on one large system than on a series of smaller ones.
- Software breakage, that is, later increments may require modifications to earlier
- Some problems are difficult to divide into functional units (modules), which can be incrementally developed and delivered.