A Survey of Petri Nets Slicing <s> APPLICATION OF SLICING AND POSSIBLE IMPROVEMENTS <s> Program slices are useful in debugging, testing, maintenance, and understanding of programs. The conventional notion of a program slice, the static slice , is the set of all statements that might affect the value of a given variable occurrence. In this paper, we investigate the concept of the dynamic slice consisting of all statements that actually affect the value of a variable occurrence for a given program input. The sensitivity of dynamic slicing to particular program inputs makes it more useful in program debugging and testing than static slicing. Several approaches for computing dynamic slices are examined. The notion of a Dynamic Dependence Graph and its use in computing dynamic slices is discussed. The Dynamic Dependence Graph may be unbounded in length; therefore, we introduce the economical concept of a Reduced Dynamic Dependence Graph, which is proportional in size to the number of dynamic slices arising during the program execution. <s> BIB001 </s> A Survey of Petri Nets Slicing <s> APPLICATION OF SLICING AND POSSIBLE IMPROVEMENTS <s> Abstract Program slicing is a useful tool in program debugging [25, 26]. Dynamic slicing introduced in this paper differs from the original static slicing in that it is defined on the basis of a computation. A dynamic program slice is an executable part of the original program that preserves part of the program's behavior for a specific input with respect to a subset of selected variables, rather than for all possible computations. As a result, the size of a slice can be significantly reduced. Moreover, the approach allows us to treat array elements and fields in dynamic records as individual variables. This leads to a further reduction of the slice size. <s> BIB002 </s> A Survey of Petri Nets Slicing <s> APPLICATION OF SLICING AND POSSIBLE IMPROVEMENTS <s> Reverse engineering involves a great deal of effort in comprehension of the current implementation of a software system and the ways in which it differs from the original design. Automated support tools are critical to the success of such efforts. It is shown how program slicing techniques can be employed to assist in the comprehension of large software systems, through traditional slicing techniques at the statement level, and through a new technique, interface slicing, at the module level. > <s> BIB003 </s> A Survey of Petri Nets Slicing <s> APPLICATION OF SLICING AND POSSIBLE IMPROVEMENTS <s> Abstract Software maintainers are faced with the task of regression testing: retesting a program after a modification. The goal of regression testing is to ensure that bug fixes and new functionality do not adversely affect the correct functionality inherited from the original program. Regression testing often involves running a large program on a large number of test cases; thus, it can be expensive in terms of both human and machine time. Many approaches for reducing the cost of regression testing have been proposed. Those that make use of program slicing are surveyed. <s> BIB004
Slicing has been playing a valuable role in the domain of verification and validation (especially in programs verification) for more than two decades BIB001 BIB003 BIB004  BIB002 . The major portion of research work on slicing is dedicated to the improvement of slicing algorithms in such a way that verification effort can be minimized. Let's now discuss some applications of slicing in general and some possible improvements to slicing algorithms, which can be adapted. Note that the discussion is restricted to state event model's slicing.