We discuss issues in interactive execution and visualization of the run-time states of object-oriented programs. Our approach is embodied in a system called JIVE, for Java Interactive Visualization Environment. JIVE supports a number of useful features that enhance run-time program comprehension: multiple views of object structure at varying levels of granularity; summarized view of the entire execution history; forward as well as reverse execution; aesthetic layouts; and flexible runtime queries on object states. Drawing object structures and the execution history is essentially a problem of optimal rendering of directed graphs. We survey the types of graphs that arise in this context and the graph-drawing algorithms that are generally used. We show that an approach that combines graph-theoretic and program-specific criteria leads to an overall better layouts. A demonstration of the current JIVE prototype will also be given in the talk.
Colloquia Series page.