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)

Abstract

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.

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. 1.
    Goldberg, A., Robson, D.: Smalltalk-80: The Language and Its Implementation. Addison-Wesley, Reading (1983)MATHGoogle 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)MATHGoogle 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)MATHGoogle Scholar
  16. 16.
    Meyer, B.: Object-Oriented Software Construction, 2nd edn. Prentice-Hall, Englewood Cliffs (1997)MATHGoogle 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