Thesis Proposal: Cost-effective, Software Architecture-based Self-adaptation

Shang-Wen Cheng

Thesis Committee Members

  • David Garlan, Chair
  • Peter Steenkiste
  • Jonathan Aldrich
  • Jeff Magee, Professor in Computing, Department of Computing, Imperial College

Abstract

Modern software-based systems increasingly must operate in the face of change, resulting in a continued rise of administrative overhead for managing these systems. Systems are increasingly expected to continue operating with only minimal human oversight and to adapt themselves at run time to accommodate resource variability, changing environments, shifting user priorities, and system faults. However, most systems deployed today have application-specific and hardwired self-adaption capabilities. Furthermore, these capabilities are brittle, costly to change, difficult to reuse, and limited in scope.

An alternative approach in recent work overcomes some of these limitations by using external mechanisms to control the system. External control typically maintains one or more explicit models of the software and uses them as a basis for configuring and repairing the system. A recent branch of work suggests an architectural model of the software as a useful basis for dynamically changing the system. An architectural model can provide a global system perspective, expose important properties and constraints, and support problem analysis. It therefore allows adaptation to be done in a principled and possibly automated fashion. Using the architectural model as a basis to monitor and adapt a running system is known as architecture-based self-adaptation.

Existing approaches to architecture-based self-adaptation support self-adaptation for particular classes of systems and specific domains of concerns. Their specialized support limits their applicability to other kinds of systems. In addition, these specialized adaptation tools are costly to develop and maintain. In this dissertation I propose a new approach that promises to realize the benefits of architecture-based self-adaptation while overcoming existing limitations. I claim that we can improve the ability of software engineers to add and evolve self-adaptation capabilities cost-effectively for a wide range of software systems and for multiple properties. We can achieve this by defining a self-adaptation framework that factors out common adaptation mechanisms and provides tailoring mechanisms to allow engineers to target self-adaptation capabilities to particular classes of system and domains of concern.

Download the PDF version of the thesis proposal, revised June 2nd, 2004.