A software system operating in unpredictable environments must be adaptive, modifying its own behavior in response to changes in its operating environment. Unfortunately, there is no agreed foundational model for adaptation. This is due to the inherent difficulty of subsuming both the external manifestations of adaptive systems (black-box adaptation) and the internal mechanisms that realize adaptation (white-box adaptation) in a coherent view.

In our conceptual, white-box-based, approach which requires the identification of so-called “control data” (CD) within the system, adaptation is defined as the runtime modification of such data. This provides an unambiguous definition of adaptation, allowing us at the same time to see the same system with different adaptation capabilities, depending on the chosen perspective.

This idea has been formalized with a variant of a classical game model for open systems, Interface Automata, yielding Adaptable Interface Automata (AIA). The key feature of such automata is control propositions, a subset of the atomic propositions labeling the states, imposing a clear separation between the ordinary, functional behavior and the adaptive one.

Control propositions are exploited in the analysis of adaptive systems, focusing on various notions like adaptability, control loops, and control synthesis. An implementation of AIAs in Maude, called MAIA, allows one to specify AIAs, to draw them, and to perform operations such as product, composition, decomposition and control synthesis.

The picture shows an “adaptation tower” where each control component performs a Monitor-Analyze-Plan-Execute loop using shared Knowledge (a MAPE-K loop), triggering adaptations of the lower managed component through the modification of its control data.