Skip to main content

Visualising Objects: Abstraction, Encapsulation, Aliasing, and Ownership

  • Conference paper
  • First Online:
Software Visualization

Part of the book series: Lecture Notes in Computer Science ((LNCS,volume 2269))

Abstract

Each object in an object-oriented program can correspond to one abstraction in the program’s design. This correspondence makes visualising object-oriented programs easy: simply render each object in terms of its corresponding abstraction. Unfortunately, the endemic aliasing within object-oriented programs undermines this scheme, as an object’s state can depend on the transitive state of many other objects, which may be unknown to the visualisation system. By analysing programs to determine the extent of aliasing, we can construct visualisations to display aliasing directly, and can provide support for more abstract visualisations.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 39.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 54.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. Paulo Sérgio Almeida. Baloon Types: Controlling sharing of state in data types. In ECOOP Proceedings, June 1997.

    Google Scholar 

  2. S. Alstrup and P. Lauridsen. A simple dynamic algorithm for maintaining a dominator tree. Technical report, Dept. of Comp. Sci., Univ. of Copenhagen, 1996.

    Google Scholar 

  3. G. Di Battista, P. Eades, R. Tamassia, and I. Tollis. Graph drawing, 1999.

    Google Scholar 

  4. Kent Beck. Pictures from the object explorer. Technical report, First Class Software, Inc., 1994.

    Google Scholar 

  5. Boris Bokowski and Jan Vitek. Confined types. In OOPSLA Proceedings, 1999.

    Google Scholar 

  6. Alan Borning and Robert Duisberg. Constraint based tools for building user interfaces. ACM Transactions on Graphics, 5(4), October 1986.

    Google Scholar 

  7. Marc H. Brown. Algorithm Animation. ACM Distinguished Dissertation. MIT Press, 1988.

    Google Scholar 

  8. Marc H. Brown, Marc A. Najork, and Roope Raisamo. A Java-based implementation of collaborative active textbooks. In IEEE Symposium on Visual Languages, pages 372–379, 1997.

    Google Scholar 

  9. Paul Carlson and Margaret M. Burnett. Integrating algorithm animation into a declarative visual programming language. In IEEE Symposium on Visual Languages, 1995.

    Google Scholar 

  10. David Clarke, John Potter, and James Noble. Ownership types for flexible alias protection. In OOPSLA Proceedings, 1998.

    Google Scholar 

  11. Kenneth C. Cox and Gruia-Catalin Roman. A characterization of the computational power of rule-based visualization. Journal of Visual Languages and Computing, 5(1), March 1994.

    Google Scholar 

  12. P. Crescenzi, C. Demetrescu, I. Finocchi, and R. Petreschi. Reversible execution and visualization of programs with Leonardo. Journal of Visual Languages and Computing, 11(2):125–150, April 2000.

    Article  Google Scholar 

  13. Christian Grotho., Jens Palsberg, and Jan Vitek. Encapsulating objects with confined types. In OOPSLA Proceedings, 2001.

    Google Scholar 

  14. J. Haajanen, M. Pesonius, E. Sutinen, J. Tarhio, T. Teräsvirta, and P. Vanninen. Animation of user algorithms on the web. In IEEE Symposium on Visual Languages, pages 360–367, 1997.

    Google Scholar 

  15. Trent Hill, James Noble, and John Potter. Scalable visualisations with ownership trees. In Proceedings of TOOLS Pacific 2000, Sydney, 2000. IEEE CS Press.

    Google Scholar 

  16. Trent Hill, James Noble, and John Potter. Visualising the structure of objectoriented systems. In Proceedings of the IEEE Symposium on Visual Languages, pages 191–198, Seattle, 2000. IEEE CS Press.

    Google Scholar 

  17. Trent Hill, James Noble, and John Potter. Scalable visualisations of object-oriented systems. Journal of Visual Languages and Computing, 2002. To appear.

    Google Scholar 

  18. John Hogg. Islands: Aliasing protection in object-oriented languages. In OOPSLA Proceedings, November 1991.

    Google Scholar 

  19. John Hogg, Doug Lea, Alan Wills, Dennis deChampeaux, and Richard Holt. The Geneva convention on the treatment of object aliasing. OOPS Messenger, 3(2), April 1992.

    Google Scholar 

  20. Danny B. Lange and Yuichi Nakamura. Interactive visualization of design patterns can help in framework understanding. In OOPSLA Proceedings, October 1995.

    Google Scholar 

  21. Danny B. Lange and Yuichi Nakamura. Object-oriented program tracing and visualization. IEEE Computer, 30(5), May 1997.

    Google Scholar 

  22. Ole Lehrmann Madsen, Birger Møller-Pedersen, and Kristen Nygaard. Object-Oriented Programming in the BETA Programming Language. Addison-Wesley, 1993.

    Google Scholar 

  23. Barbara Liskov and John V. Guttag. Abstraction and Specification in Program Development. MIT Press/McGraw-Hill, 1986.

    Google Scholar 

  24. John H. Maloney, Alan Borning, and Bjorn N. Freeman-Benson. Constraint technology for user-interface construction in ThingLab II. In OOPSLA Proceedings, 1989.

    Google Scholar 

  25. Satoshi Matsuoka, Shin Takahashi, Tomihisa Kamada, and Akinori Yonezawa. A general framework for bi-directional translation between abstract and pictorial data. ACM Transactions on Information Systems, 10(4), October 1992.

    Google Scholar 

  26. Steven S. Muchnick. Advanced Compiler Design and Implementation. Morgan Kaufman, 1997.

    Google Scholar 

  27. Brad A. Myers. Incense: A system for displaying data structures. In SIGGRAPH Proceedings, 1983.

    Google Scholar 

  28. Brad A. Myers, Rich McDaniel, Rob Miller, Brad Vander Zanden, Dario Guise, David Kosbie, and Andrew Mickish. The prototype-instance object systems in Amulet and Garnet. In James Noble, Antero Taivalsaari, and Ivan Moore, editors, Prototype-Based Programming: Concepts, Languages and Applications, chapter 7. Springer-Verlag, 1999.

    Google Scholar 

  29. James Noble. Prototype-based programming for abstract program visualisation. In James Noble, Antero Taivalsaari, and Ivan Moore, editors, Prototype-Based Programming: Conecepts, Languages, Applications. Springer-Verlag, 1997.

    Google Scholar 

  30. James Noble and John Potter. Change detection for aggregate objects with aliasing. In Australian Software Engineering Conference (ASWEC), 1997.

    Google Scholar 

  31. James Noble, Jan Vitek, and John Potter. Flexible alias protection. In ECOOP Proceedings, 1998.

    Google Scholar 

  32. R. James Noble. Abstract Program Visualisation: Object Orientation in the Tarraing ím Program Exploratorium. PhD thesis, Victoria University of Wellington, December 1996.

    Google Scholar 

  33. R. James Noble and Lindsay J. Groves. Tarraingím — a program animation environment. New Zealand Journal of Computing, 4(1), December 1992.

    Google Scholar 

  34. R. James Noble, Lindsay J. Groves, and Robert L. Biddle. Object oriented program visualisation in Tarraingím. Australian Computer Journal, 27(4), November 1995.

    Google Scholar 

  35. Stephen North. Visualizing graph models of software. In John T. Stasko, John B. Domingue, Marc H. Brown, and Blaine A. Price, editors, Software Visualisation. M.I.T. Press, 1998.

    Google Scholar 

  36. W. De Pauw, D. Lorenz, J. Vlissides, and M. Wegman. Execution patterns in object-oriented visualization. In COOTS Proceedings, 1998.

    Google Scholar 

  37. W. De Pauw and G. Sevitsky. Visualizing reference patterns for solving memory leaks in java. In OOPSLA Proceedings, 1999.

    Google Scholar 

  38. Wim De Pauw, Richard Helm, Doug Kimelman, and John Vlissides. Visualizing the behavior of object-oriented systems. In OOPSLA Proceedings, October 1993.

    Google Scholar 

  39. Wim De Pauw, Erik Jensen, Nick Mitchell, Gary Sevitsky, John Vlissides, and Jeaha Yang. Visualizing the Execution of Java Programs. In Proceedings of Dagstuhl Seminar on Software Visualization, 2001.

    Google Scholar 

  40. John Potter, James Noble, and David Clarke. The ins and outs of objects. In Australian Software Engineering Conference (ASWEC), 1998.

    Google Scholar 

  41. Mohlalefi Sefika, Aamod Sane, and Roy H. Campbell. Architecture-oriented visualization. In OOPSLA Proceedings, 1996.

    Google Scholar 

  42. Randall B. Smith, John Maloney, and David Ungar. The Self-4.0 user interface: Manifesting a system-wide vision of concreteness, uniformity, and flexibility. In OOPSLA Proceedings, 1995.

    Google Scholar 

  43. John T. Stasko. The path-transition paradigm: a practical methodology for adding animation to program interfaces. Journal of Visual Languages and Computing, 1(3), September 1990.

    Google Scholar 

  44. John T. Stasko and Charles Patterson. Understanding and characterising software visualisation systems. In IEEE Workshop on Visual Languages, 1992.

    Google Scholar 

  45. Kozo Sugiyama, Shojiro Tagawa, and Mitsuhiko Toda. Methods for visual understanding of hierarchical system structures. IEEE Trans. Systems, Man and Cybernetics, 11(2):109–125, 1981.

    Article  MathSciNet  Google Scholar 

  46. David Ungar and Randall B. Smith. SELF: the Power of Simplicity. Lisp And Symbolic Computation, 4(3), June 1991.

    Google Scholar 

  47. R. Walker, G. Murphy, B. Freeman-Benson, D. Wright, D. Swanson, and J. Isaak. Visualizing dynamic software system information through high-level models. In OOPSLA Proceedings, 1998.

    Google Scholar 

  48. Alan Cameron Wills. Formal Methods applied to Object-Oriented Programming. PhD thesis, University of Manchester, 1992.

    Google Scholar 

  49. A. Zeller and D. Lütkehaus. DDD—a free graphical front-end for UNIX debuggers. ACM SIGPLAN Notices, 31(1), 1996.

    Google Scholar 

  50. Thomas Zimmermann and Andreas Zeller. Visualizing Memory Graphs. In Proceedings of Dagstuhl Seminar on Software Visualization, 2001.

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2002 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Noble, J. (2002). Visualising Objects: Abstraction, Encapsulation, Aliasing, and Ownership. In: Diehl, S. (eds) Software Visualization. Lecture Notes in Computer Science, vol 2269. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-45875-1_5

Download citation

  • DOI: https://doi.org/10.1007/3-540-45875-1_5

  • Published:

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-43323-1

  • Online ISBN: 978-3-540-45875-3

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics