A preliminary analysis of self-adaptive systems according to different issues
- PDF / 639,912 Bytes
- 31 Pages / 439.642 x 666.49 pts Page_size
- 27 Downloads / 132 Views
A preliminary analysis of self-adaptive systems according to different issues Claudia Raibulet1
· Francesca Arcelli Fontana1 · Simone Carettoni1
© Springer Science+Business Media, LLC, part of Springer Nature 2020
Abstract Self-adaptive systems dynamically change their structure and behavior in response to changes in their execution environment to ensure the quality of the services they provide. Self-adaptive systems are usually built of a managed part, which implements their functionality, and a managing part, which implements the self-adaptive mechanisms. Hence, the complexity of self-adaptive systems results also from the existence of the managing part and the interaction between the managed and the managing parts. The available evaluation approaches of self-adaptive systems focus on their performances, i.e., on the benefits (e.g., degree of autonomy, support for detecting anomalous behavior, adaptivity time, quality of response) achieved through the self-adaptive mechanisms of the managing part. In this paper, we evaluate the quality of the design of self-adaptive systems (including the managed and the managing parts) as it is done in traditional software engineering. We are interested in the internal software quality of self-adaptive systems, as the existence of the managing part and its interaction with the managed part leads to a tightly coupled system. We analyze the self-adaptive systems through the detection of different issues such as architectural and code smells and the detection of design patterns. The smells provide some hints on possible design and implementation problems, and help software engineers to improve the quality of the systems. While, design patterns are usually indicators of the application of good practices in the software development and allow to capture part of the design rationale. In this way, they can help software engineers to understand, reuse, and extend self-adaptive systems. In this paper, we have considered the detection of 3 architectural smells, 18 code smells, and 15 design patterns in 11 self-adaptive systems written in the Java programming language. The results indicate that the 3 architectural smells, 9 out of the 18 code smells, and the 15 design patterns have been detected in all the analyzed self-adaptive systems. We also discuss the possible reasons behind the presence of these quality issues, and provide our lessons learned. Keywords Self-adaptive systems · Software quality · Architectural smells · Code smells · Design patterns
Claudia Raibulet
[email protected]
Extended author information available on the last page of the article.
Software Quality Journal
1 Introduction Software systems address different domain concerns and are built to offer functionalities to external users. More and more software systems are required to run without interruptions (e.g., even when needing maintenance operations), as well as to manage changes and uncertainties during their execution. Systems which are able to address these issues at runtime need an explicit knowle
Data Loading...