FUSION: A Learning-Based Approach for Feature-Oriented Self-Adaptation

Welcome to the FUSION Homepage. FUSION is a machine learning-based approach for engineering feature–oriented self–adaptive software systems. Unlike prior approaches, FUSION is capable of learning from changes that are occurring in the system and environment. It is then able to leverage this learned knowledge for various purpose, including adjusting its reasoning process, but to also improve the efficiency of the management algorithms.
Key publications describing FUSION:

Framework Overview

Above figure depicts the FUSION framework as it adapts a running system composed of a number of features. The running system is variable in the sense that features can be "selected" and "deselected" on demand. FUSION makes new feature selections to resolve QoS tradeoffs and satisfy as many goals as possible. For example, if a Response Time goal is violated, FUSION adapts the system by choosing a new configuration (i.e., feature selection) that brings down the response time and keeps other goals satisfied.

[FUSION picture]

Adaptation Cycle.FUSION makes such adaptation decisions using a continuous loop, called Adaptation Cycle. The adaptation cycle collects metrics (measurements) and optimizes the system by executing three activities in the following sequence:

Learning Cycle.The Learning Cycle in FUSION is used to learn the impact of adaptation decisions on the system's goals. At runtime, the learning cycle continuously executes, and as the dynamics of the system and its environment change, the framework tunes itself. For example, when FUSION adapts the system to resolve a Response Time violation, it keeps track of the gap between the expected and the actual outcome of the adaptation. This gap is a sign that a new behavioral patterns is emerging in the system. Learning cycle keeps track of such gaps and tunes itself by executing the following two activities in sequence:

FUSION framework has been applied to the following case studies:

Tool Support

The centerpiece of FUSION tool support is our modeling environment, which is a set of meta-models based on Generic Modeling Environment (GME). GME is a general purpose model-driven engineering environment that enables the development of domain-specific modeling languages. Just as formal grammars define the structure of valid sentences for textual languages, meta-models play a similar role for graphical languages. GME has the ability to interpret a given meta-model and automatically build a modeling environment that enforces the structural rules. The meta-modeling language supported by GME is a stereotyped variant of UML.

After installing the meta models on top of GME, you will be able to create FUSION's feature and goal models and corresponding XTEAM models. FUSION's feature modeling language is comprised of Feature and Feature Group elements. The goal model editor supports two types of model elements: Goal and Metric. Our XTEAM meta-model is an extended versions of original XTEAM. Runtime integration environment (excluding FUSION to XTEAM transformations) can be installed as a plug-in directly on GME. This includes XTEAM to Prism-MW transformations (model-to-code transformation), which generate the system architecture. The generated system architecture will be executed on top of Prism-MW, which should be configured first. Synchronizing the FUSION models with the executing XTEAM model is achieved by FUSION to XTEAM transformations (model-to-model transformation). These transformations are based on QVT language. QVT transformations are not executed on top of GME. Instead, they are executed on top of medini QVT toolset and operate on the FUSION/XTEAM models. The summary of the steps required for installing FUSION tool support is as following:

  1. Install Generic Modeling Environment (GME).
  2. Install Prism-MW.
  3. Install medini QVT toolset.
  4. Install the modeling environment meta models on top of GME.
  5. Install the runtime integration environment on top of the modeling environment.
  6. Create the FUSION model and — corresponding XTEAM fragments.
  7. Configure medini QVT toolset to operate on the created model.
  8. Configure medini QVT toolset to use FUSION to XTEAM transformations.

[seal's logo]
[uci's logo]