The DSDS currently provides a powerful visualization of decomposition slices. However, as can be seen in Figure 3, edge crossings are still a problem. We hope to use more of the methods proposed by Gasner, et al. [8] to remove edge crossings from the DSDS graphs.
In addition, we hope to evaluate the tool by slicing much larger systems. To do this we will need to address the question raised by having multiple source files. We will need a method to display decomposition slices that are contained in multiple files in a manner that gives the maintainer an indication of what is going on.
1 #define YES 1 2 #define NO 0 3 main() 4 { 5 int c, nl, nw, nc, inword ; 6 inword = NO ; 7 nl = 0; 8 nw = 0; 9 nc = 0; 10 c = getchar(); 11 while ( c != EOF ) { 12 nc = nc + 1; 13 if ( c == '\verb+\+n') 14 nl = nl + 1; 15 if ( c == '\ ' \verb+|| +c == '\verb+\+n' \verb+|| +c == '\verb+\+t') 16 inword = NO; 17 else if (inword == NO) { 18 inword = YES ; 19 nw = nw + 1; 20 } 21 c = getchar(); 22 } 23 printf("\%d \verb+\+n",nl); 24 printf("\%d \verb+\+n",nw); 25 printf("\%d \verb+\+n",nc); 26 } |
We also hope to add more software visualization techniques to the Surgeon's Assistant. The methods proposed by Ball and Eick for program slice visualization [1] appear very useful, and would complement the DSDS well.
Finally, our own exercises in building the DSDS suggest to us a metric for measuring decomposability and interaction between components. This is a new twist on Weiser's proposed ``overlap'' metric [23].
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.