You
are here: Freetutes.com
> Systems
Analysis and Design
Iterative Enhancement Life Cycle Model
The iterative enhancement life cycle model counters the third limitation of the
waterfall model and tries
to combine the benefits of both prototyping
and the waterfall model.
The basic idea is that the software should be developed in increments, where each
increment adds some functional capability to the system until the full system
is implemented. At each step extensions and design modifications can be made.
An advantage of this approach is that it can result in better testing, since testing
each increment is likely to be easier than testing entire system like in the waterfall
model. Furthermore, as in prototyping,
the increments provides feedback to the client which is useful for determining
the final requirements of the system.
In the first step of iterative enhancement model, a simple initial implementation
is done for a subset of the overall problem. This subset is the one that contains
some of the key aspects of the problem which are easy to understand and implement,
and which forms a useful and usable system. A project control list is created
which contains, in an order, all the tasks that must be performed to obtain the
final implementation. This project control list gives an idea of how far the project
is at any given step from the final system.
Each step consists of removing the next step from the list. Designing the implementation
for the selected task, coding and testing the implementation, and performing an
analysis of the partial system obtained after this step and updating the list
as a result of the analysis. These three phases are called the design phase, implementation
phase and analysis phase. The process is iterated until the project control list
is empty, at the time the final implementation of the system will be available.
The process involved in iterative enhancement model is shown in the figure below.

The Iterative Enhancement Model
The project control list guides the iteration steps and keeps track of all
tasks that must be done. The tasks in the list can be include redesign of defective
components found during analysis. Each entry in that list is a task that should
be performed in one step of the iterative enhancement process, and should be simple
enough to be completely understood. Selecting tasks in this manner will minimize
the chances of errors and reduce the redesign work.
Other Software/System Development Life Cycles
<< Previous
Page | Contents
| Next Page >>
|