Methodology and architecture of JIVE

A novel approach to the runtime visualization and analysis of object-oriented programs is presented and illustrated through a prototype system called JIVE: Java Interactive Visualization Environment. The main contributions of JIVE are: multiple concurrent representations of program state and execution history; support for forward and reverse execution; and graphical queries over program execution. This model facilitates program understanding and interactive debugging. Our visualization of runtime states clarifies the important point that objects are environments of execution. The history of object interaction is displayed via sequence diagrams, and in this way we help close the loop between design-time and run-time representations. Interactive execution is made possible by maintaining a runtime history database, which may be queried for information on variable behavior, method executions, and object interactions. We illustrate the capabilities of this system through examples. JIVE is implemented using the Java Platform Debugger Architecture and supports the Java language and libraries, including multithreaded and GUI applications.

[1]  Robert Balzer,et al.  EXDAMS: extendable debugging and monitoring system , 1969, AFIPS '69 (Spring).

[2]  John B. Johnston,et al.  The contour model of block structured processes , 1971, SIGP.

[3]  Marvin V. Zelkowitz Reversible execution , 1973, CACM.

[4]  Adele Goldberg,et al.  Smalltalk-80 - the interactive programming environment , 1984 .

[5]  Robert Sedgewick,et al.  Techniques for Algorithm Animation , 1985, IEEE Software.

[6]  Randall B. Smith,et al.  SELF: The power of simplicity , 1987, OOPSLA '87.

[7]  Sven Moen,et al.  Drawing dynamic trees , 1990, IEEE Software.

[8]  Ioannis G. Tollis,et al.  A framework for dynamic graph drawing , 1992, SCG '92.

[9]  Doug Kimelman,et al.  Visualizing the behavior of object-oriented systems , 1993, OOPSLA '93.

[10]  Eugene H. Spafford,et al.  Debugging with dynamic slicing and backtracking , 1993, Softw. Pract. Exp..

[11]  Sougata Mukherjea,et al.  Toward visual debugging: integrating algorithm animation capabilities within a source-level debugger , 1994, TCHI.

[12]  Ralph Johnson,et al.  design patterns elements of reusable object oriented software , 2019 .

[13]  Stephen C. North,et al.  Incremental Layout in DynaDAG , 1995, GD.

[14]  Rockford J. Ross,et al.  DYNALAB: a dynamic computer science laboratory infrastructure featuring program animation (abstract) , 1995, SIGCSE '95.

[15]  Bharat Jayaraman,et al.  Visualizing program execution , 1996, Proceedings 1996 IEEE Symposium on Visual Languages.

[16]  Andreas Zeller,et al.  DDD—a free graphical front-end for UNIX debuggers , 1996, SIGP.

[17]  Joe Marks,et al.  An interactive constraint-based system for drawing graphs , 1997, UIST '97.

[18]  David Grove,et al.  Call graph construction in object-oriented languages , 1997, OOPSLA '97.

[19]  Stéphane Ducasse,et al.  Understanding Object-Oriented Programs through Declaratice Event Analysis , 1998, ECOOP Workshops.

[20]  Bjørn N. Freeman-Benson,et al.  Visualizing dynamic software system information through high-level models , 1998, OOPSLA '98.

[21]  Understanding Object-Oriented Programs with Declarative Event Analysis , 1998 .

[22]  Ivar Jacobson,et al.  The Unified Modeling Language User Guide , 1998, J. Database Manag..

[23]  Stéphane Ducasse,et al.  Recovering high-level views of object-oriented applications from static and dynamic information , 1999, Proceedings IEEE International Conference on Software Maintenance - 1999 (ICSM'99). 'Software Maintenance for Business Change' (Cat. No.99CB36360).

[24]  Guy L. Steele,et al.  Java Language Specification, Second Edition: The Java Series , 2000 .

[25]  Baowen Xu,et al.  Slicing object-oriented java programs , 2001, SIGP.

[26]  Steven P. Reiss An overview of BLOOM , 2001, PASTE '01.

[27]  Gary Sevitsky,et al.  Drive-by Analysis of Running Programs , 2001 .

[28]  Michael Kölling,et al.  Guidelines for teaching object orientation with Java , 2001, ITiCSE '01.

[29]  Bharat Jayaraman,et al.  Interactive visualization of Java programs , 2002, Proceedings IEEE 2002 Symposia on Human Centric Computing Languages and Environments.

[30]  Steven P. Reiss Visualizing Java in action , 2003, SoftVis '03.

[31]  Bharat Jayaraman,et al.  JIVE: java interactive visualization environment , 2004, OOPSLA '04.

[32]  T. Dean Hendrix,et al.  An extensible framework for providing dynamic data structure visualizations in a lightweight IDE , 2004, SIGCSE.

[33]  James Noble,et al.  Snapshot query-based debugging , 2004, 2004 Australian Software Engineering Conference. Proceedings..

[34]  Ronald L. Graham,et al.  Optimal scheduling for two-processor systems , 1972, Acta Informatica.

[35]  Lauri Malmi,et al.  MVT: a system for visual testing of software , 2004, AVI.