Visualization of program dependence and slices

The program dependence graph (PDG) itself and the computed slices within the program dependence graph are results that should be presented to the user in a comprehensible form, if not used in subsequent analyses. A graphical presentation would be preferred as it is usually more intuitive than textual ones. This work describes how a layout for the PDGs can be generated to enable an appealing presentation. However, experience shows that the graphical presentation is less helpful than expected and a textual presentation is superior. Therefore, this work contains an approach to textually present slices of PDGs in source code. The innovation of this approach is the fine-grained visualization of arbitrary node sets based on tokens and not on complete lines like in other approaches. Furthermore, a major obstacle in visualization and comprehension of slices is the loss of locality. Thus, this work presents a simple, yet effective, approach to limit the range of a slice. This approach enables a visualization of slices where the local effects stand out against the more global effects. A second, more sophisticated approach visualizes the influence range of chops for variables and procedures. This enables a visualization of the impact of procedures and variables on the complete system.

[1]  James M. Bieman,et al.  Program slices as an abstraction for cohesion measurement , 1998, Inf. Softw. Technol..

[2]  Joe D. Warren,et al.  The program dependence graph and its use in optimization , 1987, TOPL.

[3]  Giuliano Antoniol,et al.  Program understanding and maintenance with the CANTO environment , 1997, 1997 Proceedings International Conference on Software Maintenance.

[4]  Paul Anderson,et al.  Software Inspection Using CodeSurfer , 2001 .

[5]  Daniel Jackson,et al.  A new model of program dependences for reverse engineering , 1994, SIGSOFT '94.

[6]  Christoph Steindl Benefits of a data flow-aware programming environment , 1999, PASTE '99.

[7]  Michael D. Ernst Practical Fine-Grained Static Slicing of Optimized Code , 1994 .

[8]  David W. Binkley,et al.  The application of program slicing to regression testing , 1998, Inf. Softw. Technol..

[9]  Francoise Balmas Displaying dependence graphs: a hierarchical approach , 2004, J. Softw. Maintenance Res. Pract..

[10]  Thomas Ball,et al.  Visualizing program slices , 1994, Proceedings of 1994 IEEE Symposium on Visual Languages.

[11]  Emden R. Gansner,et al.  Drawing graphs with dot , 2006 .

[12]  Georg Sander,et al.  Graph Layout through the VCG Tool , 1994, GD.

[13]  Susan Horwitz,et al.  Incremental program testing using program dependence graphs , 1993, POPL '93.

[14]  Rajiv Gupta,et al.  An approach to regression testing using slicing , 1992, Proceedings Conference on Software Maintenance 1992.

[15]  Daniel Jackson,et al.  Abstraction mechanisms for pictorial slicing , 1994, Proceedings 1994 IEEE 3rd Workshop on Program Comprehension- WPC '94.

[16]  K. P. Vo,et al.  DAG—a program that draws directed graphs , 1988, Softw. Pract. Exp..

[17]  David W. Binkley,et al.  Interprocedural slicing using dependence graphs , 1990, TOPL.

[18]  Suraj C. Kothari,et al.  Program Slice Browser , 2001, Proceedings 9th International Workshop on Program Comprehension. IWPC 2001.

[19]  Keith Brian Gallagher,et al.  Visual impact analysis , 1996, 1996 Proceedings of International Conference on Software Maintenance.

[20]  Mitsuhiko Toda,et al.  Methods for Visual Understanding of Hierarchical System Structures , 1981, IEEE Transactions on Systems, Man, and Cybernetics.

[21]  Christoph Steindl Intermodular Slicing of Object-Oriented Programs , 1998, ECOOP Workshops.

[22]  Jens Krinke,et al.  Evaluating context-sensitive slicing and chopping , 2002, International Conference on Software Maintenance, 2002. Proceedings..

[23]  Debra J. Richardson,et al.  Developing and integrating ProDAG in the Arcadia environment , 1992 .

[24]  Mark David Weiser,et al.  Program slices: formal, psychological, and practical investigations of an automatic program abstraction method , 1979 .

[25]  David W. Binkley,et al.  Program slicing , 2008, 2008 Frontiers of Software Maintenance.

[26]  Gregor Snelting,et al.  Validation of measurement software as an application of slicing and constraint solving , 1998, Inf. Softw. Technol..

[27]  Keith Brian Gallagher,et al.  Using Program Slicing in Software Maintenance , 1991, IEEE Trans. Software Eng..

[28]  David Binkley,et al.  Using semantic differencing to reduce the cost of regression testing , 1992, Proceedings Conference on Software Maintenance 1992.

[29]  Michael Fröhlich,et al.  Demonstration of the Interactive Graph-Visualization System da Vinci , 1994, GD.