Self-Aware Computing
A major part of our research is focused on the development of novel methods, techniques and tools for the engineering of Self-Aware Computing Systems, which are understood as proposed by Dagstuhl Seminar 15041 and defined in the Springer book "Self-Aware Computing Systems":
Definition: "Self-aware computing systems are computing systems that:
1. learn models capturing knowledge about themselves and their environment (such as their structure, design, state, possible actions, and run-time behavior) on an ongoing basis and
2. reason using the models (for example predict, analyze, consider, plan) enabling them to act based on their knowledge and reasoning (for example explore, explain, report, suggest, self-adapt, or impact their environment)
in accordance with higher-level goals, which may also be subject to change."
[Self-Aware Computing Systems. Samuel Kounev, Jeffrey O. Kephart, Aleksandar Milenkoski, and Xiaoyun Zhu. Springer Verlag, Berlin Heidelberg, Germany, 2017.]
Our current emphasis is on methods to ensure systems dependability and efficiency by means of model-based techniques for managing performance & availability (focusing on capacity, responsiveness, and resource/energy efficiency aspects), on the one hand, and reliability & security (focusing on reliability testing, intrusion detection and self-protection mechanisms), on the other hand.
A German article on the vision of self-aware computing, published by the einBLICK magazine of the University of Würzburg, can be found here.