what is Iterative or Incremental Model?

An iterative life cycle model does not attempt to start with a full specification of requirements. Instead, development begins by specifying and implementing just part of the software, which can then be reviewed in order to identify further requirements. This process is then repeated, producing a new version of the software for each cycle of the model.

  • Requirements phase, in which the requirements for the software are gathered and analyzed. Iteration should eventually result in a requirements phase that produces a complete and final specification of requirements.
  • Design phase, in which a software solution to meet the requirements is designed. This may be a new design, or an extension of an earlier design.
  • Implementation and Test phase, when the software is coded, integrated and tested.
  • Review phase, in which the software is evaluated, the current requirements are reviewed, and changes and additions to requirements proposed. 
For each cycle of the model, a decision has to be made as to whether the software produced by the cycle will be discarded, or kept as a starting point for the next cycle.As the software evolves through successive cycles, tests have to be repeated and extended to verify each version of the software.

Advantages
  • Some working functionality can be developed quickly and early in the life cycle.
  • Results are obtained early and periodically.
  • Parallel development can be planned.
  • Progress can be measured.
  • Less costly to change the scope/requirements.
  • Testing and debugging during smaller iteration is easy.
  • Risks are identified and resolved during an iteration; and each iteration is an easily managed milestone.
  • Easier to manage risk - High risk part is done first.
  • With every increment operational product is delivered.
  • Issues, challenges & risks identified from each increment can be utilized/applied to the next increment.

Disadvantages 

  • More resources may be required.
  • Although cost of change is lesser but it is not very suitable for changing requirements.
  • More management attention is required.
  • Each phase of an iteration is rigid with no overlaps.
  • System architecture or design issues may arise because not all requirements are gathered. up front for the entire life cycle.
  • Does not allow iterations within an increment.
  • Defining increments may require definition of the complete system.

Comments

Popular posts from this blog

How to Build and Grow an Effective Email List in 2024?

What is Prototype Model?

What is State or Graph based Testing?