Abstract
Program understanding is an important aspect in Software Maintenance and Reengineering. Understanding the program is related to execution behaviour and relationship of variable involved in the program. The task of finding all statements in a program that directly or indirectly influence the value for an occurrence of a variable gives the set of statements that can affect the value of a variable at some point in a program is called a program slice. Program slicing is a technique for extracting parts of computer programs by tracing the programs’ control and data flow related to some data item. This technique is applicable in various areas such as debugging, program comprehension and understanding, program integration, cohesion measurement, re-engineering, maintenance, testing where it is useful to be able to focus on relevant parts of large programs. This paper focuses on the various slicing techniques (not limited to) like static slicing, quasi static slicing, dynamic slicing and conditional slicing. This paper also includes various methods in performing the slicing like forward slicing, backward slicing, syntactic slicing and semantic slicing. The slicing of a program is carried out using Java which is a object oriented programming language.
Highlights
One of the program analysis techniques is program slicing
A slice is an executable subset of program statements that preserves the original behaviour of the program with respect to a subset of variables of interest and at a given program point. Several variants of this notion have been proposed in the literature, such as dynamic slicing [5], quasi static slicing [4], simultaneous dynamic slicing [6], and conditioned slicing [7]
Static slicing can be approached in terms of program reachability using Program Dependence Graph (PDG) [9][10][11]
Summary
One of the program analysis techniques is program slicing. The main applications of program slicing include various software engineering activities such as program understanding, debugging, testing, program maintenance, complexity measurement and so on. A slice is an executable subset of program statements that preserves the original behaviour of the program with respect to a subset of variables of interest and at a given program point. Several variants of this notion have been proposed in the literature, such as dynamic slicing [5], quasi static slicing [4], simultaneous dynamic slicing [6], and conditioned slicing [7]. Computational Method: The method of computing the slice is by solving the data flow equations It may be done through graph reachability in various dependence graphs [33]. Output format: The format that can be obtained after slicing may seem to be in the form of code which is equivalent to source code or it may be a dependence graph or may be in the form of execution tree
Talk to us
Join us for a 30 min session where you can share your feedback and ask us any queries you have