Component-Interaction Automata
Component-interaction automata language (CI Automata, or CoIn Automata for short) was designed for modelling of component interactions in hierarchical component-based software systems. The language supports modelling of important interaction attributes of such systems, and hence provides a rich base for further application of formal methods. Component-based systems, that are to be modelled, are usually connected to a particular component model. For this reason, Component-interaction automata are very general and support modelling of component interactions in component-based systems build on various component models.
The generality of the language follows from two things. First, the Component-interaction automata language does not explicitly associate action names with interfaces/services/ provisions/requirements/requests/responses/events, which allows the designers to make the association themselves. Second, the language provides a flexible form of composition that can be fixed according to a specific component model (type of communication, synchronization, blocking/non-blocking strategy, etc.). In this manner, Component-interaction automata can be instantiated to a particular component model by fixing the composition operator and semantics of actions.