Monday, April 20, 2009

Explain Incremental Model.

The incremental model combines elements of the waterfall model applied in an iterative fashion.

Each linear sequence produces deliverable “increments” of the software.
(Ex: a Notepad delivers basic file management, editing, in the first increment;
More refined editing, format and printing in the second increment;
Find and Replace in the third increment.)

With an increment model, the first increment is often a core product. The core product is used by the customer and after the feedback from the customer, a plan is developed for the next increment. The plan deals with the modification of the core product to better meet the needs of the customer and the delivery of additional features and functionality.

The process is repeated until the complete product is produced.

When to use Incremental model

If it is too risky to develop the whole system at once, then the incremental development should be considered. [Source]

Advantages of Incremental model

As product is to be delivered in parts, total cost of project is distributed.
Limited number of persons can be put on project because work is to be delivered
in parts.

As development activities for next release and use of early version of product is
done simultaneously, if found errors can be corrected.
Customers or end users get the chance to see the useful functionality early in
the software development life cycle.

Disadvantages of Incremental model

As product is delivered in parts, total development cost is higher.
Well defined interfaces are required to connect modules developed with each
phase.

The model requires well defined project planning schedule to distribute the work
properly. [Adv & Disadv Source: Software Engineering by Sabharwal Sangeeta]

Also See:

Waterfall model, When to use, its advantages & disadvantages
RAD model, When to use, its advantages & disadvantages
Spiral model, When to use, its advantages & disadvantages
Comparison of Software Development Models
Questions on Iterative/Incremental Methodology