Project: Program Visualization using AVS/Express
This project investigated the integration of scientific visualization tools and techniques with program visualization for purposes of better understanding existing program codes.
Goals and Purpose of Project
Four goals were identified early in the project. These are: 1. Building a Research Community. This is achieved through regular project meetings, participation in the Computation and Communication Integration Group (a research group organized by the faculty advisor) and interaction with other researchers in the field. 2. Building Critical and Creative Thought. Despite the undergraduate level of the work, the project team considered open research questions. Through brain-storming, literature reviews and research discussions the team engaged in critical and creative thought. 3. Augmenting Academic Knowledge. Academic content includes visualization tools, techniques and as well as literature reviews. 4. Publishing the Results. Research advancements obtained through the project work will be disseminated as either a departmental technical report or as a conference paper.
The purposes of the work are twofold: first, to attain the above stated goals, second, to advance research in program visualization.
The project team met regularly once per week during the Fall term. Meetings involved discussions concerning program and scientific visualization research as well as literature searches to identify current research works and those that relate to the project scope. Brain- storming sessions for program representations suitable for scientific (or data) analysis and visualization also occurred. Later on, such weekly meetings became the focal points for the development of specific models to accomplish the proposed visualization.
After the Winter Break (Dec.-Jan.), members began to work semi-independently as the nature of the developed models could be best explored by specific team members. Team members met with the faculty advisor one-on-one regularly during this time as well as in several group meetings. By the end of the Spring Term, a suite of interfacing models to support scientific visualization of program information had been developed.
During the project, each student member enrolled in an individual studies course offered by the Department of Computer Science. As such, both adequate time and academic credit for research work was provided for. In addition, one student member enrolled in an undergraduate section of a graduate level course taught by the advisor in the area of program visualization. A conference publication was submitted during the mid-point of the project; the reviewer's comments were encouraging. The submission was not accepted at the time.
Currently, the CREW sponsored portion of the project is in the wind-down phase. An NSF proposal has been recently submitted that incorporates large segments of the research work conducted by the project team. Also, an enhanced paper is currently being prepared for submission to an international conference.
Results and Conclusion
In general, programs are structured according to abstractions and consist of individual program statements formed into groups such as procedures, functions or modules. For the situation in which a programmer or user wishes to examine existing code in order to understand it better, the programmer performs code walk-throughs and reviews existing documentation in order to discover the concepts and abstractions contained in the program code. Unfortunately, there is no guarantee that such documentation accurately reflects the concepts and abstractions associated with specific code fragments in a program. The principal idea behind the research work is to identify, extract, model and visualize abstractions contained in existing program code fragments without relying on user-supplied documentation so as to address the difficulties that users often encounter when attempting to understand an existing program.
Four models were developed: the Cluster Relation Model (CRM), the Graph Relation Model (GRM), the Relation Reduction Model (RRM) and the Parameterized Iconic Glyph (PIG) Model. The CRM provides for the identification of program statement characteristics based upon a static analysis of the program; subsequently, a clustering process is applied to group similar statements together based on the identified characteristics. The GRM provides for a graph-based representation of relationships between program statements where program statements and the relationships may have attributes. The CRM and GRM models may dynamically interact to provide an iterative process of identification and representation of low-level abstractions directly obtainable from a program. The RRM provides for the reduction of the potential large relation state space into segments manageable for visualization. Lastly, the PIG model provides for integrated user interaction with pictorial representations of both functional abstractions and program relevant information.
Relations between program statements are the primary information format identified and extracted through the interactions of the four models. Such relations may be hierarchically organized to provide successive higher-levels of abstractions; this process is assisted by iterations of the CRM and GRM. The union over all such relations provides for the overall program abstraction. Interactive selection enabled by the PIG model allows the RRM to selectively respond with a subset of relations that most nearly match the intended level of abstraction. The integration of all of these models are illustrated in Figure 1.
Although the models that were developed were based on significant
understandings of program and data visualization requirements, and in
particular, influenced by the AVS/Express Software, no working prototype
was developed. Furthermore, additional research aimed at implementing
the models is needed.
The Computation and Communication Integration Group web page can be found at: http://www.cs.utep.edu/~bdauriol/ccig/index.html . The web page specific for this project is at: http://www.cs.utep.edu/~bdauriol/ccig/ccig-research/ProgVis.html .