What is Evolutionary Model?
Evolutionary model is also referred to as the successive versions model and sometimes as the incremental model. In Evolutionary model, the software requirement is first broken down into several modules (or functional units) that can be incrementally constructed and delivered (see Figure 5).
The development first develops the core modules of the system. The core modules are those that do not need services from the other modules. The initial product skeleton is refined into increasing levels of capability by adding new functionalities in successive versions. Each evolutionary model may be developed using an iterative waterfall model of development.
The evolutionary model is shown in Figure 6. Each successive version/model of the product is a fully functioning software capable of performing more work than the previous versions/model.
The evolutionary model is normally useful for very large products, where it is easier to find modules for incremental implementation.
Often, evolutionary model is used when the customer prefers to receive the product in increments so that he can start using the different features as and when they are developed rather than waiting all the time for the full product to be developed and delivered.
Advantages of Evolutionary Model
- Large project: Evolutionary model is normally useful for very large products.
- User gets a chance to experiment with a partially developed software much before the complete version of the system is released.
- Evolutionary model helps to accurately elicit user requirements during the delivery of different versions of the software.
- The core modules get tested thoroughly, thereby reducing the chances of errors in the core modules of the final products.
- Evolutionary model avoids the need to commit large resources in one go for development of the system.
Disadvantages of Evolutionary Model
- Difficult to divide the problem into several versions that would be acceptable to the customer and which can be incrementally implemented and delivered.