2 types model on Evolutionary Development

 Evolutionary Development

This model is based on the idea of ​​developing an initial implementation that will generate user comments so that improvements can be made through multiple versions until a sufficient system can be developed. Apart from having separate activities this model provides quick and simultaneous feedback



There are 2 types in this model


  • Evolutionary programming

    Where the purpose of the process is to work with the customer to generate needs and deliver the final system to the user / customer. Development begins with the parts of the system that are understood. The system is developed by adding features as suggested by the customer.

  • Modeling

Where the purpose of evolutionary development in this type is to find out the needs of the customer and develop a better definition of requirements for the system. The model / example is focused on researching parts of customer needs that are less understood.

Evolutionary programming is important when it is difficult to make detailed system specifications. Some may agree that all systems fall into this type. However, evolutionary programming is widely used in the development of AI (artificial intelligence) systems that seek to match human capabilities.



It is impossible to create detailed specifications for software that matches humans because we do not understand how humans carry out their tasks.



The evolutionary approach is usually more effective than the waterfall approach when it comes to software development which must immediately meet customer needs. However, in terms of engineering and management, this model has fundamental problems, namely:



  • The process is not visible.

Managers need regular "deliverables" to measure progress. If the system is developed rapidly there will be waste in creating documents describing each version of the system.



  • Systems are usually less structured

The trend of continuous change will reduce the structure of the software. Software evolution seems difficult and expensive.



  • Special skills are rarely possessed

It is not clear what limits the normal skills in software engineering might be used effectively in this development model. Most systems developed in this way have been implemented by small, highly skilled and motivated groups.

In order to solve these problems, sometimes the goal of evolutionary development is to develop an example system. This example is used to understand and validate system specifications. It is here that evolutionary development is part of some broader process. (such as the waterfall model).



Because of these problems, large-scale systems are not usually developed in this way. Evolutionary development is more appropriate for



Relatively small system development.



Problems regarding changing existing systems are avoided by re-implementing the entire system whenever significant changes are required. If modeling is used, it is not very expensive.



Development systems that have a relatively short life span.



Here, the system is developed to support some time-limited activities. For example, a system that might be developed specifically for the launch of a new product.



Development of a system or parts of a large system where it is not possible to state the specifications in detail. For example, AI systems and user interfaces. 


Read Also : Waterfall approach

Komentar

Postingan populer dari blog ini

Waterfall approach

Do You Have What It Takes To Be An Affiliate Marketer?