Scen@rist: an approach for verifying self-adaptive systems using runtime scenarios

  • PDF / 3,775,857 Bytes
  • 43 Pages / 439.642 x 666.49 pts Page_size
  • 11 Downloads / 126 Views

DOWNLOAD

REPORT


Scen@rist: an approach for verifying self-adaptive systems using runtime scenarios ˆ Romulo Gadelha1 · Lucas Vieira1 · Davi Monteiro2 · Felipe Vidal1 · Paulo Henrique Maia1

© Springer Science+Business Media, LLC, part of Springer Nature 2020

Abstract Traditional runtime quantitative verification approaches for self-adaptive systems usually rely on the use of state-transition models to describe the system behaviour and check property violation at runtime. More recently, some approaches have advocated the use of scenarios as a strategy for representing both the normal and adaptive system behaviour. However, the use of scenarios as a runtime entity that drives the system adaptation is still a challenge since many research issues regarding the use of scenarios to support analysis for enabling self-adjustment at runtime in software systems remain open. The aim of this paper is twofold. Firstly, we investigate the use of scenario-based approaches in self-adaptive systems via a systematic mapping study. Secondly, we introduce Scen@rist, an approach that uses scenarios as runtime entities for verifying self-adaptive systems. The approach consists of monitoring a running self-adaptive system, annotating its scenario-based behaviour specification with the probability of transitions between scenarios, and then verifying whether a set of reachability properties hold. This is performed by translating the scenario-based models and properties in their probabilistic state-based counterparts and applying a model checking technique. The applicability of the proposed tool has been demonstrated by two self-adaptive service-based systems taken from the literature. Keywords Self-adaptive systems · Runtime scenarios · Runtime verification · Systematic mapping study · Model checking · Message sequence chart

1 Introduction Software engineers increasingly treat software systems development as an evolutionary process, in which the software is continuously modified throughout its lifetime in response to evolving requirements, changing environmental conditions, or system failures (Andersson et al. 2013). The gap between software design and execution time has been decreased  Paulo Henrique Maia

[email protected] 1

State University of Cear´a (UECE), Fortaleza, Brazil

2

Lero - the Irish Software Research Centre, University of Limerick, Limerick, Ireland

Software Quality Journal

due to the rise of a new category of software, called self-adaptive systems. Software systems in this category can adapt themselves without (or with minimised) human intervention to accommodate changes in the software requirements, capabilities, goals, or in the environment (Oreizy et al. 1999). Those adaptations can occur at configuration or behaviour architectural levels (Braberman et al. 2015). The former regards changes in the system components and their bindings, while the latter addresses ways to ensure high-level goals. This work addresses this last kind of adaptation. Despite frequent changes, a self-adaptive system is expected to comply with strict fu