As the environment of a fault-tolerant system increases in complexity, the system’s performance may be degraded if it has
to respond to all conditions in the service range at any time. The performance may be improved if the system is able to adapt
its structure to changing environmental conditions. Adaptation may be valuable not only at run time but over the entire life-cycle.
At run time, adaptation should be automatic, but during design and configuration, it may be manually driven. We examine the
benefits of adaptation at different times of the life-cycle, and discuss issues of structure and control. We review several
architectural approaches to adaptive system design and recommend using reflective architectures because of their power and
generality.
Visiting research fellow, SRI International (retired)