What is Evolutionary Process Model ?

Evolutionary software models are iterative. They are characterized in manner that enables the software engineers to develop increasingly more complete version of a software. In programming 'iteration' means sequential access to objects. It is typically a cycle. Software engineers can follow this process model that has been designed to put up a product that regularly complete over time.

When specifications provided by the user are not very clear, the first initial implementation is viewed as a trial. The main purpose of this trial version is to access the feasibility of the product and to verify the requirements. It is exposed to user to get detailed and refined requirements. The different activities of development are carried out concurrently with rapid feedback during these activities. Evolutionary development can be of two types :

1. Exploratory development : The development of the product starts with the part of system which is well understood by the developer. This product is exposed to the user to get more features. These new features are added to the product and process continues until a final acceptable product is built. In this type of development, the user has an active participation.

2. Throwaway prototyping : The development of the product starts with the part of system which is poorly understood. It is then exposed to the user to get more and refined requirements. This type of development is helpful to understand the user's requirements clearly which were not properly understood in the beginning. Afterwords this developed part is thrown-away and actual system development starts from scratch.

Advantages of Evolutionary model :

An evolutionary development approach is more effective than Waterfall model approach. The advantages of this approach are :
  1. Requirements are not frozen in beginning. This during the development process the user gets better understanding about requirements, functions and constraints of system. These refined and new features can be added to the system before the final delivery.
  2. This approach is useful for the systems where it is impossible to express detailed specifications in the beginning. For example, Artificial Intelligence Systems.
  3. This approach is useful to develop small and medium sized systems.
  4. This development is useful when staffing is unavailable for a complete implementation by the business deadline.
Disadvantages of Evolutionary model :

Some of the disadvantages of evolutionary model are as follows :
  1. In this type of development, adding of new features continues up to the last stages, thus the software may lose its structure.
  2. In evolutionary model, more changes make it difficult to produce deliverable after each stages. Thus the process visibility is very poor.
  3. This type of development can be carried out by highly skilled and motivated software engineers.

Next Topic :

No comments:

Post a Comment