I. Introduction
The increasing prevalence of service-oriented computing is dramatically changing the way that people develop and use software. This new paradigm brings immense benefits for building large and complex service systems, but it also exposes these systems to runtime anomalies, as service components are usually developed in a heterogeneous way and deployed in a distributed cloud environment [1]. Dependability has thus become a crucial concern in the design and implementation of modern service systems [2], [3].