skip to main content
10.1145/1512762.1512769acmconferencesArticle/Chapter ViewAbstractPublication PageslcsdConference Proceedingsconference-collections
research-article

Design of a class library for association relationships

Published:21 October 2007Publication History

ABSTRACT

Association is an important relationship that is supported in both UML and entity relationship database modeling tools. However, there is no language or library support in current object-oriented languages for implementing an association relationship. Instead, a complex implementation using references or collections of references must be handcrafted and laboriously maintained each time an association relationship is needed. In this paper, we develop an approach to supporting the association relationship through the design of a reusable class library that hides most of the complexity and guarantees that the consistency of the relationship is maintained automatically. Our current library implementation in C# draws on generic types with runtime type instantiation, runtime reflection on type parameters, annotations on classes, and runtime code generation. This set of language features seems to be necessary to provide effective support for association relationships.

References

  1. {Albano et al. 1991} Antonio Albano, Giorgio Ghelli, and Renzo Orsini. A relationship mechanism for a strongly typed object-oriented database programming language. In Proceedings of the Seventeenth International Conference on Very Large Data Bases (Barcelona, Catalonia, Spain, 3rd--6th September 1991) Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. {Balzer et al. 2007} Stephanie Balzer, Thomas R. Gross, and Patrick Eugster: A Relational Model of Object Collaborations and its Use in Reasoning about Relationships. In ECOOP 2007, pp. 323--346. Springer, 2007. Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. {Beck & Cunningham, 1989} Kent Beck and Ward Cunningham. A Laboratory For Teaching Object-Oriented Thinking. In proceedings of OOPSLA, 1989 Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. {Bierman & Wren, 2005} Gavin Bierman and Alisdair Wren. First-Class Relationships in an Object-Oriented Language. Proceedings of ECOOP 2005 - Object-Oriented Programming: 19th European Conference, Glasgow, UK, July 25--29, 2005. Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. {Cattell et al. 2000} R. G. G. Cattell, Douglas K. Barry, Mark Berler, Jeff Eastman, David Jordan, Craig Russell, Olaf Schadow, Torsten Stanienda, and Fernando Velez. The Object Database Standard: ODMG 3.0. Morgan Kaufmann Publishers Inc, US, ISBN: 1558606475. Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. {Génova et al. 2003} Gonzalo Génova, Carlos Ruiz del Castillo and Juan Llorens. Mapping UML Associations into Java Code. Journal of Object Technology, Vol. 2, No. 5, September-October 2003. http://www.jot.fm.Google ScholarGoogle ScholarCross RefCross Ref
  7. {Goldberg & Robson, 1989} Adele Goldberg and David Robson. Smalltalk-80, the Language. Addison-Wesley Publishing Company, 1989. Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. {JavaSDK 5.0} JavaTM 2 Platform Standard Edition 5.0 API Specification. http://java.sun.com/j2se/1.5.0/docs/api/, Accessed December 2006. {Kokholm & Sestoft, 2006} Niels Kokholm and Peter Sestoft. The C5 Generic Collection Library for C# and CLI. Technical report of IT University of Copenhagen, TR-2006-76. http://www.itu.dk/research/c5/Release1.0/ITU-TR-2006-76.pdf.Google ScholarGoogle Scholar
  9. {Kristensen & ØØsterbye, 1996} Bent Bruun Kristensen and Kasper Østerbye. Roles: Conceptual Foundation and Practical Usage in Analysis, Design and Programming. Theory and Practice of Object Systems (TAPOS), Vol. 2, No 3 1996 Pages 143--160 Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. {Lieberherr, 1996} Karl J. Lieberherr. Adaptive Object-Oriented Software: The Demeter Method with Propagation Patterns. PWS Publishing Company, Boston, 1996. Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. {Linq, 2007} The Linq project. http://msdn.microsoft.com/data/ref/linq/.Google ScholarGoogle Scholar
  12. {March & Rho, 1996} S. T. March and S. Rho. A Semantic Object-Oriented Data Access System. http://www.misrc.umn.edu/wpaper/wp96-05.htm. (accessed at June 12th 2006). Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. {March & Rho, 2000} S. T. March and S. Rho. A Semantic Object-Oriented Data Access System. Information Systems, vol. 25, No 1, pp 23--41, 2000. Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. {Noble and Grundy, 1995} James Noble and John Grundy. Explicit relationships in object-oriented development. In proceedings of TOOLS 18, Melbourne, 1995.Google ScholarGoogle Scholar
  15. {Noble 1995} James Noble. Basic relationship patterns. In EuroPLOP Proceedings, 1997.Google ScholarGoogle Scholar
  16. {Pearce & Noble, 2006} David J. Pearce and James Noble. Relationship Aspects. In Proceedings of the ACM conference on Aspect-Oriented Software Development (AOSD'06), pages 75--86, March 2006. Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. {Rumbaugh, 1987} J. Rumbaugh. Relations as Semantic Constructs in an Object Oriented Language, Proceedings of OOPSLA'87. Pages 466--481. Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. {Rumbaugh, 1988} J. Rumbaugh. Controlling Propagation of Operations using Attributes on Relations. Proceedings of OOPSLA'88. Pages 285--296. Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. {Scala, 06} Scala programming language. http://scala.epfl.ch/.Google ScholarGoogle Scholar
  20. {Shah et al. 1989} A. V. Shah, J. Rumbaugh, J. H. Hamel, and R. A. Borsari. DSM: An Object-Relationship Modelling Language. Proceedings of OOPSLA'89. Pages 191--202. Google ScholarGoogle ScholarDigital LibraryDigital Library
  21. {STL, 1994} Standard Template Library Programmer's Guide. http://www.sgi.com/tech/stl/index.html. Accessed December 2006.Google ScholarGoogle Scholar
  22. {Østerbye, 1999} Kasper Østerbye. Associations as a Language Construct. In Proceedings of TOOLS 29, Ed. Richard Michel et. al., Nancy, June 7--10 1999. Pages 224--235. Google ScholarGoogle ScholarDigital LibraryDigital Library
  1. Design of a class library for association relationships

    Recommendations

    Comments

    Login options

    Check if you have access through your login credentials or your institution to get full access on this article.

    Sign in
    • Published in

      cover image ACM Conferences
      LCSD '07: Proceedings of the 2007 Symposium on Library-Centric Software Design
      October 2007
      125 pages
      ISBN:9781605580869
      DOI:10.1145/1512762

      Copyright © 2007 ACM

      Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

      Publisher

      Association for Computing Machinery

      New York, NY, United States

      Publication History

      • Published: 21 October 2007

      Permissions

      Request permissions about this article.

      Request Permissions

      Check for updates

      Qualifiers

      • research-article

    PDF Format

    View or Download as a PDF file.

    PDF

    eReader

    View online with eReader.

    eReader