making control loops explicit when architecting self-adaptive systems
Many self-adaptive systems include control loops between the core system and specific control elements which realize the self-adaptation capabilities. This is also true albeit at a higher level of abstraction for decentralized architectures. However, the available techniques to describe the software architecture of such systems do not support to make the control loops explicit. Therefore, architecting self-adaptive systems and their self-adaptation logic is today not well supported. In this paper, we present a UML profile for control loops that extends UML modeling concepts such that control loops become first class elements of the architecture. This enables that the architecture reflects control loops as crucial elements of the software architecture of these systems. Furthermore, it supports to design control loops as well as the interplay of multiple control loops at the architectural level. In addition, warning signals and related analysis activities are presented that can be used to analyze whether a given architectural UML model using the profile includes potentially problematic occurrences of control loops.
self-adaptive systems uml profile feedback control