Robustness-Driven Resilience Evaluation of Self-Adaptive Software Systems

Javier Camara Moreno, Rogerio De Lemos, Nuno Laranjeiro, Rafael Ventura, Marco Vieira

Research output: Contribution to journalArticlepeer-review


An increasingly important requirement for certain classes of software-intensive systems is the ability to self-adapt their structure and behavior at run-time when reacting to changes that may occur to the system, its environment, or its goals. A major challenge related to self-adaptive software systems is the ability to provide assurances of their resilience when facing changes. Since in these systems, the components that act as controllers of a target system incorporate highly complex software, there is the need to analyze the impact that controller failures might have on the services delivered by the system. In this paper, we present a novel approach for evaluating the resilience of self-adaptive software systems by applying robustness testing techniques to the controller to uncover failures that can affect system resilience. The approach for evaluating resilience, which is based on probabilistic model checking, quantifies the probability of satisfaction of system properties when the target system is subject to controller failures. The feasibility of the proposed approach is evaluated in the context of an industrial middleware system used to monitor and manage highly populated networks of devices, which was implemented using the Rainbow framework for architecture-based self-adaptation.

Original languageEnglish
Pages (from-to)50-64
Number of pages15
JournalIEEE Transactions on Dependable and Secure Computing
Issue number1
Publication statusPublished - 18 Jan 2017


  • probabilistic model checking
  • Resilience evaluation
  • robustness testing techniques
  • self-adaptive systems

Cite this