Modeling Collaborative Behavior Using Cooperation Contracts

M. Schrefl, G. Kappel, P. Lang
Technical Report
TR9602 (October, 1996)
Report number
Copy  (In order to obtain the copy please send an email with subject  TR9602  to


Several objects exhibit collaborative behavior if they act together in answering a message they have received jointly. Collaborative behavior is defined by cooperation contracts which are established between several object classes and which declare a set of cooperative methods. A cooperative method is invoked by a cooperative message sent to a tuple of instances, one for each object class in the cooperation contract. This extends the traditional message passing paradigm which requires the receiver of a message to be a single object only.

Cooperation contracts offer several benefits for behavior modeling in object-oriented database design. Behavior provided by several object classes in concert needs not be dispersed and can be defined in a single place. Therefore, behavior designs become symmetric, better maintainable and better extensible.

Cooperation contracts can easily be made available as beneficial modeling construct in existing object-oriented database management systems by adding a few classes. This paper presents such an extension based on the commercial object-oriented database management system GemStone.

Keywords:multiple polymorphism, collaborative behavior modeling, cooperation contracts, object-oriented database design