SDLC – Incremental vs Evolutionary Software Development Process

What are the differences between the Incremental and Evolutionary Software Development Process?

In an incremental model, all the requirements are gathered before starting the incremental development process. In the Software Requirement Specification (SRS) document, the scope is defined and fixed based on the requirements. The entire development contract will be defined. However, the minor deviation is possible in the scope but not entirely.

In the evolutionary model, it is not the case. After an overall understanding of the system, the development team does not really capture all the requirements but starts with some core or riskier modules. Here the prescribed scope is not defined. Sometimes, the project never converges as the project manager does not know how much time and effort are required if the company signs this project or project contract for the first time.

Incremental Model

  1. The requirements are clear to the development team.
  2. The requirements are split into slices, and one by one, slices are picked based on selection criteria.
  3. The development of each slice goes into multiple iterations for the refinement of functionality, and in the end, a deliverable product is released.
  4. It is called an increment, and in each increment, a deliverable product is given to the user.
  5. In this model, requirements do change. But to a certain extend, like the addition and removal of certain functionalities.
  6. The development team knows how much has been completed and how much needs to be complete soon.
  7. Picking criteria for the incremental model: when the requirements are more or less fixed and clearer to the customer. However, to mitigate risk, the development team involves the customer for feedback, and after each increment, the product is given to the customer for feedback. And feedback is incorporated in the subsequent increments to achieve the final product which satisfies the customer’s requirements.

Evolutionary Model

  1. The requirements are not clear, and it evolves during the development cycle.
  2. At the initial stage, based on their understanding of the customer’s requirements, they developed the core modules and functionalities and delivered them to the customer for feedback.
  3. This is called an iteration. In each iteration, they release a working software after performing integration and level of testings.
  4. The development team does not know how much has been completed and how much needs to be complete in the near future.
  5. Picking criteria for the evolutionary model: when the requirements are not clear.

Commonalities between these process models

  1. These two models come under the Agile software development model:
  2. Both the model releases solutions incrementally or iteratively take user feedback and incorporate feedback in subsequent releases.
  3. Customers can see and feel the solution at the very initial level.

More Notes

Reference

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

 9,356 total views,  1 views today

Scroll to Top
Scroll to Top
%d bloggers like this: