Program slicing can be used to assist the program comprehension process.
Program slicing can be used in order for the maintainer to concentrate only on the modified parts of the program.
Program slicing techniques are based on the manipulation of control flow and data flow graphs.
Since Weiser's first technique many program slicing techniques has been introduced such as dynamic slicing forward slicing and decomposition slicing and conditioned slicing.
An empirical study of amorphous slicing as a program comprehension support tool.
Program slicing enhances a verification technique combining static and dynamic analysis.
Building executable union slices using condi- tioned slicing.
Consus: A scalable approach to conditioned slicing.
Backward Slicing and Forward Slicing: As already discussed, a backward slice contains all parts of the program that might directly or indirectly affect the slicing criterion .
A forward slice with respect to a slicing criterion < s, V > contains all parts of the program that might be affected by the variables in V used or defined at the program point s [84, 98].
Intra-procedural Slicing and Inter-procedural Slicing: Intra-procedural slicing computes slices within a single procedure.
For object-oriented programs, intra-procedural slicing is meaning less as practical object-oriented programs contain more than one method.
Other Slicing Categories: Many examples of slicing are combinations of the categories above.
There are variants of slicing in between the two extremes of static and dynamic, where some but not all properties of the initial state are known.
This section describes the use of program slicing techniques in various applications.