MAIA – a Maude tool for Adaptable Interface Automata

Definition, Visualization, Composition and Control Synthesis of Adaptable Interface Automata with Maude


In a recent paper we presented an essential model of adaptable transition systems inspired by white-box approaches to adaptation and based on foundational models of component based systems. The key feature of adaptable transition systems are control propositions, a subset of the atomic propositions labelling the states of our transtion systems, imposing a clear separation between ordinary, functional behaviours and adaptive ones. We instantiated our approach on Interface Automata (IA) yielding Adaptable Interface Automata (AIA).

Interestingly, control propositions can be exploited in the specification and analysis of adaptive systems, focusing on various notions proposed in the literature, like adaptability, control loops, and control synthesis.

This page presents MAIA, a Maude tool for Adaptable Interface Automata accompanying our proposal. By exploiting MAIA it is possible to specify Adaptable Interface Automata, to draw them, and to perform operations on them like product, composition, decomposition and control synthesis.

Note that AIA extend IA with atomic propositions (i.e. state observations). An AIA with an empty set of atomic propositions is indeed an IA, thus MAIA applies to IA as well.


  1. Roberto Bruni, Andrea Corradini, Fabio Gadducci, Alberto Lluch Lafuente, Andrea Vandin, Adaptable Transition Systems, post-proceedings of the 21st International Workshop on Algebraic Development Techniques (WADT12), Springer LNCS;
  2. Roberto Bruni, Andrea Corradini, Fabio Gadducci, Alberto Lluch Lafuente, Andrea Vandin, A conceptual framework for adaptation, International Conference on Fundamentals of Software Engineering (FASE 2012).


  1. Adaptable Transition Systems, ASCENS General Meeting, February 13th, Prague.
  2. A conceptual framework for adaptation, ASCENS General Meeting, July 7 2011, Grenoble.
  3. Maude .:° ASCENS, ASCENS General Meeting, March 4, 2011, Pisa.


The implementation of the MAIA can be downloaded here



Invoke the simulation script as follows


where AN-AIA is a Maude term defined in the Maude file ats.maude, which represents an AIA, or an expression involving AIAs. While NAME-OF-THE-IMAGE is the name of the file where the AIA will be drawn.

For example, if we want to draw the AIA “Exe”, we have to type

./ draw Exe exe

While, if we want to compose three AIA Mac, Que and Exe, we have to type

./ draw 'composition(Mac,composition(Exe,Que))' MaxIExeIQue

Finally, if we want to decompose an AIA S so to obtain a manager component (a controller) and a base controller as described in our paper, we have to type

./ draw 'manager(nonTrivialDecomposition(S, ("u","d"), ("u", "d") ))' manager


./ draw 'base(nonTrivialDecomposition(S, ("u","d"), ("u", "d") ))' base

For more details on this we refer to the above mentioned publication.


Roberto Bruni, Andrea Corradini, Fabio Gadducci, Alberto Lluch Lafuente, Andrea Vandin.


Our work is developed within and supported by the European Integrated Project 257414 ASCENS.


For suggestions, remarks, bugs or requests please do not hesitate to contact any of: