A systematic literature review on methods that handle multiple quality attributes in architecture-based self-adaptive systems
Information and Software Technology
A B S T R A C T Context Handling multiple quality attributes (QAs) in the domain of self-adaptive systems is an understudied research area. One well-known approach to engineer adaptive software systems and fulfill QAs of the system is architecture-based self-adaptation. In order to develop models that capture the required knowledge of the QAs of interest, and to investigate how these models can be employed at runtime to handle multiple quality attributes, we need to first examine current
... cture-based self-adaptive methods. Objective In this paper we review the state-of-the-art of architecture-based methods for handling multiple QAs in self-adaptive systems. We also provide a descriptive analysis of the collected data from the literature. Method We conducted a systematic literature review by performing an automatic search on 28 selected venues and books in the domain of self-adaptive systems. As a result, we selected 54 primary studies which we used for data extraction and analysis. Results Performance and cost are the most frequently addressed set of QAs. Current self-adaptive systems dealing with multiple QAs mostly belong to the domain of robotics and web-based systems paradigm. The most widely used mechanisms/models to measure and quantify QAs sets are QA data variables. After QA data variables, utility functions and Markov chain models are the most common models which are also used for decision making process and selection of the best solution in presence of many alternatives. The most widely used tools to deal with multiple QAs are PRISM and IBM's autonomic computing toolkit. KLAPER is the only language that has been specifically developed to deal with quality properties analysis. Conclusions Our results help researchers to understand the current state of research regarding architecture-based methods for handling multiple QAs in self-adaptive systems, and to identity areas for improvement in the future. To summarize, further research is required to improve existing methods performing tradeoff analysis and preemption, and in particular, new methods may be proposed to make use of models to handle multiple QAs and to enhance and facilitate the tradeoffs analysis and decision making mechanism at runtime. tributes (QAs) priorities, and new stakeholders' requirements. As the complexity of these software systems increases, so does their (human) supervision overhead. Therefore, one of the main goals during the design and implementation of such systems is to decrease the amount of human involvement by enabling the system to adapt itself while it is executing. Thus, the software system becomes capable of autonomously adapting to changing conditions at runtime. This in turn decreases the cost and operation time required for adapting the system while fulfilling certain QAs at runtime. Although high complexity and heterogeneity of software systems hinder design and development of such software systems, many promising self-adaptation http://dx.