The increasing complexity of systems and the growing uncertainty in their operational environments have created a critical need to develop systems able to improve their operation, adapt to change, and recover from failures autonomously. This situation has led to recent advances in self-adaptive syst[...]