any benefits. Most significantly, an abstract architectural model can provide a global perspective of the system and expose important system-level properties and integrity constraints. While attractive in principle, architecture-based self-adaptation raises a number of research and engineering challenges. First, the ability to handle a wide variety of systems must be addressed. Since different systems have radically different architectural styles, properties of interest, and mechanisms supporting dynamic modification, it is critical that the architectural control model and modification strategies be tailored to the specific system. Second, the need to reduce costs in adding external control to a system must be addressed. Creating the monitoring, modeling, and problem-detection mechaThe Rainbow framework uses software architectures and a reusable infrastructure to support self-adaptation of software systems. The use of external adaptation mechanisms allows the explicit specification of ...