The DSDS adds software visualization techniques to the Surgeon's Assistant. It provides a useful augmentation to the already existing textual interface. Thus, it is easily used in collaboration with the textual interface.
The DSDS provides a visual representation of the decomposition slices of a given program. The DSDS allows the software maintainer to visually comprehend the relationships between the decomposition slices.
The DSDS creates a acyclic labeled directed graph where a directed edge represents the relationship, ``is contained in,'' between decomposition slices. The descendants of a node (i.e., a decomposition slice) for a given variable, n, are the set of variables whose values affect the value of n. Thus, a node that has many descendants relies heavily on other variables in the program. Nodes that have no children are completely independent slices that are not affected by any other slices. Thus, the maintainer can easily tell which variables are key to the program.
The DSDS also uses color to increase the understanding of the slices. When the maintainer selects a slice on a particular variable for change, the DSDS colors those nodes that represent all slices contained in (i.e., that depend on) the chosen variable's slice. The maintainer can get a visual ``feel'' for how drastic her change will be. For example, if the slice selected highlights a large portion of the DSDS graph, the maintainer will know that her change is quite drastic. This may perhaps lead the maintainer to decide that her new feature would be better as an independent program rather than part of the current program.
The DSDS user interface is also helpful to the maintainer. The maintainer can click on nodes to delete them from the graph. This is useful for larger programs with many decomposition slices. The maintainer can remove the clutter made by slices in which she has no interest.
Currently, the system for deleting nodes removes all in and out edges of the deleted node. This system is a ``user beware'' system since the node and edges deleted could have represented containment relationships in the graph that still exist after the removal of the node. In the future, we hope to add a system whereby the integrity of the relationships can be maintained even when nodes are deleted.
The maintainer may also move nodes in the graph. This is useful since the maintainer may not want to delete a particular slice from the graph, but would like it ``out of the way'' so that she can better visualize the slices with which she is most concerned.
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.