Activities: Abstractions for collective behavior
Conventional object-oriented modeling lacks support for representing the interaction between objects in a conceptually intuitive way — often dispersing the logic/control of interplay throughout the objects. 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.
KeywordsCollective Activity Design Pattern Collective Behavior State Diagram Active Object
Unable to display preview. Download preview PDF.
- Aksit, M., Wakita, K., Bosch, J., Bergmans, L., Yonezawa, A.: Abstracting Object Interactions Using Composition Filters. Proceedings of the ECOOP '93 Workshop on Object-based Distributed Processing, Guerraoui, R., Nierstrasz, O., Riveill, M. (Eds.), LNCS 791, Springer-Verlag, 1994.Google Scholar
- Booch, G.: Object Oriented Analysis and Design with Applications. Benjamin/Cummings, 1994.Google Scholar
- Chin, R. S., Chanson, S. T.: Distributed Object-Based Programming Systems. ACM Computing Surveys, Vol. 23, No. 1, 1991.Google Scholar
- Dahl, O. J., Myhrhaug, B., Nygaard, K.: SIMULA 67 Common Base Language. Norwegian Computing Center, edition February 1984.Google Scholar
- Gamma, E., Helm, R., Johnson, R., Vlissides, J.: Design Patterns: Elements of Reusable Object-Oriented Software. Addison Wesley, 1994.Google Scholar
- Harrison, W., Ossher, H.: Subject-Oriented Programming (A Critique of Pure Objects). Proceedings of the Object-Oriented Programming Systems, Languages and Applications Conference, 1993.Google Scholar
- Helm, R., Holland, I. M., Gangopadhyay, D.: Contracts: Specifying Behavioral Compositions in Object-oriented Systems. Proceedings of the European Conference on Object-Oriented Programming / Object-Oriented Programming Systems, Languages and Applications Conference, 1990.Google Scholar
- Holland, I. M.: Specifying Reusable Components Using Contracts. Proceedings of the European Conference on Object-Oriented Programming, 1992.Google Scholar
- Jacobson, I., Christerson, M., Jonsson, P., Overgaard, G.: Object-Oriented Software Engineering, A Use Case Driven Approach. Addison Wesley, 1992.Google Scholar
- Johnson, R. E., Foote, B.: Designing Reusable Classes. Journal of Object-Oriented Programming, 1988.Google Scholar
- Kristensen, B. B.: Transverse Classes & Objects in Object-Oriented Analysis, Design, and Implementation. Journal of Object-Oriented Programming, 1993.Google Scholar
- Kristensen, B. B.: Transverse Activities: Abstractions in Object-Oriented Programming. Proceedings of International Symposium on Object Technologies for Advanced Software (ISOTAS'93), 1993.Google Scholar
- Kristensen, B. B., May, D. C. M.: Modeling Activities in C++. Proceedings of International Conference on Technology of Object-Oriented Languages and Systems, 1994.Google Scholar
- Kristensen, B. B., May, D. C. M.: Modeling with Activities: Abstractions for Collective Behavior. R 96-2001, IES, Aalborg University, 1996.Google Scholar
- Kristensen, B. B., K. Østerbye: Roles: Conceptual Abstraction Theory & Practical Language Issues. Accepted for publication in a Special Issue of Theory and Practice of Object Systems (TAPOS) on Subjectivity in Object-Oriented Systems, 1996.Google Scholar
- Madsen, O. L., MØller-Pedersen, B., Nygaard, K.: Object Oriented Programming in the Beta Programming Language. Addison Wesley 1993.Google Scholar
- May, D. C. M.: Frameworks: An Excursion into Metalevel Design and Other Discourses. Department of Computer Science, Monash University, 1994.Google Scholar
- Nassi, I., Shneiderman, B.: Flowchart Techniques for Structured Programming. Sigplan Notices, 8 (8), 1973.Google Scholar
- Rumbaugh, J.: Relations as Semantic Constructs in an Object-Oriented Language. Proceedings of the Object-Oriented Programming Systems, Languages and Applications Conference, 1987.Google Scholar
- Rumbaugh, J., Blaha, M., Premerlani, W., Eddy, F., Lorensen, W.: Object-Oriented Modeling and Design. Prentice-Hall 1991.Google Scholar
- Stroustrup, B.: The C++ Programming Language. 2/E, Addison-Wesley 1991.Google Scholar
- Tennent, R. D.: Principles of Programming Languages. Prentice Hall, 1981.Google Scholar
- Wirfs-Brock, R., Wilkerson, B., Wiener, L.: Designing Object-Oriented Software. Prentice Hall, 1990.Google Scholar