Next: Decomposition Slice Display System Up: Background and Related Work Previous: Graph Visualization

Software Visualization

In this section, we discuss software visualization and the various software visualization systems that have been proposed. Note that few software visualization systems deal with program slicing. However, we feel that it is helpful to look at software visualization in general, since this can give insight to aid in the visualization of program slices.

Domingue, et al., define software visualization as ``systems that use visual (and other) media to enhance one programmer's understanding of another's work (or his own)'' [4]. Since the 1980's, software visualization has become popular both in education and industry. Researchers have found that software visualization can aid educators when teaching software development and programming. Software visualization can also help professional programmers when debugging and looking for algorithmic solutions.

Price, et al., set forth a detailed taxonomy of software visualization. They discuss many systems that use software visualization [19]. Their taxonomy has categories that rate each software visualization system in the areas of scope, content, form, method, interaction, and effectiveness.

Eisenstadt, et al., discuss the use of software visualization systems in teaching environments [6]. They discuss methods for developing software visualizations that span the range from novice student to experienced developer.

Current software visualization systems evaluate and understand algorithms [3], visualize parallel programs [15,12], assist in debugging [5], aid understanding of control flow or data flow of programs [10] and present source code in a more understandable manner [11]. Those that aid in software maintenance [17] do not utilize program slicing.

We are aware of only one system that currently visualizes program slices [1] (called SeeSlice). However, SeeSlice does not serve the same purpose as the DSDS. SeeSlice is based on slices of program statements rather than decomposition slices of variables. In addition, SeeSlice provides an interactive system to dynamically view separate program slices. The DSDS provides a static graph of the relationships between all decomposition slices in a given program.

Few slice visualization systems exist probably because software developers often feel that there are no demonstratable gains from software visualization systems [19], and thus are unwilling to invest time and money in them. We feel that the DSDS, along with the Surgeon's Assistant, provides useful information that will save the software developer valuable maintenance time.

Next: Decomposition Slice Display System Up: Background and Related Work Previous: Graph Visualization

Copyright © 1994, 1995    Keith B. Gallagher, Bradley M. Kuhn, Dennis J. Smith.

Verbatim copying and distribution of this entire paper is permitted in any medium, provided this notice is preserved.