SDLC – Evolutionary Model

In the evolutionary model, after understanding the system, the development team does not really capture all the requirements. Still, it starts with some of the core or riskier modules.

According to Tom Glib in Software Metrics

A complex system will be most successful if implemented in small steps. Retreat to a previous successful step on failure. Opportunity to receive some feedback from the real world before throwing in all resources and you can correct possible errors.

According to Craig Larman

Evolutionary iterative development implies that the requirements, plan, estimates, and solution evolve or are refined over the course of the iterations, rather than fully defined and frozen in a major upfront specification effort before the development iterations begin. Evolutionary methods are consistent with the pattern of unpredictable discovery and change in new product development.

Evolutionary Model

In the evolutionary model, the core modules of the software are first developed, which is refined into an increasing level of capabilities called iterations. In iteration, new functionalities will be added, and also the existing functionalities can change based on the user feedback. Each iteration is developed through a mini waterfall model, and at the end of an iteration, a tested, integrated executable system is developed and deployed at the customer site. This is also called a minor release of the software product.

At the end of development, maybe the existing functionalities might have changed. No new functionalities might have got added. Still, only the existing functionalities have been refined, or it may so happen that existing functionalities have changed a little bit, and new functionalities have been added. So, these are an increment, and therefore, it has some incremental development. This is called a major release of the software product. Before a major release, there would be multiple minor releases of the software product.

An evolutionary model with Iterations

  • The outcomes of each iteration are tested, integrated, and become an executable system.
  • The iteration length is short and fixed. Usually, between 2 and 6 weeks and development takes many iterations (10-15) for a single release, also called an increment.
  • It does not freeze requirements, and then a conservative design opportunity exists to modify requirements and design.
  • Successive versions: Functional systems capable of performing some useful work.
  • A new release may include new functionality, and existing functionality in the current release might have been enhanced.
  • Evolves an initial implementation with user feedback – multiple versions until the final version.

Advantage of Evolutionary Model

  • Users get a chance to experiment with a partially developed system much before the full working version is released.
  • It is best suited to find the user requirements, the exact user requirements, and once it is delivered to the customer, the software meets the customer requirements.
  • Core modules get tested thoroughly, which reduces the chances of errors in the final delivery software.
  • Better management of complexity by developing one increment at a time.
  • Better management of changing requirements
  • Can get customer feedback and incorporate them much more efficiently than customer feedback comes only after the development work is complete.
  • Training can start on an earlier release, so customer feedback is taken into account.
  • Frequent releases allow developers to fix unanticipated problems quicker.
  • These releases are tested each time before deploying at the customer site. Therefore, it is less likely to contain bugs.

The problem in Evolutionary Model

  • The process is intangible – no regular, well-defined deliverables
  • The process is unpredictable and hard to manage. E.g., scheduling, workforce allocation, etc.
  • Systems are rather poorly structured; continual, unpredictable changes tend to degrade the software structure.
  • Systems may not even converge to a final version.

Reference

  1. Fundamentals of Software Engineering Book & NPTEL Video Lectures by Rajib Mall.

 1,355 total views,  1 views today

Scroll to Top
Scroll to Top