Hasso-Plattner-Institut
Prof. Dr. Holger Giese
 

Models@run.time for Engineering Self-adaptive Software Systems

Software implementing real world applications must be continuously adapted to changes in its environment or requirements to remain useful for the user (cf. Lehman’s laws of software evolution). Meanwhile, traditional maintenance approaches that completely stop and exchange a running system to realize adaptation are not in line with context and self-aware, mission-critical, or ultra-large-scale software system. For example, our society or economy heavily depend on information technology, which requires the permanent availability of mission-critical systems. Thus, new approaches are needed to adapt a software system while it is running. This and increasing maintenance costs have led to the vision of Self-Adaptive Software: while being operational, such a software system automatically adjusts its behavior in response to changes in its environment, requirements, or in the system itself. Nevertheless, a self-adaptive software system still has to be open for (typical) software maintenance and evolution approaches.

One approach to develop self-adaptive behavior is to split the software into the domain and adaptation logic, which promotes separation of concerns. The domain logic implements the domain functionality for the end users, while the adaptation logic implements a feedback loop, like a monitor-analyze-plan-execute loop, that controls the runtime adaptation of the domain logic. Both logics are integrated by well-defined sensors and effectors. However, this separation usually requires a reflective runtime representation of the domain logic, which is used by the adaptation logic’s feedback loop. Such representations can be achieved by runtime models. Moreover, the feedback loop becomes a crucial part of the overall architecture.

In this context,  we work on concepts for engineering self-adaptive software systems, esp. the adaptation logic, with runtime models. The Model-Driven Engineering (MDE) discipline is helpful though it is focused on the design, implementation, and deployment stages of software development. However, models and techniques following MDE principles can also be used at runtime for self-adaptation, which requires efficient on-line solutions. In general, we do research on the model-driven engineering of self-adaptive systems .

Particularly, we work on runtime models for feedback loops by means of models that are causally connected to the running system (these models reflect the running system with respect to different functional and non-functional concerns), that reflect the system’s environment, and that specify the adaptation steps (monitoring, analysis, planning, and execute). The interplay between these different models and thus feedback loops can be explicitly specified by so called megamodels. For this purpose, we proposed a specific modeling language and an interpreter to model and execute megamodels and thus feedback loops. Megamodels are kept explicit and alive at runtime, which leverages adaptive control architectures without having to integrate specific sensors or effectors in between feedback loops. In such architectures, feedback loops are organized in layers and a feedback loop at a higher level layer manages another feedback loop at a lower level layer. Thereby, a megamodel specifying a managed feedback loop directly serves as a reflection model used by the managing loop. All these efforts aim at engineering self-adaptive systems by bringing runtime models, feedback loops, and layered architectures together.

In this context, we also work on MDE techniques for feedback loops and employ graph transformation based techniques to maintain multiple runtime models or to analyze and change runtime models.

Project Team

Talks and Presentations

  • Toward Self-Adaptive Software Employing Model Predictive Control, NII Shonan Meeting on Controlled Adaptation of Self-adaptive Systems (CASaS), Shonan, Japan, 04/2016.
  • Model-Driven Engineering of Self-Adaptive Software', Computer Science Colloquium, Universität of Cape Town, South Africa, 08/2015.
  • Model-Driven Engineering of Self-Adaptive Software with EUREMA, GI Dagstuhl Seminar on Control Theory Meets Software Engineering, Seminar 14382 at Schloss Dagstuhl, Wadern, Germany, September 14-19, 2014 (Slides)
  • Modeling Self-Adaptive Software, Dagstuhl Seminar on Software Engineering for Self-Adaptive Systems: Assurances, Seminar 13511 at Schloss Dagstuhl, Wadern, Germany, December 15-19, 2013 (Slides)
  • Engineering Self-Adaptive Software Systems with Runtime Models, 7th Annual HPI Symposium on Future Trends in Service-Oriented Computing (FutureSOC 2012), Potsdam, Germany, June 14-15, 2012 (VideoSlides)
  • A Language for Feedback Loops in Self-Adaptive Systems: Executable Runtime Megamodels, 7th International Symposium on Software Engineering for Adaptive and Self-Managing Systems (SEAMS 2012), Zurich, Switzerland, June 4-5, 2012 (Slides)
  • Engineering Self-Adaptive Software Systems with Runtime Models, GI Dagstuhl Seminar on Quality-of-Service Attributes in Service- and Cloud-based Systems: Specification, Modelling, Monitoring, Prediction, and Optimisation, Seminar 12211 at Schloss Dagstuhl, Wadern, Germany, May 20-25, 2012 (Slides)
  • Models at Runtime for Adaptive and Self-managing Software, Dagstuhl Seminar on Models@run.time, Seminar 11481 at Schloss Dagstuhl, Wadern, Germany, November 27 - December 02, 2011 (Slides)
  • Language and Framework Requirements for Adaptation Models, 6th International MoDELS Workshop on Models@run.time, Wellington, New Zealand, October 17, 2011 (Slides)
  • Model-Driven Software Engineering of Self-Adaptive Systems, Talk at NTH Braunschweig, Germany, January 28, 2011 (Slides)
  • Multiple Runtime Models and their Relations for Self-Managing Systems, HPI Symposium at SAP, Walldorf/St.Leon-Rot, Germany, December 06, 2010 (Slides)
  • Model-Driven Software Engineering of Self-Adaptive Systems, Talk at the Royal Institute of Technology, Stockholm, Sweden, November 25, 2010 (Slides)
  • Runtime Models as Interfaces for Adapting Software Systems, Dagstuhl Seminar on Software Engineering for Self-Adaptive Systems, Seminar 10431 at Schloss Dagstuhl, Wadern, Germany, October 24-29, 2010 (Slides)
  • Toward Megamodels at Runtime, 5th International MoDELS Workshop on Models@run.time, Oslo, Norway, October 05, 2010 (Slides)
  • Model-Based Self-Adaptation of Service-Oriented Software Systems, Joint Workshop of the German Research Training Groups in Computer Science, Event 10222 at Schloss Dagstuhl, Wadern, Germany, May 31 - June 02, 2010 (Slides)
  • Modellgetriebene Softwareentwicklung und Graphtransformationssysteme, Invited talk at a seminar of the TFS Research Colloquium at the Technical University Berlin, Germany, May 31, 2010 (Slides)
  • Self-Awareness and Self-Consciousness via Software: An Engineering Perspective, Expert Talk, First CHIST-ERA Conference, Rome, Italy, May 28, 2010 (Slides)
  • Adaptation and Abstract Runtime Models, 5th ICSE Workshop on Software Engineering for Adaptive and Self-Managing Systems (SEAMS 2010), Cape Town, South Africa, May 03-04, 2010 (Slides)
  • Model-Driven Engineering of Self-Adpative Systems, Invited talk at a seminar of the Distributed Systems Research Group at the Charles University Prague, Czech Republic, February 16, 2010 (Slides)
  • Architectural Models at Runtime, Invited talk at the Workshop on Architectural Concepts and Programming Languages, Technical University Munich, Germany, November 08, 2009
  • Incremental Model Synchronization for Efficient Run-time Monitoring, 4th International MODELS Workshop on Models@run.time, Denver, Colorado, USA, October 05, 2009 (Slides)
  • Architecting Self-Adaptive Critical Systems: Contradiction or Panacea?, Invited talk at the Workshop on Architecting Dependable Systems (WADS), Estoril, Lisboa, Portugal, June 29, 2009
  • Model-Driven Architectural Monitoring and Adaptation for Autonomic Systems, 6th International Conference on Autonomic Computing and Communications (ICAC 2009), Barcelona, Spain, June 15-19, 2009
  • On the Role of Models for Self-Healing and Self-Adaptive System, Dagstuhl Seminar 09201 on Self-Healing and Self-Adaptive System, Schloss Dagstuhl, Wadern, Germany, May 10-15, 2009 (Slides)

Publications