ASPLe: A methodology to develop self-adaptive software systems with systematic reuse - Abbas, Nadeem; Andersson, Jesper; Weyns, Danny (The Journal of systems and software, 2020)
•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. More than two decades of research have demonstrated an increasing 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-of-the-art engineering practices.