ASPLe: A Methodology to Develop Self-Adaptive Software Systems with Systematic Reuse

Nadeem Abbas, Jesper Andersson, Danny Weyns
2020 Journal of Systems and Software  
Highlights • Design and develop product lines of self-adaptive software systems with reuse. • Self-adaptive software systems share adaptation logic that can be exploited for reuse. • Methodology (process support) to develop self-adaptive systems with reuse. • Variability management and uncertainties in the development of self-adaptive systems. • Reasoning frameworks are helpful to mitigate uncertainties in design decisions. Abstract More than two decades of research have demonstrated an
more » ... ng need for software systems to be self-adaptive. Self-adaptation manages runtime dynamics, which are difficult to predict before deployment. A vast body of knowledge to develop Self-Adaptive Software Systems (SASS) has been established. However, we discovered a lack of process support to develop self-adaptive systems with reuse. The lack of process support may hinder knowledge transfer and quality design. To that end, we propose a domain-engineering based methodology, Autonomic Software Product Lines engineering (ASPLe), which provides step-by-step guidelines for developing families of SASS with systematic reuse. The evaluation results from a case study show positive effects on quality and reuse for self-adaptive systems designed using the ASPLe compared to state-ofthe-art engineering practices. Research in self-adaptive systems distinguishes between internal and external adaptation mechanisms [9, 10, 11] . Internal adaptation mechanisms rely on programming language constructs, such as exceptions, reflection, dynamic linking, and conditional expressions, to realize self-adaptation. Here, application logic and adaptation logic are mixed. Due to tight coupling between the two logics, internal adaptation leads to poor maintainability and reusability for development artifacts. ASPLe methodology enforces a clear separation of application and adaptation logic with reusable process support to model an external adaptation mechanism. In this context, [12] refers to a disciplined split between application and adaptation logic. External adaptation mechanisms rely on the principles of feedback loop control, such as the managing system shown in Figure 1. External adaptation separates application and adaptation logic; thus, adaptation logic may be reused across self-adaptive systems [9]. Examples of approaches that apply external adaptation include Rainbow [9], StarMX [13], MADAM [14], MUSIC [15], and ENTRUST [16]. Rainbow framework [9] provides architecture based reusable infrastructure for developing SASS. It is similar in infrastructure to ASPLe. The two approaches are also identical in the use of architectural styles and patterns to encapsulate and reuse architectural knowledge. However, ASPLe supports both vertical and horizontal reuse, whereas Rainbow's primary target is vertical reuse. Furthermore, Rainbow does not provide process support, which is a primary facet of ASPLe. Other frameworks, including StarMX [13], MADAM [14], and MUSIC [15] are similar to ASPLe in the use of patterns and tactics. However, none of these frameworks provide any process support. ENTRUST [16] uses a combination of 1) design-time and runtime modeling and verification, and 2) industry-adopted assurance processes to develop trustworthy self-adaptive software and assurance cases arguing the suitability
doi:10.1016/j.jss.2020.110626 fatcat:bc5uzn6azffcjebfk6d77wynli