Program slicing in understanding of large programs

Program slicing transforms a large program into a smaller one that contains only statements relevant to the computation of a given function. It has been shown that program slicing can be useful in program understanding. Traditionally, program slices are represented in the textual form. Although slicing does narrow the size of the program, the textual representation of a slice does not provide much guidance in the understanding of large programs. In this paper we present program slicing concepts on the module level that allow for better understanding of program slices of large programs and their executions. These concepts have been developed for static and dynamic program slicing and are combined with different methods of visualization to guide programmers in the process of program understanding. The presented concepts have been implemented in the slicing tool that is used to investigate the usefulness of these concepts in the process of understanding of large programs.

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

[2]  Mariam Kamkar,et al.  Interprocedural dynamic slicing with applications to debugging and testing , 1993, Linköping studies in science and technology dissertations.

[3]  Bogdan Korel,et al.  PELAS - Program Error-Locating Assistant System , 1988, IEEE Trans. Software Eng..

[4]  Bogdan Korel,et al.  Dynamic program slicing in understanding of program execution , 1997, Proceedings Fifth International Workshop on Program Comprehension. IWPC'97.

[5]  Hareton K. N. Leung,et al.  On the edge. Regression testability , 1992, IEEE Micro.

[6]  Bogdan Korel,et al.  Forward computation of dynamic program slices , 1994, ISSTA '94.

[7]  R. Gopal,et al.  Dynamic program slicing based on dependence relations , 1991, Proceedings. Conference on Software Maintenance 1991.

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

[9]  Thomas Ball,et al.  Software Visualization in the Large , 1996, Computer.

[10]  Joseph Robert Horgan,et al.  Dynamic program slicing , 1990, PLDI '90.

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

[12]  Eugene H. Spafford,et al.  Debugging with dynamic slicing and backtracking , 1993, Softw. Pract. Exp..

[13]  B. Korel Computation of Dynamic Program Slices for Unstructured Programs , 1997, IEEE Trans. Software Eng..

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