The maintenance of organisation is a prerequisite for all viable systems in dynamic environments. In many living systems this organisation is, in part, achieved through coordination systems such as the nervous or endocrinic systems that can be seen as separate from the functional systems they coordinate. As software systems become more open and complex, the definition of separate organisational structures may prove a useful way to maintain their viability while managing their complexity. In this paper we show how a coordination system can be implemented as a separate concern, and posterior, to the definition of the functional system it controls and regulates. Such functional systems are loosely coupled collections of roles played by objects. We show how association-aspects can be used to create contracts that bind these roles together into an organisation. These contracts regulate the flow of control through a structure of roles in the organisation, and allow performance to be specifi...
Alan W. Colman, Jun Han