Self-Healing Software Architectures



Increasingly, self-* functionality like self-adaptiveness, self-optimization and self-healing is contained in today's software systems. Such systems can autonomously change their behavior during runtime. In general, systems with self-* properties adjust their behavior in response to changing operating environments, if the software is not accomplishing its tasks, or when better functionality or performance is possible. If self-* is implemented as architectural reconfiguration, a good behavior is equivalent to a good configuration of the system's components and connectors and a good plan to reach that configuration from the current configuration.

In a previous work, the Planning Domain Definition Language is used to define the good configuration and the different actions, which can be used to reach that configuration, for the specific case of self-healing systems. The plan (as the sequence of actions), which transforms the configuration after a failure to a good one, is computed by standard automated planning tools. However, these automated planning tools are general-purpose tools and, thus, are not able to exploit domain knowledge in the calculation of the plan. This severely hampers the scalability of the computation of self-healing plans, e.g., the current approach only supports systems up to 8 nodes and 16 components.


The goal of the research is to develop a domain-specific heuristic for the computation of self-healing plans based on algorithms from literature. The resulting algorithm will have various parameters that have to be optimized in order to choose the best ones. Particularly, the algorithm will employ hiearchical decomposition as a means to achieve better scalability. The results of the thesis will be evaluated using a benchmark to compare it to the existing algorithm.

Further readings

Matthias Tichy and Benjamin Klöpper. Planning self-adaption with graph transformations. In Applications of Graph Transformation with Industrial Relevance, 4th International Symposium, AGTIVE 2011, Budapest, Hungary, October 4-7, 2011, volume 7233 of Lecture Notes in Computer Science. Springer Verlag, 2012.

Benjamin Klöpper, Shinichi Honiden, Jan Meyer, and Matthias Tichy. Planning with utility and state trajectory constraints in self-healing automotive systems. In Fourth IEEE International Conference on Self-Adaptive and Self-Organizing Systems, SASO 2010, Budapest, Hungary, 27 September - 1 October 2010, pages 74–83. IEEE Computer Society, 2010.

Ghallab, M., Nau, D., and Traverso, P. (2004). Automated planning: theory & practice. Elsevier.


Matthias Tichy