Supporting self-adaptation via quantitative verification and sensitivity analysis at run time
File(s)2016-tse.pdf (803.74 KB)
Accepted version
Author(s)
Filieri, A
Tamburrelli, G
Ghezzi, C
Type
Journal Article
Abstract
Modern software-intensive systems often interact with an environment whose behavior changes over time, often
unpredictably. The occurrence of changes may jeopardize their ability to meet the desired requirements. It is therefore desirable to
design software in a way that it can self-adapt to the occurrence of changes with limited, or even without, human intervention.
Self-adaptation can be achieved by bringing software models and model checking to run time, to support perpetual automatic
reasoning about changes. Once a change is detected, the system itself can predict if requirements violations may occur and enable
appropriate counter-actions. However, existing mainstream model checking techniques and tools were not conceived for run-time
usage; hence they hardly meet the constraints imposed by on-the-fly analysis in terms of execution time and memory usage. This
paper addresses this issue and focuses on perpetual satisfaction of non-functional requirements, such as reliability or energy
consumption. Its main contribution is the description of a mathematical framework for run-time efficient probabilistic model checking.
Our approach statically generates a set of verification conditions that can be efficiently evaluated at run time as soon as changes occur.
The proposed approach also supports sensitivity analysis, which enables reasoning about the effects of changes and can drive
effective adaptation strategies.
unpredictably. The occurrence of changes may jeopardize their ability to meet the desired requirements. It is therefore desirable to
design software in a way that it can self-adapt to the occurrence of changes with limited, or even without, human intervention.
Self-adaptation can be achieved by bringing software models and model checking to run time, to support perpetual automatic
reasoning about changes. Once a change is detected, the system itself can predict if requirements violations may occur and enable
appropriate counter-actions. However, existing mainstream model checking techniques and tools were not conceived for run-time
usage; hence they hardly meet the constraints imposed by on-the-fly analysis in terms of execution time and memory usage. This
paper addresses this issue and focuses on perpetual satisfaction of non-functional requirements, such as reliability or energy
consumption. Its main contribution is the description of a mathematical framework for run-time efficient probabilistic model checking.
Our approach statically generates a set of verification conditions that can be efficiently evaluated at run time as soon as changes occur.
The proposed approach also supports sensitivity analysis, which enables reasoning about the effects of changes and can drive
effective adaptation strategies.
Date Issued
2016-01-01
Date Acceptance
2015-03-16
Citation
IEEE Transactions on Software Engineering, 2016, 42 (1), pp.75-99
ISSN
1939-3520
Publisher
IEEE
Start Page
75
End Page
99
Journal / Book Title
IEEE Transactions on Software Engineering
Volume
42
Issue
1
Copyright Statement
© 2015 IEEE. Personal use is permitted, but republication/redistribution requires IEEE permission.
See http://www.ieee.org/publications_standards/publications/rights/index.html for more information.
See http://www.ieee.org/publications_standards/publications/rights/index.html for more information.
Subjects
Science & Technology
Technology
Computer Science, Software Engineering
Engineering, Electrical & Electronic
Computer Science
Engineering
Self-adaptive systems
software evolution
non-functional requirements
discrete-time Markov models
rewards
software reliability
costs
probabilistic model checking
models at runtime
RELIABILITY
COMPLEXITY
REDUCTION
MODELS
Software Engineering
0803 Computer Software
0806 Information Systems
0906 Electrical and Electronic Engineering
Notes
keywords: Self-adaptive Systems, Software Evolution, Non-functional Requirements, Discrete-Time Markov models, Rewards, Software Reliability, Costs, Probabilistic Model Checking, Models at Runtime
Publication Status
Published
Date Publish Online
2015-04-09