-
Notifications
You must be signed in to change notification settings - Fork 0
programEvolution
As a consequence, programs must be continuously adapted. They evolve in a manner that is reminiscent of the evolution of biological organisms and of social groupings (LEH80, 82b). The evolutionary pressures on programs arise in several different ways.
- Evolution first appears during the development process, the human activity, that transforms a computer application concept into an operational system. The concepts, algorithms and techniques that are to be used to implement the program evolve as the design proceeds, as insight into the problem to be solved and understanding of methods for its solution are gradually developed.
- Evolution is also present in the continuing process that maintains system and cost-effectiveness, adapting it to the needs of a changing environment through the periodic release of modified versions of the code and documentation.
- Finally, the entire system evolves. It is re-defined, re-designed, re-implemented and replaced as it becomes too complex to maintain, or out of step with evolving application needs and implementation technologies. It is continually being adapted to the continuously changing environment.
The real problem lay not in the design of a specific system but in the methods and methodology of design. Software and system designs were unlikely ever to be optimum or complete. System application and system potential evolve (though that term was not used). The principle problems were therefore how to approach system specification and design; how one might limit the time or number of iterations required to achieve a satisfactory system; how, in a climate of rapidly advancing technology, one might teach design and transfer experience from one system to the next, from one team to the next, to facilitate subsequent adaptation of the system to changing needs and potential. The prime need was for the identification or development of de sign methods and methodology.
The results summarised in its section 1.3 (see ch.3), led to the recognition of phenomena whose analysis led slowly but surely to the concepts of Program Evolution Dynamics. The intent of this book is to trace the development of both the interpretation of the observed phenomena and of the concepts.
Observations and Models
The concept of continuing evolution was first verbalised; Program Growth Dynamics used until then Program Evolution Dynamics.
It identifies the intrinsic instability of any theory that claims to describe or explain the behaviour of a system that includes thinking people amongst its constituent elements.