Object View: A Software Design Architecture for Breakpoint-Based Program Visualization
Christopher Hundhausen, Allen Maloney
Committee:
Technical Report(Dec 1969)
Keywords: algorithm visualization, breakpoint-based program visualization, instrumentation, object-oriented programming, portability, program object-to-graphics mapping, target-independent simulation-time visualization system, time of visualization.

Algorithm visualization (AV) systems, which provide graphic depictions of the dynamic state of an executing algorithm, can prove invaluable to anyone interested in gaining insight into the dynamic behavior of computer programs. Although past researchers have taken a multitude of different approaches to designing and implementing such systems (cf. Myers 1984, Brown 1988, Stasko 1990, Naps & Hundhausen 1991, Tuchman, Jablonowski, & Cybenko 1991, Mukhetjea & Stasko 1993), they have all had to address, in some way, the same four issues underlying AV system design: (1) portability, (2) time of visualization, (3) instrumentation, and (4) program object-to-graphics mapping. Targeting the specific domain of breakpoint-based program monitoring and visualization—a style of AV in which one can set breakpoints and examine the graphical representation of program's objects (variables, data structures, and other abstractions of program state) of interest at those breakpoints—this paper both identifies the requirements of a target-independent AV system architecture, and presents ObjectView, an architectural framework that we have developed to meet those requirements. Through its use of a distributed model, the object-oriented programming paradigm, and a portable, device-independent graphics language, ObjectView defines a framework for AV design that supports (1) a natural and non-intrusive method for identifying the program objects of interest, and for preparing those objects to be visualized; (2) a device- and program-independent technique for defining mappings between program objects and the graphics displays to which they should give rise; and (3) a run time source-level visualization environment for controlling the execution of a program, and for viewing, on demand, dynamic graphical representations of program objects.