Skip to Main Content
Driven by the ever increasing need for mastering systems complexity in dynamic environments, self-adaptation becomes an important requirement for software systems. Crucially, system consistency must not be compromised during adaptation. In this paper, we approach behavioural adaptations of component-based systems and address the challenge of consistency preservation. To safely adapt an individual component, we provide the usage of alternative adaptation processes rather than being limited to a single one. These processes efficiently manage dependencies between components, even if they are cyclic. In addition, we introduce coordination protocols that can be used when a change of a component may cascade across other components. The amount of required coordination directly depends on the type of adaptation process intended to be performed. Formal models help us to give further confidence in the correctness of the protocols.