Coordination contracts [1][2] are a modelling primitive, based on methodological and mathematical principles [8],[3], that facilitates the evolution of software systems. The use of coordination contracts encourages the separation of computation
from coordination aspects, and the analysis of which are the “stable” and “unstable” entities of the system regarding evolution.
Coordination contracts encapsulate the coordination aspects, i.e., the way components interact, and as such may capture the
business rules [7] or the protocols [6] that govern interactions within the application and between the application and its environment.