Self-Adaptive Systems: Why, What, and How to Engineer Them?
Back in 2001, IBM released a manifesto pointing to the rising complexity of managing computing systems that resulted from the progressing integration of system components and the continuously changing operating conditions systems faced. Around the same time, researchers in the US and Europe raised the issue that existing software engineering approaches were not retaining the full plasticity that was required to accommodate resource variability, changing user needs, and handling system faults, without requiring downtime. A consensus grew that the only viable option to tackle the problems was to enable systems managing themselves, which are usually called self-adaptive systems. Over the past two decades, communities of different fields have put extensive efforts in understanding the principles of self-adaptation and devising novel techniques and methods to engineer self-adaptive systems. We start this talk with motivating why self-adaptation is important and we explain the basic principles that underlie a self-adaptive system. Then we zoom in on how self-adaptive systems are engineered through seven waves that emerged over time. These waves put complementary aspects of engineering self-adaptive systems in focus that synergistically have contributed to the current body of knowledge in the field. We use a practical Internet-of-Things application as an illustrative case throughout the talk. To conclude, we peak into the future of the field and propose a number of open research challenges for the years to come.
Tue 7 Jul Times are displayed in time zone: (UTC) Coordinated Universal Time change
|07:00 - 08:30|
Danny WeynsKU Leuven