Abstract. We propose an algebraic
characterisation of the notion of coordination in the
sense of recently proposed languages and
computational models that provide a clear separation
between the modelling of individual software
components and their interaction in the
overall software organisation. We show how this separation
can be formalised in a categorical framework in which
the suitability of specification logics, program design languages
and mathematical models of behaviour
for supporting coordination mechanisms can be discussed. We
further show how coordination can be formally related to
the notion of superposition, as used for parallel program design,
and connectors, as used for architectural design.
Finally, we discuss the impact that coordination has
on system evolution, namely on the ability for systems to be reconfigured
dynamically, and ways of extending object-oriented modelling
languages like the UML with coordination primitives that
support this evolutionary approach.