ICS Ph.D. Defense: John Wu, "A Framework for Efficient Creation and Customization of High Level Program Visualizations"
Title: A Framework for Efficient Creation and Customization of High Level Program Visualizations
The purpose of software visualization is to facilitate program comprehension by visualizing artifacts of software programs using graphical representations. In particular, high, algorithm level of visualizations can be used describe abstract concepts and algorithms to achieve effective understanding of programs. However, it has always been a difficult and time-consuming task to produce such high-level visualizations for programs. This diminishes the programmers’ willingness to create visualizations for their programs and therefore limits the usage and application of program visualization.
To bridge this gap in the foundation of software visualization, we developed the "ProViz" framework that allows programmers to rapidly generate one or even several graphical depictions of a program and see the execution of this program as it runs. This is accomplished by (1) decoupling the visual programming from the target program through visual mapping tools, (2) utilizing the data-driven design and the method-driven capability, and (3) object-oriented software architecture of painters with high reusability. ProViz can facilitate the creation of versatile visualizations where the resulting visualizations are interactive and customizable, and the visualization can also be recorded to a file and played back. Being able to effortlessly create high-level visualizations for programs not only fulfills pedagogical purposes for educators but also is a fundamental step towards increasing the productivity of key elements in software development processes - from coding and debugging to maintenance.
A prototype of the ProViz framework was embedded in the popular integrated development environment Eclipse. In a pilot study, it has been utilized in an introductory computer science course where the instructor was able to demonstrate algorithms visually and the students could visually debug their programs. Moreover, a usability test was administered to experienced programmers to evaluate the effectiveness of the framework for general purpose software development. The results showed that programmers can indeed use ProViz to create or customize program visualizations with reasonable effort and time.