Software Development Process Models

The Evolutionary Model

This approach is based on the idea of rapidly developing an initial software implementation from very abstract specifications and modifying this according to your appraisal. Each program version inherits the best features from earlier versions. Each version is refined based upon feedback from yourself to produce a system which satisfies your needs. At this point the system may be delivered or it may be re-implemented using a more structured approach to enhance robustness and maintainability. Specification, development and validation activities are concurrent with strong feedback between each.

There are two types of evolutionary development :

  1. Exploratory programming
    Here the objective of the process is to work with you to explore their requirements and deliver a final system. The development starts with the better understood components of the system. The software evolves by adding new features as they are proposed.

  2. Throwaway prototyping
    Here the purpose of the evolutionary development process is to understand your requirements and thus develop a better requirements definition for the system. The prototype concentrates on experimenting with those components of the requirements which are poorly understood.

This is the only method appropriate for situations where a detailed system specification is unavailable. Effective in rapidly producing small systems, software with short life spans, and developing sub-components of larger systems.

It is difficult to measure progress and produce documentation reflecting every version of the system as it evolves. This paradigm usually results in badly structured programs due to continual code modification. Production of good quality software using this method requires highly skilled and motivated programmers.


© 1999 - 2017 Protechnix.