Evolutionary development life cycle model in software engineering

Evolutionary model in software engineering
Evolutionary Model.

Evolutionary Development Life Cycle Model

Evolutionary Model is accommodates incremental development using experience from earlier increments to help to define requirements for subsequent increments. Evolutionary Model is also known as Evolutionary Prototyping, Rapid Delivery, Evolutionary Delivery Cycle, or Rapid Application Delivery.

Increments are developed in a sequential manner, rather than in parallel, and within each development life cycle there is an normal progression through analysis, design, code, test and implementation, followed operations and maintenance (McConnell 1996).

During the operations and maintenance stages for an increment, feedback from the customers may cause a reiteration of some steps of development for that increment resulting in a release of that increment.

Experienced with each finished release is incorporated with in requirements for the next development cycle.

From the customer's point of view, the system will "evolve" as increments that are delivered over a time. 

From the developers point of view, those requirements that are clear at the beginning of the project will dictate the initial increment, and the requirements for each development cycle there after will be clarified through the experience of developing prior increments.
Software development models (Evolutionary Model)

Advantages of Evolutionary Life Cycle Model

  • Early delivery of portions of the system even though some of the requirement are not yet decided.
  • Use of early releases as tools for requirements elicitation.
  • Benefits of the system are recognize always from the early releases while later releases are developing continuously.

Dis-Advantages Of Evolutionary Life cycle Model.

  • The overall elapse time for the project may be longer if the scope and requirements are established before any increments are developed. 
  • Difficulty in estimating cost and schedule at the start of the project when the scope and requirement have not been established
  • Time apparently gained on the front-end of the project because of the early releases may be lost later because of the need for rework resulting from  evolving the requirements.
  • Additional time must also be planned for maximize and minimize testing as increments are developed and added to the system.
A variation of the evolutionary model that adds a one-time project initiation process at the start of the project, including the high level requirements, project segmentation, and overall architecture design, can be used to minimize the limitations of the model.

Post a comment