'

Implementing collaboration-based designs using aspect-oriented programming

Elke Pulvermueller and Andreas Speck, University of Tuebingen, Germany,

Awais Rashid, Lancaster University, United Kingdom

The collaboration-based approach is a powerful means to develop modularised systems by stepwise refinement. A number of efficient implementation techniques for such collaboration-based systems have been proposed (e.g. mixin layers). In this paper we introduce an alternative, new approach to realise a collaboration-based design resulting in further improvements. Our approach is based on the well-known observation that the knowledge about inter-object collaborations cannot be localised within objects but cross-cuts many objects. Such cross-cutting concerns are effectively addressed by applying the separation of concerns principle. We have, therefore, employed Aspect-Oriented Programming (AOP) to build collaboration-based designs. In the paper we illustrate and discuss our Aspect-Oriented approach both for the horizontal (i.e. the collaborations) and vertical (i.e. the refinements) dimensions. Although the example implementations are based on AspectJ0.4beta7 from Xerox PARC, the approach is generic enough to be implemented using other AOP techniques.'