IEEE Access (Jan 2024)
A Reference Architecture Based on Reflection for Self-Adaptive Software: A Second Release
Abstract
The development of Self-adaptive Software (SaS) is not a trivial task because this type of software has specific features compared to traditional ones. In short, SaS can reflect on its internal and external states and propose structural, behavioral, and contextual changes that can be incorporated at runtime. Manual adaptation tasks, even if very well executed, normally become onerous in time and effort, besides being error prone because of the involuntary injection of errors by the developers. Automated processes have been used as a feasible solution to conduct software adaptation at runtime by minimizing human involvement (e.g., software engineers and developers) and quickening up the execution of tasks. In parallel, Reference Architectures (RA) have been used to aggregate knowledge and architectural artifacts, capturing the systems’ essence in specific domains. Therefore, it can be said that this type of architecture is an important way to support the development, standardization, and evolution of software systems. Considering this context, the main contribution of this paper is to present the second release of a reference architecture called RA4SaS (Reference Architecture for SaS). This architecture is based on reflection, a controlled adaptation approach, and a set of automated processes that support the development of SaS in both design and runtime. To show the applicability of our RA, we conducted a case study that explored three adaptation scenarios. As a result, we observe our RA has good potential to efficiently contribute to the SaS domain.
Keywords