Abstraction in Modeling and Programming with Associations: Instantiation, Composition and Inheritance

  • Bent Bruun KristensenEmail author
Conference paper
Part of the Advances in Intelligent Systems and Computing book series (AISC, volume 924)


The association concept abstracts over collaboration between concurrent autonomous entities. Associations describe collaborations, i.e., requests and coordination of contributions from the entities. And the association concept also supports abstraction in the form of instantiation, composition and inheritance. Simple and expressive abstraction with associations is demonstrated by illustrative examples, schematic language presentations, brief characterizations of qualities and implementation experiments.


Language design Abstraction with associations Instantiation, composition and inheritance Concurrent autonomous entities Qualities 


  1. 1.
    Kristensen, B.B.: Rendezvous-based collaboration between autonomous entities: centric versus associative. Concurr. Comput.: Pract. Exp. 25(3), 289–308 (2013) (Wiley Press)Google Scholar
  2. 2.
    May, D.C.-M., Kristensen, B.B., Nowack, P.: Tangible objects: modeling in style. In: Proceedings of the Second International Conference on Generative Systems in the Electronic Arts (2001)Google Scholar
  3. 3.
    Lea, D.: Concurrent Programming in Java: Design Principles and Patterns, 2nd edn. Addison-Wesley (1999)Google Scholar
  4. 4.
    Dahl, O.-J., Myhrhaug, B., Nygaard, K.: SIMULA 67 Common Base Language (Editions 1968, 1970, 1972, 1984). Norwegian Computing Center, Oslo (1968)Google Scholar
  5. 5.
    Kristensen, B.B., May, D.C.-M.: Activities: abstractions for collective behavior. In: Proceedings of the European Conference on Object-Oriented Programming (1996)Google Scholar
  6. 6.
    Kristensen, B.B.: Object-oriented modeling with roles. In: Proceedings of the 2nd International Conference on Object-Oriented Information Systems (1995)Google Scholar
  7. 7.
    Hoare, C.A.R.: Communicating sequential processes. Commun. ACM (1978)Google Scholar
  8. 8.
    Kristensen, B.B.: Abstraction from collaboration between agents using asynchronous message-passing. In: 12th International Conference on Enterprise Information Systems, Portugal (2010)Google Scholar
  9. 9.
    Scott, M.L.: Programming Language Pragmatics. Morgan Kaufmann Publishers (2009)Google Scholar
  10. 10.
    Yonezawa, A., Tokoro, M.: Object-oriented Concurrent Programming. MIT Press Series in Computer Science (1986)Google Scholar
  11. 11.
    Booch, G.: Private Communication (2007)Google Scholar
  12. 12.
    Jensen, L.K., Kristensen, B.B., Demazeau, Y.: FLIP: prototyping multi-robot systems. J. Robot. Autonom. Syst. 53, 230–243 (2005)CrossRefGoogle Scholar
  13. 13.
    Rumbaugh, J.: Relations as semantic constructs in an object-oriented language. In: Proceedings of the Object-Oriented Systems, Languages and Applications Conference (1987)Google Scholar
  14. 14.
    Pearce, D.J., Noble, J.: Relationship aspects. In: Proceedings of the 5th International Conference on Aspect-Oriented Software Development (2006)Google Scholar
  15. 15.
    Østerbye, K.: Design of a class library for association relationships. In: Proceedings of the 2007 Symposium on Library-Centric Software Design (2007)Google Scholar
  16. 16.
    Nelson, S., Noble, J., Pearce, D.J.: Implementing first-class relationships in Java. In: Proceedings of the Workshop on Relationships and Associations in Object-Oriented Languages (RAOOL) (2008)Google Scholar
  17. 17.
    Østerbye, K.: Associations as a Language Construct. In: Michel, R. (eds.) Proceedings of TOOLS, vol. 29, pp. 224–235 (1999)Google Scholar
  18. 18.
    MacLennan, B.J.: Principles of Programming Languages Design, Evaluation, and Implementation, 3rd ed. Oxford University Press (1999)Google Scholar
  19. 19.
    Liskov, B., Guttag, J.: Program Development in Java: Abstraction, Specification and Object-Oriented Design. Addison-Wesley (2000)Google Scholar
  20. 20.
    Watt, D.A.: Programming Language Design Concepts. Wiley (2004)Google Scholar
  21. 21.
    Kristensen, B.B., Madsen, O.L., Møller-Pedersen, B.: The when, why and why not of the BETA programming language. In: Proceedings of the Third ACM SIGPLAN Conference on History of Programming Languages, California (1999)Google Scholar
  22. 22.
    Larman, C.: Applying UML and Patterns: An Introduction to Object-Oriented Analysis and Design and Iterative Development, 3rd edn. Prentice Hall (2004)Google Scholar
  23. 23.
    Østerbye, K.: Parts, wholes, and subclasses. In: Schmidt, B. (ed.) Proceedings of the 1990 European Simulation Multi-conference, pp. 259–263 (1990)Google Scholar
  24. 24.
    Madsen, O.L.: Semantic analysis of virtual classes and nested classes. In: Proceedings of Conference on Object-Oriented Programming, Systems, Languages and Application, Colorado (1999)Google Scholar
  25. 25.
    Madsen, O.L., Møller-Pedersen, B.: Virtual classes—a powerful mechanism in object-oriented programming. In: Proceedings of Conference on Object-Oriented Programming, Systems, Languages and Application, Louisiana (1999)Google Scholar
  26. 26.
    May, D.C.-M., Tang, O.: Designing for the Digitally Pervasive World. Ph.D. thesis, Maersk Mc-Kinney Moller Institute, University of Southern Denmark (2003)Google Scholar
  27. 27.
    Aho, A.V., Sethi, R., Ullman, J.D.: Compilers: Principles, Techniques, and Tools. Addison Wesley (1986)Google Scholar
  28. 28.
    Watt, D.A., Brown, D.F.: Programming Language Processors in Java: Compilers and Interpreters. Pearson Education (2000)Google Scholar

Copyright information

© Springer Nature Singapore Pte Ltd. 2019

Authors and Affiliations

  1. 1.University of Southern DenmarkOdenseDenmark

Personalised recommendations