Improving Self-Adaptation Planning through Software Architecture-based Stochastic Modeling



The ever-growing complexity of software systems makes it increasingly challenging to foresee at design time all interactions between a system and its environment.

Most self-adaptive systems trigger adaptations through operators that are statically configured for specific environment and system conditions. However, in the occurrence of uncertain conditions, self-adaptive decisions may not be effective and might lead to a disruption of the desired non-functional attributes.

To address this, we propose an approach that improves the planning stage by predicting the outcome of each strategy. In detail, we automatically derive a stochastic model from a formal architecture description of the managed system with the changes imposed by each strategy. Such information is used to optimize the self-adaptation decisions to fulfill the desired quality goals.

To assess the effectiveness of our approach we apply it to a cloud-based news system and predicted the reliability for each possible adaptation strategy. The results obtained from our approach are compared to a representative static planning algorithm as well as to an oracle that always makes the ideal decision. Experiments show that our method improves both availability and cost when compared to the static planning algorithm, while being close to the oracle.

Our approach may therefore be used to optimize self-adaptation planning.

Related Project

AFFIDAVIT - Automating the Proof of Quality Attributes for Large Scale Software Architectures


Journal of Systems and Software, January 2016

PDF File


Cited by

No citations found