Self-Adaptive Systems


Modern software systems closely interact with external entities (e.g. users, external services, and physical entities), whose changes occur at runtime and are impossible to be completely predicted at development time. How does such a system address the changes in the environment? Self-adaptive system that (1) monitors the changes, (2) analyzes and plans modification of structure and/or behavior of the system to maintain its qualities, and (3) executes the plan during system execution, is known as a promising approach. We are working on models@run.time techniques that utilize models of the system even at runtime by the system to make assured decision about self-adaption at runtime.


A self-adaptive software is comprised of “adaptable software” realizing application logics and “adaptation engine” realizing adaptation logics. This research aims to establish development process of assured and high-quality adaptation engine.

Technical Overview

We apply the control theory and artificial intelligence techniques to enable the model@run.time techniques for self-adaptive systems.

  • Environment model learning at runtime The techniques automatically reflect unforeseen changes in the environment to the environment model at runtime. We apply hypothesis finding and stochastic gradient decent techniques to enable fast and accurate learning of environment model.
  • Specification model synthesis at runtime The techniques automatically generate a “correct” specification model at runtime. We apply discrete controller synthesis techniques that generate a behavior specification model assured to satisfy given properties under a given environment model. We are designing efficient synthesis algorithms by restricting type of properties.
  • Models@run.time framework We are developing a models@run.time framework enacting a specification model by orchestrating given software components. We apply the framework to some concrete applications such as robot control systems.