We introduce the concept of an activity as an abstraction mechanism to model the interplay between objects.
Activities model how our human cognition organizes interaction into units of collective behavior.
They are described as classes, allowing interaction to be modeled by such abstraction processes as generalization and aggregation. At the analysis and design level activities are presented as a general modeling tool for describing the collective behavior of systems of objects. We also discuss how activities can be supported at the implementation level by extending existing language constructs in relation to object-oriented programming languages. This research was supported in part by the Danish Natural Science Research Council, No. 9400911.