Document Type

Technical Report

Publication Date



Self-adaptive software -- Design, Adaptive computing systems, Self-stabilization (Computer science)


A key feature of tomorrow’s operating systems and runtime environments is their ability to adapt. Current state of the art uses an ad-hoc approach to building adaptive software, resulting in systems that can be complex, unpredictable and brittle. We advocate a modular and methodical approach for building adaptive system software based on feedback control. The use of feedback allows a system to automatically adapt to dynamically varying environments and loads, and allows the system designer to utilize the substantial body of knowledge in other engineering disciplines for building adaptive systems. We have developed a toolkit called SWiFT that embodies this approach and helps system designers construct, analyze and visualize the behavior of their system. SWiFT provides a framework for composing simple feedback mechanisms that operate within limited domains, and for dynamically reconfiguring them in response to drastic changes in the environment. The result is a system that is efficient and predictable across a wide range of operating conditions. We describe three SWiFT applications to demonstrate the feasibility of this technology.


Oregon Graduate Institute Technical Report CSE-99-003, January 1999.

Persistent Identifier