Title: Designing self-adaptive software systems with reuse
Subject: Computer and information science
Faculty: Faculty of technology
Date: Thursday 19 April 2018 at 1.15 pm
Place: Room Myrdal, building K, Växjö
External reviewer: Professor Uwe Aßmann, Technische Universität Dresden, Germany
Examining committee: Associate professor Romina Spalazzese, Malmö University, Sweden
Associate professor Helena Holmström Olsson, Malmö University, Sweden
Dr Tobias Ritzau, chief product and technology officer, Nationalencyklopedin, Malmö, Sweden
Chairperson: Associate professor Mauro Caporuscio, department of computer science and media technology, Linnaeus University
Supervisor: Senior lecturer Jesper Andersson, department of computer science and media technology, Linnaeus University
Examiner: Professor Welf Löwe, department of computer science and media technology, Linnaeus University
Spikning: Tuesday 3 april 2018 at 1.00 pm at the University library in Växjö
Modern software systems are increasingly more connected, pervasive, and dynamic, as such, they are subject to more runtime variations than legacy systems. Runtime variations affect system properties, such as performance and availability. The variations are difficult to anticipate and thus mitigate in the system design.
Self-adaptive software systems were proposed as a solution to monitor and adapt systems in response to runtime variations. Research has established a vast body of knowledge on engineering self-adaptive systems. However, there is a lack of systematic process support that leverages such engineering knowledge and provides for systematic reuse for self-adaptive systems development.
This thesis proposes the Autonomic Software Product Lines (ASPL), which is a strategy for developing self-adaptive software systems with systematic reuse. The strategy exploits the separation of a managed and a managing subsystem and describes three steps that transform and integrate a domain-independent managing system platform into a domain-specific software product line for self-adaptive software systems.
Applying the ASPL strategy is however not straightforward as it involves challenges related to variability and uncertainty. We analyzed variability and uncertainty to understand their causes and effects. Based on the results, we developed the Autonomic Software Product Lines engineering (ASPLe) methodology, which provides process support for the ASPL strategy. The ASPLe has three processes, 1) ASPL Domain Engineering, 2) Specialization and 3) Integration. Each process maps to one of the steps in the ASPL strategy and defines roles, work-products, activities, and workflows for requirements, design, implementation, and testing. The focus of this thesis is on requirements and design.
We validate the ASPLe through demonstration and evaluation. We developed three demonstrator product lines using the ASPLe. We also conducted an extensive case study to evaluate key design activities in the ASPLe with experiments, questionnaires, and interviews. The results show a statistically significant increase in quality and reuse levels for self-adaptive software systems designed using the ASPLe compared to current engineering practices.
Keywords: Variability, Uncertainty, Self-Adaptation, Software Reuse, Software Design, Methodology, Domain Engineering.