Decomposition Slice Display System

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.