Relationships and associations in object-oriented languages

Stephen Nelson, Stephanie Balzer, Gavin M. Bierman, Erik Meijer, James Noble, David J. Pearce, Jiri Soukup, Frank Tip. Relationships and associations in object-oriented languages. In Gail E. Harris, editor, Companion to the 23rd Annual ACM SIGPLAN Conference on Object-Oriented Programming, Systems, Languages, and Applications, OOPSLA 2008, October 19-13, 2007, Nashville, TN, USA. pages 855-856, ACM, 2008. [doi]

Abstract

There is a disconnect between modelling and implementation: relationships are prevalent in system models but implementation languages do not provide first-class support for them. For example, in Java (and other Object-Oriented Languages), relationships must be implemented by hand using references embedded in participants. This approach is cumbersome and error-prone, and leads to a disconnect between the system model and the system implementation. As software systems grow and models become increasingly complex this disconnect causes problems not only for implementers but especially for code maintainers. To address this issue, the software community is using frameworks and tool support to manage the disconnect. However, this does not address the core issue of relating design and implementation. Recent proposals for programming language extensions to add first-class relationships demonstrate another approach to the same problem: an increased level of abstraction in programming languages to close the gap between model and implementation. We plan to gather the growing number of researchers in the object-oriented programming language community who are working on relationship-based systems to share their research and discuss the future of relationship-based constructs in programming languages.