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.
Citation:
Jeff Gray, Raymond Klefstad, Yvonne Coady, "Adaptive and Evolvable Software Systems: Techniques, Tools and Applications," hicss, pp.256, 40th Annual Hawaii International Conference on System Sciences (HICSS'07), 2007