skip to main content
10.1145/1148493.1148512acmconferencesArticle/Chapter ViewAbstractPublication PagessoftvisConference Proceedingsconference-collections
Article

Visualizing program execution using user abstractions

Published:04 September 2006Publication History

ABSTRACT

A practical system that uses visualization for understanding the execution of complex programs must offer the user views of the execution that are specific to the program being understood and the particular problem at hand without significantly slowing down or perturbing the system being examined. This paper describes a visualization data model and its implementation that accomplishes this. The model starts with program events that can be instrumented efficiently and with little overhead. It uses extended finite state automata to model program behaviors in terms of events. It builds time-varying data structures based on these automata. The data structures are then made available to various visualizations through a set of mappings that let the user dynamically control the visualization. The model and its implementation have been demonstrated on a range of specific understanding problems with a variety of different visualizations.

References

  1. David B. Baskerville, "Graphic presentation of data structures in the DBX debugger," UC Berekley UCB/CSD 86/260 (1985). Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. John Bazik, Roberto Tamassia, Steven P. Reiss, and Andries van Dam, "Software visualization in teaching at Brown University," pp. 383--398 in Software Visualization: Programming as a Multimedia Experience, ed. John Stasko, John Domingue, Marc H. Brown, and Blaine A. Price, MIT Press (1998).Google ScholarGoogle Scholar
  3. Marc H. Brown and Steven P. Reiss, "Debugging in the BALSA-PECAN integrated environment," ACM SIGPLAN-SIGSOFT Symposium on Debugging (1983).Google ScholarGoogle Scholar
  4. Marc H. Brown and Robert Sedgewick, "A system for algorithm animation," Computer Graphics Vol. 18(3) pp. 177--186 (July 1984). Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. Marc H. Brown and Robert Sedgewick, "Interesting Events," pp. 155--172 in Software Visualization: Programming as a Multimedia Experience, ed. John Stasko, John Domingue, Marc H. Brown, and Blaine A. Price, MIT Press (1998).Google ScholarGoogle Scholar
  6. Kenneth W. Church and Jonathan I. Helfman, "Dotplot: a program for exploring self-similarity in millions of lines for text and code," Journal of Computational and Graphical Statistics Vol. 2 pp. 153--174 (1993).Google ScholarGoogle ScholarCross RefCross Ref
  7. Mikhali Dmitriev, "Design of JFluid: A profiling technology and tool based on dynamic bytecode instrumentation," Sun Microsystems Report TR_2003--125, (November 2003).Google ScholarGoogle Scholar
  8. Stephen G. Eick, Joseph L. Steffen, and Eric E. Sumner, Jr., "Seesoft - a tool for visualizing software," AT&T Bell Laboratories (1991).Google ScholarGoogle Scholar
  9. Paul Gestwicki and Bharat Jayaraman, "Methodology and Architecture of JIVE," SoftVis 2005, pp. 95--104 (May 2005). Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. Dean Jerding, John T. Stasko, and Thomas Ball, "Visualizing interactions in program executions," Proc 19th Intl. Conf. on Software Engineering, pp. 360--370 (May 1997). Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. Dean F. Jerding, "Visualizing patterns in the execution of object-oriented programs," pp. 47--48 in Proceedings of ACM CHI 96 Conference on Human Factors in Computing Systems, (1996). Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. G. Kiczales, E. Hilsdale, J. Hugunin, M. Kersten, J. Palm, and W. Griswold, "An Overview of AspectJ," in European Conference on Object-Oriented Programming, (2001). Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. Gregor Kiczales, John Lamping, Anurag Mendhekar, Chris Maeda, Cristina Videira Lopes, Jean-Marc Loingtier, and John Irwin, "Aspect-Oriented Programming," in European Conference on Object-Oriented Programming, (jun 1997).Google ScholarGoogle Scholar
  14. Doug Kimelman, Bryan Rosenburg, and Tova Roth, "Visualization of dynamics in real world software systems," pp. 293--314 in Software Visualization: Programming as a Multimedia Experience, ed. John Stasko, John Domingue, Marc H. Brown, and Blaine A. Price, MIT Press (1998).Google ScholarGoogle Scholar
  15. Eileen Kraemer, "Visualizing concurrent programs," pp. 237--256 in Software Visualization: Programming as a Multimedia Experience, ed. John Stasko, John Domingue, Marc H. Brown, and Blaine A. Price, MIT Press (1998).Google ScholarGoogle Scholar
  16. Chris Laffra, Doug Lorch, Dave Streeter, Frank Tip, and John Field, "What is Jikes Bytecode Toolkit," http://www.alphaworks.ibm.com/tech/jikesbt, (March 2000).Google ScholarGoogle Scholar
  17. Henry Lieberman and Christopher Fry, "Bridging the gap between code and behavior in programming," CHI'95, pp. 480--486 (April 1995). Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. Sun Microsystems, "JVM Tool Interface," http://java.sun.com/j2se/1.5.0/docs/guide/jvmti/jvmti.html, (2004).Google ScholarGoogle Scholar
  19. Brad A. Myers, "Displaying data structures for interactive debugging," Xerox csl-80-7 (June 1980).Google ScholarGoogle Scholar
  20. Wim De Pauw, Doug Kimelman, and John Vlissides, "Visualizing object- oriented software execution," pp. 329--346 in Software Visualization: Programming as a Multimedia Experience, ed. John Stasko, John Domingue, Marc H. Brown, and Blaine A. Price, MIT Press (1998).Google ScholarGoogle Scholar
  21. Wim De Pauw and Gary Sevitsky, "Visualizing reference patterns for solving memory leaks in Java," in Proceedings of the ECOOP'99 European Conference on Object-oriented Programming, (1999). Google ScholarGoogle ScholarDigital LibraryDigital Library
  22. Wim De Pauw, Nick Mitchell, Martin Robillard, Gary Sevitsky, and Harini Srinivasan, "Drive-by analysis of running programs," Proc. ICSE Workshop of Software Visualization, (May 2001).Google ScholarGoogle ScholarDigital LibraryDigital Library
  23. Steven P. Reiss, "PECAN: program development systems that support multiple views," IEEE Trans. Soft. Eng. Vol. SE-11 pp. 276--284 (March 1985). Google ScholarGoogle ScholarDigital LibraryDigital Library
  24. Steven P. Reiss, Eric J. Golin, and Robert V. Rubin, "Prototyping visual languages with the GARDEN system," Proc. IEEE Symp. on Visual Languages, (June 1986).Google ScholarGoogle Scholar
  25. Steven P. Reiss and Joseph N. Pato, "Displaying program and data structures," Proc. 20th Hawaii Intl. Conf. System Sciences, (January 1987).Google ScholarGoogle Scholar
  26. Steven P. Reiss, "Working in the Garden environment for conceptual programming," IEEE Software Vol. 4(6) pp. 16--27 (November 1987). Google ScholarGoogle ScholarDigital LibraryDigital Library
  27. Steven P. Reiss, "Interacting with the FIELD environment," Software Practice and Experience Vol. 20(S1) pp. 89--115 (June 1990). Google ScholarGoogle ScholarDigital LibraryDigital Library
  28. Steven P. Reiss, "Connecting tools using message passing in the FIELD environment," IEEE Software Vol. 7(4) pp. 57--67 (July 1990). Google ScholarGoogle ScholarDigital LibraryDigital Library
  29. Steven P. Reiss, FIELD: A Friendly Integrated Environment for Learning and Development, Kluwer (1994). Google ScholarGoogle ScholarDigital LibraryDigital Library
  30. Steven P. Reiss, "An engine for the 3D visualization of program information," Journal of Visual Languages, (December, 1995).Google ScholarGoogle ScholarDigital LibraryDigital Library
  31. Steven P. Reiss and Manos Renieris, "Encoding program executions," Proc ICSE 2001, (May 2001). Google ScholarGoogle ScholarDigital LibraryDigital Library
  32. Steven P. Reiss, "Bee/Hive: a software visualization backend," IEEE Workshop on Software Visualization, (May 2001).Google ScholarGoogle Scholar
  33. Steven P. Reiss, "An overview of BLOOM," PASTE '01, (June 2001). Google ScholarGoogle ScholarDigital LibraryDigital Library
  34. Steven P. Reiss, "A visual query language for software visualization," IEEE 2002 Symposium on Human Centric Computing Languages and Environments, pp. 80--82 (September 2002). Google ScholarGoogle ScholarDigital LibraryDigital Library
  35. Steven P. Reiss, "JIVE: visualizing Java in action," Proc. ICSE 2003, pp. 820--821 (May 2003). Google ScholarGoogle ScholarDigital LibraryDigital Library
  36. Steven P. Reiss and Manos Renieris, "JOVE: Java as it happens," Proc. SoftVis '05, pp. 115--124 (May 2005). Google ScholarGoogle ScholarDigital LibraryDigital Library
  37. Steven P. Reiss, "Efficient monitoring and display of thread state in Java," IWPC 2005, pp. 247--256 (May 2005). Google ScholarGoogle ScholarDigital LibraryDigital Library
  38. Steven P. Reiss, "Dynamic detection and visualization of software phases," Proc. Third International Workshop on Dynamic Analysis, (May 2005). Google ScholarGoogle ScholarDigital LibraryDigital Library
  39. Steven P. Reiss, "Checking event-based specificationsin Java systems," Proc. SoftMC 2005, (July 2005).Google ScholarGoogle Scholar
  40. John T. Stasko, "TANGO: a framework and system for algorithm animation," IEEE Computer Vol. 23(9) pp. 27--39 (September 1990). Google ScholarGoogle ScholarDigital LibraryDigital Library
  41. Qin Wang, Wei Wang, Rhodes Brown, Karel Driesen, Bruno Dufour, Laurie Hendren, and Clark Verbrugge, "EVolve: an open extensible software visualization framework," Proc of SoftVis 2003, (June 2003). Google ScholarGoogle ScholarDigital LibraryDigital Library
  42. Wei Wang, "EVolve: An extensible software visualization framework," McGill University School of Computer Science, (2004).Google ScholarGoogle Scholar

Index Terms

  1. Visualizing program execution using user abstractions

      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
        SoftVis '06: Proceedings of the 2006 ACM symposium on Software visualization
        September 2006
        199 pages
        ISBN:1595934642
        DOI:10.1145/1148493

        Copyright © 2006 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: 4 September 2006

        Permissions

        Request permissions about this article.

        Request Permissions

        Check for updates

        Qualifiers

        • Article

        Acceptance Rates

        Overall Acceptance Rate20of65submissions,31%

      PDF Format

      View or Download as a PDF file.

      PDF

      eReader

      View online with eReader.

      eReader