Coordination: The Evolutionary Dimension

Jose' Luiz Fiadeiro
on leave at
Department of Computer Science - King's College London
Strand, London WC2R 2LS, United Kingdom
Fax: 44 20 78 48 28 51
jose@fiadeiro.org
http://www.di.fc.ul.pt/~llf/

Abstract

Whereas object-oriented techniques like inheritance and clientship have provided useful tools for taming the complexity of system construction, it is becoming widely accepted that the same kind of support cannot be extended to system evolution. Yet, the volatility of business requirements and the speed at which technology is evolving is putting an increasing pressure on the ability to accommodate changes and extensions in run-time and with minimal impact on the rest of the system. In this paper, we argue for the adoption of a third structuring principle - coordination - that 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 show how this principle can be incorporated in languages for OO development like the UML through a semantic primitive - contract - that extends association classes. We outline a mathematical semantics based on Category Theory. Finally, we show how contracts can be implemented in component-based frameworks like CORBA, EJB and COM via a design pattern.

This is joint work with Luis Andrade from Oblog Software SA, a company of the Espirito Santo financial holding that has developed a language and support tools for OO development.


Last Updated: May 8, 2000 by Elisabetta Ferrando