RADIANCE 2015 Keynote: Challenges in Engineering Dependable Self-Adaptive System

To provide some levels of dependency in software systems, self-adaptive systems have been proposed as a principled approach to engineering software systems to adapt systems to meet requirements even in the face of changes and uncertainty in the environment. But how can we show that changing a system at run time will make systems more dependable? In this keynote, I will outline a set of challenges for providing assurances for self-adaptive systems, and describe work that our group has been doing that can provide evidence for assurances in a number of contexts, including collaborative self-adaptation with humans-in-the-loop. I will discuss how probabilistic model checking can be used to explore the state space of self-adaptive systems, and how they can provide more realistic models of the impacts that adapting a system may have on the system.