A Relational Model of Object Collaborations and Its Use in Reasoning About Relationships

  • Stephanie Balzer
  • Thomas R. Gross
  • Patrick Eugster
Part of the Lecture Notes in Computer Science book series (LNCS, volume 4609)


Understanding the collaborations that arise between the instances of classes in object-oriented programs is important for the analysis, optimization, or modification of the program. Relationships have been proposed as a programming language construct to enable an explicit representation of these collaborations. This paper introduces a relational model that allows the specification of systems composed of classes and relationships. These specifications rely in particular on member interposition (facilitates the specification of relationship-dependent members of classes) and on relationship invariants (facilitate the specification of the consistency constraints imposed on object collaborations). The notion of a mathematical relation is the basis for the model. Employing relations as an abstraction of relationships, the specification of a system can be formalized using discrete mathematics. The relational model allows thus not only the specification of object collaborations but also provides a foundation to reason about these collaborations in a rigorous fashion.


Faculty Member Consistency Constraint Class Student Total Relation Relationship Invariant 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    Goldberg, A., Robson, D.: Smalltalk-80: The Language and Its Implementation. Addison-Wesley, Reading (1983)zbMATHGoogle Scholar
  2. 2.
    Jacobson, I., Booch, G., Rumbaugh, J.E.: The Unified Software Development Process. Addison-Wesley, Reading (1999)Google Scholar
  3. 3.
    Chen, P.P.S.: The entity-relationship model - toward a unified view of data. ACM Transactions on Database Systems (TODS) 1(1), 9–36 (1976)CrossRefGoogle Scholar
  4. 4.
    Bierman, G.M., Wren, A.: First-class relationships in an object-oriented language. In: Black, A.P. (ed.) ECOOP 2005. LNCS, vol. 3586, pp. 262–286. Springer, Heidelberg (2005)Google Scholar
  5. 5.
    Rumbaugh, J.: Relations as semantic constructs in an object-oriented language. In: OOPSLA ’87. 2nd ACM Conference on Object-Oriented Programming Systems, Languages and Applications, pp. 466–481. ACM Press, New York (1987)CrossRefGoogle Scholar
  6. 6.
    Albano, A., Ghelli, G., Orsini, R.: A relationship mechanism for a strongly typed object-oriented database programming language. In: VLDB’91. 17th International Conference on Very Large Data Bases, pp. 565–575. Morgan Kaufmann Publishers Inc, San Francisco (1991)Google Scholar
  7. 7.
    Pearce, D.J., Noble, J.: Relationship aspects. In: AOSD ’06. 5th International Conference on Aspect-Oriented Software Development, pp. 75–86. ACM Press, New York (2006)CrossRefGoogle Scholar
  8. 8.
    Pearce, D.J., Noble, J.: Relationship aspect patterns. In: EuroPLoP’06. 11th European Conference on Pattern Languages of Programs (2006)Google Scholar
  9. 9.
    Booch, G.: The Unified Modeling Language User Guide. Addison-Wesley, Reading (1999)CrossRefGoogle Scholar
  10. 10.
    Reenskaug, T., Wold, P., Lehne, O.A.: Working with Objects: The OOram Software Engineering Method. Manning/Prentice Hall, Englewood Cliffs (1996)zbMATHGoogle Scholar
  11. 11.
    Bäumer, D., Riehle, D., Siberski, W., Wulf, M.: The role object pattern. In: PLoP’97. 4th Conference on Pattern Languages of Programs (1997)Google Scholar
  12. 12.
    Gamma, E.: The extension objects pattern. In: PLoP’96. 3rd Conference on Pattern Languages of Programs (1996)Google Scholar
  13. 13.
    Parnas, D.L.: On the criteria to be used in decomposing systems into modules. Communications of the ACM 15(12), 1053–1058 (1972)CrossRefGoogle Scholar
  14. 14.
    Snyder, A.: Encapsulation and inheritance in object-oriented programming languages. In: OOPSLA ’86. 1st ACM Conference on Object-Oriented Programming Systems, Languages and Applications, vol. 21, pp. 38–45. ACM Press, New York (1986)Google Scholar
  15. 15.
    Abrial, J.R.: The B-Book: Assigning Programs to Meanings. Cambridge University Press, Cambridge (1996)zbMATHGoogle Scholar
  16. 16.
    Meyer, B.: Object-Oriented Software Construction, 2nd edn. Prentice-Hall, Englewood Cliffs (1997)zbMATHGoogle Scholar
  17. 17.
    Meyer, B.: Eiffel: The Language. Prentice Hall Professional Technical Reference. Prentice-Hall, Englewood Cliffs (1991)Google Scholar
  18. 18.
    Barnett, M., Leino, K.R.M., Schulte, W.: The Spec# programming system: An overview. In: Barthe, G., Burdy, L., Huisman, M., Lanet, J.-L., Muntean, T. (eds.) CASSIS 2004. LNCS, vol. 3362, pp. 49–69. Springer, Heidelberg (2004)Google Scholar
  19. 19.
    Leavens, G.T., Baker, A.L., Ruby, C.: Preliminary design of JML: A behavioral interface specification language for java. Technical Report 98-06-rev29, Iowa State University (2006)Google Scholar
  20. 20.
    Burdy, L., Cheon, Y., Cok, D.R., Ernst, M.D., Kiniry, J.R., Leavens, G.T., Leino, K.R.M., Poll, E.: An overview of jml tools and applications. International Journal on Software Tools for Technology Transfer (STTT’05) 7(3), 212–232 (2005)CrossRefGoogle Scholar
  21. 21.
    Leino, K.R.M., Müller, P.: Modular verification of static class invariants. In: Fitzgerald, J.A., Hayes, I.J., Tarlecki, A. (eds.) FM 2005. LNCS, vol. 3582, pp. 26–42. Springer, Heidelberg (2005)Google Scholar
  22. 22.
    Jacobs, B., Kiniry, J., Warnier, M.: Java program verification challenges. In: de Boer, F.S., Bonsangue, M.M., Graf, S., de Roever, W.-P. (eds.) FMCO 2002. LNCS, vol. 2852, pp. 202–219. Springer, Heidelberg (2003)Google Scholar
  23. 23.
    Leavens, G.T., Leino, K.R.M., Müller, P.: Specification and verification challenges for sequential object-oriented programs. Formal Aspects of Computing (to appear, 2006)Google Scholar
  24. 24.
    Liskov, B., Zilles, S.: Programming with abstract data types. In: ACM SIGPLAN Symposium on Very High Level Languages, pp. 50–59. ACM Press, New York (1974)CrossRefGoogle Scholar
  25. 25.
    Willis, D., Pearce, D.J., Noble, J.: Efficient object querying for java. In: Thomas, D. (ed.) ECOOP 2006. LNCS, vol. 4067, pp. 28–49. Springer, Heidelberg (2006)CrossRefGoogle Scholar
  26. 26.
    Kiczales, G., Lamping, J., Mendhekar, A., Maeda, C., Lopes, C., Loingtier, J.-M., Irwin, J.: Aspect-oriented programming. In: Aksit, M., Matsuoka, S. (eds.) ECOOP 1997. LNCS, vol. 1241, pp. 220–242. Springer, Heidelberg (1997)CrossRefGoogle Scholar
  27. 27.
    Kiczales, G., Hilsdale, E., Hugunin, J., Kersten, M., Palm, J., Griswold, W.G.: An overview of AspectJ. In: Knudsen, J.L. (ed.) ECOOP 2001. LNCS, vol. 2072, pp. 327–353. Springer, Heidelberg (2001)CrossRefGoogle Scholar
  28. 28.
    Noble, J., Grundy, J.: Explicit relationships in object-oriented development. In: TOOLS’95. Conference on the Technology of Object-Oriented Languages and Systems, pp. 211–226. Prentice-Hall, Englewood Cliffs (1995)Google Scholar
  29. 29.
    Helm, R., Holland, I.M., Gangopadhyay, D.: Contracts: specifying behavioral compositions in object-oriented systems. In: OOPSLA/ECOOP ’90. European Conference on Object-Oriented Programming on Object-Oriented Programming Systems, Languages, and Applications, pp. 169–180. ACM Press, New York (1990)CrossRefGoogle Scholar
  30. 30.
    Aksit, M., Wakita, K., Bosch, J., Bergmans, L., Yonezawa, A.: Abstracting object interactions using composition filters. In: Guerraoui, R., Riveill, M., Nierstrasz, O. (eds.) Object-Based Distributed Programming. LNCS, vol. 791, pp. 152–184. Springer, Heidelberg (1994)CrossRefGoogle Scholar
  31. 31.
    Herrmann, S.: Object teams: Improving modularity for crosscutting collaborations. In: Aksit, M., Mezini, M., Unland, R. (eds.) NODe 2002. LNCS, vol. 2591, pp. 248–264. Springer, Heidelberg (2003)CrossRefGoogle Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2007

Authors and Affiliations

  • Stephanie Balzer
    • 1
  • Thomas R. Gross
    • 1
  • Patrick Eugster
    • 2
  1. 1.Department of Computer Science, ETH Zurich 
  2. 2.Department of Computer Science, Purdue University 

Personalised recommendations