Towards Bridging the Gap between Control and Self-Adaptive System Properties
This work addresses a foundational gap for researchers and practitioners in software engineering and control theory, but it is incremental as it takes a first step without demonstrating broad impact.
The paper tackles the problem of reconciling different types of properties used in control systems (e.g., stability, settling time) and self-adaptive systems (e.g., performance, reliability) to provide run-time guarantees, by identifying key properties, formalizing them in temporal logic, and mapping them between the two domains, illustrated with a cloud computing case.
Two of the main paradigms used to build adaptive software employ different types of properties to capture relevant aspects of the system's run-time behavior. On the one hand, control systems consider properties that concern static aspects like stability, as well as dynamic properties that capture the transient evolution of variables such as settling time. On the other hand, self-adaptive systems consider mostly non-functional properties that capture concerns such as performance, reliability, and cost. In general, it is not easy to reconcile these two types of properties or identify under which conditions they constitute a good fit to provide run-time guarantees. There is a need of identifying the key properties in the areas of control and self-adaptation, as well as of characterizing and mapping them to better understand how they relate and possibly complement each other. In this paper, we take a first step to tackle this problem by: (1) identifying a set of key properties in control theory, (2) illustrating the formalization of some of these properties employing temporal logic languages commonly used to engineer self-adaptive software systems, and (3) illustrating how to map key properties that characterize self-adaptive software systems into control properties, leveraging their formalization in temporal logics. We illustrate the different steps of the mapping on an exemplar case in the cloud computing domain and conclude with identifying open challenges in the area.