Author(s): E. Tramontana and R. de Lemos
Abstact: Conventional object-oriented model lacks the means to represent collaborative behaviour between objects. In this paper an approach is described for extending the representation of objects to express cooperations between them. The motivation for defining a cooperative object-oriented approach is to provide support for developing adaptive software systems: the degree of adaptability of a software system depends on the flexibility of objects changing their pattern of collaboration. The cooperative object-oriented approach is described in terms of a reflective model, in which the collaborative activity is captured by the metaobjects thus obtaining a clear separation between the objects and their respective cooperations. The role of the metaobject protocol is to provide the means for associating a set of metaobjects to an object and for reconfiguring dynamically the metaobjects. In this paper, we present the basic structure of a metaobject and define the services that the metaobject has to provide in order to implement a cooperation.