Adaptive and Evolvable Software Systems: Techniques, Tools and Applications
Jeff Gray, Raymond Klefstad, Yvonne Coady · 2007
Software's ability to adapt is typically performed at two different stages: modifiability during development, and adaptation during execution. The first type of adaptation is concerned with design-time, or compile-time, techniques that permit the modification of the structure and function of a software representation in order to address changing stakeholder requirements. The second type of adaptation occurs at run-time during the execution of the program. This type of adaptation refers to a system's ability to modify itself and to respond to changing conditions in its external environment.