Coordination: the evolutionary dimension
Luis Filipe Andrade, J.L. Fiadeiro · 2002
Whereas object-oriented techniques like inheritance and clientship have provided useful tools for taming the complexity of system construction, it is now clear that the same kind of support cannot be extended to evolution. However, the volatility of business requirements (as a result of e-economics) is putting an increasing pressure on the ability to accommodate changes and extensions at run-time, even performed directly by customers, and with minimal impact on the rest of the system. In this paper, we argue for the adoption of an additional structuring principle - coordination - which treats components as black boxes and is compositional with respect to change. This principle is supported by techniques borrowed from parallel program design (superposition) and configurable distributed systems (architectural connectors). We provide a formal semantics based on category theory that admits an implementation via design patterns. Finally, we discuss its impact on software development methodology.