SlideShare a Scribd company logo
Indian Institute of Technology, Kharagpur
Date : 27 March-2014 Ankur Jain, Dept of Computer Sc & Engg., IIT Kgp
Presented By-
Ankur Jain (13CS60D02)
Programmer’s Nightmare…
Date : 27 March-2014 Ankur Jain, Dept of Computer Sc & Engg., IIT Kgp
If I change this statement in program:
What other statements would be affected?
(Impact analysis)
What other statement needs to be tested?
(Regression test)
The values live at this statement:
Defined where?
Modified Where?
(Manual Checking)
How can I abstract code?
Studies show….
Date : 27 March-2014 Ankur Jain, Dept of Computer Sc & Engg., IIT Kgp
Software testing contributes more then
50% of cost and time of SDLC
Maintainers spend nearly 50% of their
time trying to understand the program
Source: http://www.ece.cmu.edu/~koopman/des_s99/sw_testing/
Try...
Date : 27 March-2014 Ankur Jain, Dept of Computer Sc & Engg., IIT Kgp
Program Slicing!
Outline
Date : 27 March-2014 Ankur Jain, Dept of Computer Sc & Engg., IIT Kgp
 Introduction
 Types of Slicing
 Program Models
 Flow based
 Dependency based
 Slicing Algorithms
 Challenges
 Directions of research
Proposed by…
Date : 27 March-2014 Ankur Jain, Dept of Computer Sc & Engg., IIT Kgp
 Proposed by Mark Weiser in 1981
 Chief scientist at Xerox PARC
 As his PhD thesis
 Father of ubiquitous computing
Mark D. Weiser
(July 23, 1952 - April 27, 1999)
Basic Concepts…
Date : 27 March-2014 Ankur Jain, Dept of Computer Sc & Engg., IIT Kgp
“For statement S and variable V, the slice of program P
includes only those statements of P needed to capture the
behavior of V at S.”
Slicing Criterion (SC):
<S, V>
S = Point of interest in the program (statement)
V = Subset of variables used in the program
A program slice is a subset of a program
Example…
Date : 27 March-2014 Ankur Jain, Dept of Computer Sc & Engg., IIT Kgp
1 begin
2 read(x, y)
3 total := 0.0
4 sum := 0.0
5 if x <= 1
6 then sum := y
7 else begin
8 read(z)
9 total := x*y*z
10 end
11 write(total, sum)
12 end
SC = <11, sum>
2 read(x, y)
4 sum := 0.0
5 if x <= 1
6 then sum := y
Slicing Criterion
Why is Program Slicing Useful?
Date : 27 March-2014 Ankur Jain, Dept of Computer Sc & Engg., IIT Kgp
• Program slices are more manageable for
testing and debugging
• During testing, debugging, or understanding a program,
most of the code in the program is irrelevant to what you
are interested in.
• Program slicing provides a convenient way of filtering out
“irrelevant” code.
Slice Variants…
Date : 27 March-2014 Ankur Jain, Dept of Computer Sc & Engg., IIT Kgp
Types of slices:
 Static
 Dynamic
Direction of slice:
 Forward
 Backward
Executability of slice:
 Executable
 Non-executable
Amorphous, etc.
Froward Slices Vs Backward Slices
Date : 27 March-2014 Ankur Jain, Dept of Computer Sc & Engg., IIT Kgp
Statements which might affect
the value of variables in V
Statements which might be
affected by the values of
variables in V
int i, sum, prd;
1. read(i);
2. prd = 1;
3. sum = 0;
4. while (i<10)
5. sum = sum + i;
6. prd = prd * i;
7. i = i + 1;
8. write(sum);
9. write(prd);For SC = <9, prd>
Slice: {1, 2, 4, 6, 7}
For SC = <2, prd>
Slice: {6, 9}
Backward Slices:
Froward Slices
Static Slice | Dynamic Slice
Date : 27 March-2014 Ankur Jain, Dept of Computer Sc & Engg., IIT Kgp
Using dynamic information
(an execution trace)
Debugging
Set of all statements that actually
affect the value of a variable at a
program point
Using static information
(a source program)
Regression Testing
Set of all statements that may
affect the value of a variable at a
program point
Example…
Date : 27 March-2014 Ankur Jain, Dept of Computer Sc & Engg., IIT Kgp
int i, sum, prd;
1. read(i);
2. prd = 1;
3. sum = 0;
4. while (i<10)
5. sum = sum + i;
6. prd = prd * i;
7. i = i + 1;
8. write(sum);
9. write(prd);
Static Slice
{1, 2, 4, 6, 7}
Dynamic Slice
For Input ‘i’ = 15
{2}
For Slicing Criteria [SC] = <9, prd>
Flow based model:
Control flow
 Data flow
Dependency based model:
 Data Dependency
 Control Dependency
Slicing Criterion
Dependency Based Model
Date : 27 March-2014 Ankur Jain, Dept of Computer Sc & Engg., IIT Kgp
Program Code
Control Flow
Graph
(CFG)
Data
Dependency
Graph (DDG)
Program
Dependency
Graph (PDG)
Forward
Dominance Tree
Control
Dependency
Graph (CDG)
Data Dependency Graph (DDG)
Date : 27 March-2014 Ankur Jain, Dept of Computer Sc & Engg., IIT Kgp
int a, b, sum;
1. read(a);
2. read(b);
3. sum = 0;
4. while(a<8)
5. sum = sum + b;
6. a = a + 1;
7. write(sum);
8. sum = b;
9. write(sum);
4 5
6
7
8
9
21 3
Data Dependency Graph
Control Flow Graph (CFG)
Date : 27 March-2014 Ankur Jain, Dept of Computer Sc & Engg., IIT Kgp
int a, b, sum;
1. read(a);
2. read(b);
3. sum = 0;
4. while(a<8)
5. sum = sum + b;
6. a = a + 1;
7. write(sum);
8. sum = b;
9. write(sum);
Start
1
Stop
4
5
3
6
2
8
7
9
True
False
True
True
True
True
True
True
True
True
True
Dominance
Date : 27 March-2014 Ankur Jain, Dept of Computer Sc & Engg., IIT Kgp
Let X and Y be two nodes in a Control flow graph
X dominates Y
If and only if
Every path from Start to Y passes through X
Y forward dominates X
The forward Dominance Tree (FDT)
1. Vertices represent statement
2. Root node of tree is exit node of the CFG
3. Arcs represent immediate forward dominance
Forward Dominance Tree (FDT): Using CFG
Date : 27 March-2014 Ankur Jain, Dept of Computer Sc & Engg., IIT Kgp
9
4 6
7
5
8
2
3
1
Start
1
Stop
4
5
3
6
2
8
7
9
True
False
True
True
True
True
True
True
True
True
True
Control Dependency Graph: Using CFG & FDT
Date : 27 March-2014 Ankur Jain, Dept of Computer Sc & Engg., IIT Kgp
4
5 6
7
8
9
2
1
3
S
1. Y is control dependent on X
2. Path in the CFG from X to Y
3. Doesn’t contain the
immediate forward
dominator of X
Y
X
X
Ifdom(4)=7
X
Y
Control Dependency Graph (CDG)
Date : 27 March-2014 Ankur Jain, Dept of Computer Sc & Engg., IIT Kgp
int a, b, sum;
1. read(a);
2. read(b);
3. sum = 0;
4. while(a<8)
5. sum = sum + b;
6. a = a + 1;
7. write(sum);
8. sum = b;
9. write(sum);
4
5 6
7
8
9
2
1
3
S
Program Dependency Graph (PDG)
Date : 27 March-2014 Ankur Jain, Dept of Computer Sc & Engg., IIT Kgp
int a, b, sum;
1. read(a);
2. read(b);
3. sum = 0;
4. while(a<8)
5. sum = sum + b;
6. a = a + 1;
7. write(sum);
8. sum = b;
9. write(sum);
Union of CDG and DDG
1
4
6
5
8
29
3
7
Data dependence
Control dependence
Limitation: A PDG can model programs with a single
function Not suitable for inter-procedural slicing
System Dependency Graph Model: by- Horwitz
Date : 27 March-2014 Ankur Jain, Dept of Computer Sc & Engg., IIT Kgp
Basic Idea:
Connect PDGs with auxiliary dependence edges
• Parse source code - one procedure at a time.
– Construct the CDG for each procedure including main.
• Add actual and formal parameter nodes:
– Connect using parameter-in, parameter-out edges
• Represent function calls
– Using call edges
• Find data dependencies:
– Perform data flow analysis of the CDGs
– Connect data dependence edges
• Add summary edges
Steps in SDG Construction
System Dependency Graph (SDG)
Date : 27 March-2014 Ankur Jain, Dept of Computer Sc & Engg., IIT Kgp
Control Dependence
Data Dependence
Call, Parameter−in,
Parameter−out
Summary Edge
bin = b
ain = a
entry add
Entry main
a = 0
b = 1
add(a, b)
a =ain
b = bin
a = a+b
c = aout
aout = a
main(){
int a, b;
a = 0;
b = 1;
c=add(a, b);
}
void add(int a, int b)
{
a = a + b;
return a;
}
Slicing an SDG: Two phase algorithm
Date : 27 March-2014 Ankur Jain, Dept of Computer Sc & Engg., IIT Kgp
Proposed by Horwitz et al
• Pass1: From the slice point:
• Traverse backward along all edges except
parameter-out edges
• Mark the reached vertices
• Pass 2: From vertices marked in Pass 1
• Traverse backwards along all edges:
• Except call and parameter-in edges
Slicing an SDG: Pass-1
Date : 27 March-2014 Ankur Jain, Dept of Computer Sc & Engg., IIT Kgp
Control Dependence
Data Dependence
Call, Parameter−in,
Parameter−out
Summary Edge
main(){
int a, b;
a = 0;
b = 1;
c=add(a, b);
}
void add(int a, int b)
{
a = a + b;
return a;
}
entry main
a = 0
b = 1
add(a, b)
entry add
a =ain
b = bin
a = a+b
aout = a
c = aout
bin = b
ain = a
Slice Point
Except parameter-out edges
Slicing an SDG: Pass-2
Date : 27 March-2014 Ankur Jain, Dept of Computer Sc & Engg., IIT Kgp
Control Dependence
Data Dependence
Call, Parameter−in,
Parameter−out
Summary Edge
main(){
int a, b;
a = 0;
b = 1;
c=add(a, b);
}
void add(int a, int b)
{
a = a + b;
return a;
}
entry
main
a = 0
b = 1 add(a, b)
entry add
a =ain
b = bin
a = a+b
aout = a
c = aout
bin = b
ain = a
Slice Point
Except call and parameter-in edges
Dynamic Slicing: Example cont…
Date : 27 March-2014 Ankur Jain, Dept of Computer Sc & Engg., IIT Kgp
Consider the following program:
Computing:
product of odd (p), sum of even (s)
Execution Trace, N=3
1,2,3,4 //intial
5,6,8,9 //i=1
5,6,7,9 //i=2
5,10 //i=3, end
Which part of the
program is responsible
for computing sum?
Dynamic Slicing: Example cont…
Date : 27 March-2014 Ankur Jain, Dept of Computer Sc & Engg., IIT Kgp
We need to compute a backward slice with slicing criterion
<(10, s)>
Dependencies:
Dynamic Data Dependence:
which variable assignment was propagated to the value of `s' ?
Dynamic Control Dependence:
which are the conditional branches that executed till line 10
and in what order?
Dynamic Slicing: Example cont…
Date : 27 March-2014 Ankur Jain, Dept of Computer Sc & Engg., IIT Kgp
For N=3
The Dynamic Slice w.r.t. (10,s)
Date : 27 March-2014 Ankur Jain, Dept of Computer Sc & Engg., IIT Kgp
Slicing Tools
Date : 27 March-2014 Ankur Jain, Dept of Computer Sc & Engg., IIT Kgp
• Unravel : Static slicing tool for ANSI C
• WET : Whole Execution Traces, dynamic slicing
• CodeSurfer : Commercial static slicing tool for C
• Performs data flow and control dependence analysis
• Indus : Static slicer for Java
• Available for Eclipse via Kaveri plugin
• JSlice : Dynamic slicing tool for Java
• SPYDER: Debugging tool
• Performs both static and dynamic slice
Further Reduction in Size of Slice…
Date : 27 March-2014 Ankur Jain, Dept of Computer Sc & Engg., IIT Kgp
Amorphous Slice:
 No Syntax Preservation
 Retaining the semantic property
Applications:
 Re-engineering
 Component Re-use
 Program Comprehension
 Testing & Maintenance
 Program Integration
Amorphous Slice: Example
Date : 27 March-2014 Ankur Jain, Dept of Computer Sc & Engg., IIT Kgp
for(i = 0,sum = a[0], biggest = sum; i<19; sum = a[++i])
if (a[i+1] > biggest)
{
biggest = a[i+1];
average = sum/20;
}
Amorphous slice
for(i = 1, biggest = a[0]; i<20; ++i)
{
if (a[i]>biggest)
biggest = a[i];
}
Traditional slice
for(i = 0,sum = a[0], biggest = sum; i<19;
sum = a[++i])
if (a[i+1] > biggest)
{
biggest = a[i+1];
}
Slicing Criterion
Loop unrolling
Challenges: For further reading…
Date : 27 March-2014 Ankur Jain, Dept of Computer Sc & Engg., IIT Kgp
 Slicing Object-Oriented Programs
 Effect of Exceptions on Control Flow
 Slicing UML Models
 Slicing of threaded programs
 Slicing Concurrent and Distributed Programs
Directions of Research
Date : 27 March-2014 Ankur Jain, Dept of Computer Sc & Engg., IIT Kgp
A Novel Fault Localization Technique
References
[1] M Weiser. 1984. “Program slicing”
IEEE Transactions on Software Engineering 10(4):352–57
[2] F. Tip. 1995. A survey of program slicing techniques. Journal of
Programming Languages 3(3): 121–89
[3] D. P.Mohapatra, R.Mall, and R. Kumar. 2006.
“ An overview of slicing techniques for object-oriented
programs” Informatica 30(2):253–77
[4] G. B.Mund, R.Mall, and S. Sarkar. 2003. “Computation of intra-procedural
dynamic program slices. Information and Software Technology 45(8):499–512.
Indian Institute of Technology, Kharagpur
Date : 27 March-2014 Ankur Jain, Dept of Computer Sc & Engg., IIT Kgp
Questions
Indian Institute of Technology, Kharagpur
Date : 27 March-2014 Ankur Jain, Dept of Computer Sc & Engg., IIT Kgp
Indian Institute of Technology, Kharagpur
Date : 27 March-2014 Ankur Jain, Dept of Computer Sc & Engg., IIT Kgp
Ad

Recommended

Types of software testing
Types of software testing
Prachi Sasankar
 
Software Project Management
Software Project Management
Ramesh Babu
 
Iterative model
Iterative model
Vaibhav Dash
 
Evolutionary models
Evolutionary models
Pihu Goel
 
Issue Tracking
Issue Tracking
Software Sustainability Institute
 
Software Development Life Cycle (SDLC)
Software Development Life Cycle (SDLC)
Angelin R
 
Regression testing
Regression testing
Mohua Amin
 
Software Engineering Process Models
Software Engineering Process Models
Satya P. Joshi
 
Notes of Software engineering and Project Management
Notes of Software engineering and Project Management
NANDINI SHARMA
 
Regression testing
Regression testing
gokilabrindha
 
Incremental process model
Incremental process model
Madushan Sandaruwan
 
COCOMO Model in software project management
COCOMO Model in software project management
Syed Hassan Ali
 
Lect4 software economics
Lect4 software economics
meena466141
 
Regression testing
Regression testing
Anamta Sayyed
 
Chapter 15 software product metrics
Chapter 15 software product metrics
SHREEHARI WADAWADAGI
 
Requirement Engineering
Requirement Engineering
University of Haripur
 
Rad model
Rad model
Sneha Chopra
 
Regression testing
Regression testing
Harsh verma
 
COCOMO MODEL 1 And 2
COCOMO MODEL 1 And 2
Awais Siddique
 
Overview of Site Reliability Engineering (SRE) & best practices
Overview of Site Reliability Engineering (SRE) & best practices
Ashutosh Agarwal
 
Software Development Life Cycle (SDLC )
Software Development Life Cycle (SDLC )
eshtiyak
 
Software process
Software process
Jennifer Polack
 
Software Metrics - Software Engineering
Software Metrics - Software Engineering
Drishti Bhalla
 
Software Engineering - Spiral Model
Software Engineering - Spiral Model
BenedictArpon
 
Concept of Failure, error, fault and defect
Concept of Failure, error, fault and defect
chaklee191
 
An Introduction to kanban
An Introduction to kanban
R M Shahidul Islam Shahed
 
Softwareenggineering lab manual
Softwareenggineering lab manual
Vivek Kumar Sinha
 
Integration testing
Integration testing
queen jemila
 
A new approach of program slicing
A new approach of program slicing
Dr Sandeep Kumar Poonia
 
SPRINT3R-MY-CITY
SPRINT3R-MY-CITY
Prathan Dansakulcharoenkit
 

More Related Content

What's hot (20)

Notes of Software engineering and Project Management
Notes of Software engineering and Project Management
NANDINI SHARMA
 
Regression testing
Regression testing
gokilabrindha
 
Incremental process model
Incremental process model
Madushan Sandaruwan
 
COCOMO Model in software project management
COCOMO Model in software project management
Syed Hassan Ali
 
Lect4 software economics
Lect4 software economics
meena466141
 
Regression testing
Regression testing
Anamta Sayyed
 
Chapter 15 software product metrics
Chapter 15 software product metrics
SHREEHARI WADAWADAGI
 
Requirement Engineering
Requirement Engineering
University of Haripur
 
Rad model
Rad model
Sneha Chopra
 
Regression testing
Regression testing
Harsh verma
 
COCOMO MODEL 1 And 2
COCOMO MODEL 1 And 2
Awais Siddique
 
Overview of Site Reliability Engineering (SRE) & best practices
Overview of Site Reliability Engineering (SRE) & best practices
Ashutosh Agarwal
 
Software Development Life Cycle (SDLC )
Software Development Life Cycle (SDLC )
eshtiyak
 
Software process
Software process
Jennifer Polack
 
Software Metrics - Software Engineering
Software Metrics - Software Engineering
Drishti Bhalla
 
Software Engineering - Spiral Model
Software Engineering - Spiral Model
BenedictArpon
 
Concept of Failure, error, fault and defect
Concept of Failure, error, fault and defect
chaklee191
 
An Introduction to kanban
An Introduction to kanban
R M Shahidul Islam Shahed
 
Softwareenggineering lab manual
Softwareenggineering lab manual
Vivek Kumar Sinha
 
Integration testing
Integration testing
queen jemila
 
Notes of Software engineering and Project Management
Notes of Software engineering and Project Management
NANDINI SHARMA
 
COCOMO Model in software project management
COCOMO Model in software project management
Syed Hassan Ali
 
Lect4 software economics
Lect4 software economics
meena466141
 
Chapter 15 software product metrics
Chapter 15 software product metrics
SHREEHARI WADAWADAGI
 
Regression testing
Regression testing
Harsh verma
 
Overview of Site Reliability Engineering (SRE) & best practices
Overview of Site Reliability Engineering (SRE) & best practices
Ashutosh Agarwal
 
Software Development Life Cycle (SDLC )
Software Development Life Cycle (SDLC )
eshtiyak
 
Software Metrics - Software Engineering
Software Metrics - Software Engineering
Drishti Bhalla
 
Software Engineering - Spiral Model
Software Engineering - Spiral Model
BenedictArpon
 
Concept of Failure, error, fault and defect
Concept of Failure, error, fault and defect
chaklee191
 
Softwareenggineering lab manual
Softwareenggineering lab manual
Vivek Kumar Sinha
 
Integration testing
Integration testing
queen jemila
 

Viewers also liked (20)

A new approach of program slicing
A new approach of program slicing
Dr Sandeep Kumar Poonia
 
SPRINT3R-MY-CITY
SPRINT3R-MY-CITY
Prathan Dansakulcharoenkit
 
Automated Debugging: Are We There Yet?
Automated Debugging: Are We There Yet?
Alex Orso
 
The HercuLeS HLS Environment
The HercuLeS HLS Environment
kaveirious
 
Umesh
Umesh
Umesh Mali
 
Model Slicing
Model Slicing
ClarkTony
 
Prepare b sc_project_-_presentatipn.ppt[1]
Prepare b sc_project_-_presentatipn.ppt[1]
Bornface Lizang'a
 
Reverse Engineering Web Applications
Reverse Engineering Web Applications
Porfirio Tramontana
 
Slicing of Object-Oriented Programs
Slicing of Object-Oriented Programs
Praveen Penumathsa
 
Introduction to computer programming
Introduction to computer programming
Sangheethaa Sukumaran
 
Graal and Truffle: One VM to Rule Them All
Graal and Truffle: One VM to Rule Them All
Thomas Wuerthinger
 
Online Examination System Report
Online Examination System Report
Ankan Banerjee
 
online examination portal project presentation
online examination portal project presentation
Shobhit Jain
 
Finaldocumentation
Finaldocumentation
asuadma
 
Unit 3 Control Flow Testing
Unit 3 Control Flow Testing
ravikhimani
 
Control Flow Testing
Control Flow Testing
Hirra Sultan
 
Project report on online examination system
Project report on online examination system
Mo Irshad Ansari
 
Online examination system Documentation
Online examination system Documentation
LehlohonoloMakoti
 
Interm codegen
Interm codegen
Anshul Sharma
 
Online examination system
Online examination system
Mr. Vikram Singh Slathia
 
Automated Debugging: Are We There Yet?
Automated Debugging: Are We There Yet?
Alex Orso
 
The HercuLeS HLS Environment
The HercuLeS HLS Environment
kaveirious
 
Model Slicing
Model Slicing
ClarkTony
 
Prepare b sc_project_-_presentatipn.ppt[1]
Prepare b sc_project_-_presentatipn.ppt[1]
Bornface Lizang'a
 
Reverse Engineering Web Applications
Reverse Engineering Web Applications
Porfirio Tramontana
 
Slicing of Object-Oriented Programs
Slicing of Object-Oriented Programs
Praveen Penumathsa
 
Introduction to computer programming
Introduction to computer programming
Sangheethaa Sukumaran
 
Graal and Truffle: One VM to Rule Them All
Graal and Truffle: One VM to Rule Them All
Thomas Wuerthinger
 
Online Examination System Report
Online Examination System Report
Ankan Banerjee
 
online examination portal project presentation
online examination portal project presentation
Shobhit Jain
 
Finaldocumentation
Finaldocumentation
asuadma
 
Unit 3 Control Flow Testing
Unit 3 Control Flow Testing
ravikhimani
 
Control Flow Testing
Control Flow Testing
Hirra Sultan
 
Project report on online examination system
Project report on online examination system
Mo Irshad Ansari
 
Online examination system Documentation
Online examination system Documentation
LehlohonoloMakoti
 
Ad

Similar to Programing Slicing and Its applications (20)

Water Quality Index Calculation of River Ganga using Decision Tree Algorithm
Water Quality Index Calculation of River Ganga using Decision Tree Algorithm
IRJET Journal
 
Software estimation techniques
Software estimation techniques
Tan Tran
 
Static analysis works for mission-critical systems, why not yours?
Static analysis works for mission-critical systems, why not yours?
Rogue Wave Software
 
Real Estate Investment Advising Using Machine Learning
Real Estate Investment Advising Using Machine Learning
IRJET Journal
 
IRJET - Automated Fraud Detection Framework in Examination Halls
IRJET - Automated Fraud Detection Framework in Examination Halls
IRJET Journal
 
IRJET- Deep Learning Model to Predict Hardware Performance
IRJET- Deep Learning Model to Predict Hardware Performance
IRJET Journal
 
IRJET- Analysis of PV Fed Vector Controlled Induction Motor Drive
IRJET- Analysis of PV Fed Vector Controlled Induction Motor Drive
IRJET Journal
 
Static Slicing Technique with Algorithmic Approach
Static Slicing Technique with Algorithmic Approach
IOSR Journals
 
Artificial Neural Network Based Graphical User Interface for Estimation of Fa...
Artificial Neural Network Based Graphical User Interface for Estimation of Fa...
ijsrd.com
 
Artificial Neural Network Based Graphical User Interface for Estimation of Fa...
Artificial Neural Network Based Graphical User Interface for Estimation of Fa...
ijsrd.com
 
A Firefly based improved clustering algorithm
A Firefly based improved clustering algorithm
IRJET Journal
 
[Paper Review] Personalized Top-N Sequential Recommendation via Convolutional...
[Paper Review] Personalized Top-N Sequential Recommendation via Convolutional...
Jihoo Kim
 
From sensor readings to prediction: on the process of developing practical so...
From sensor readings to prediction: on the process of developing practical so...
Manuel Martín
 
AIRLINE FARE PRICE PREDICTION
AIRLINE FARE PRICE PREDICTION
IRJET Journal
 
Integration of Principal Component Analysis and Support Vector Regression fo...
Integration of Principal Component Analysis and Support Vector Regression fo...
IJCSIS Research Publications
 
IRJET- Unabridged Review of Supervised Machine Learning Regression and Classi...
IRJET- Unabridged Review of Supervised Machine Learning Regression and Classi...
IRJET Journal
 
Se exe 6
Se exe 6
grandhiprasuna
 
Ppig2014 problem solvingpaths
Ppig2014 problem solvingpaths
Roya Hosseini
 
Machine Learning, K-means Algorithm Implementation with R
Machine Learning, K-means Algorithm Implementation with R
IRJET Journal
 
Python Programming Unit 4 Problem Solving and Data Analysis
Python Programming Unit 4 Problem Solving and Data Analysis
priyanshi25121980
 
Water Quality Index Calculation of River Ganga using Decision Tree Algorithm
Water Quality Index Calculation of River Ganga using Decision Tree Algorithm
IRJET Journal
 
Software estimation techniques
Software estimation techniques
Tan Tran
 
Static analysis works for mission-critical systems, why not yours?
Static analysis works for mission-critical systems, why not yours?
Rogue Wave Software
 
Real Estate Investment Advising Using Machine Learning
Real Estate Investment Advising Using Machine Learning
IRJET Journal
 
IRJET - Automated Fraud Detection Framework in Examination Halls
IRJET - Automated Fraud Detection Framework in Examination Halls
IRJET Journal
 
IRJET- Deep Learning Model to Predict Hardware Performance
IRJET- Deep Learning Model to Predict Hardware Performance
IRJET Journal
 
IRJET- Analysis of PV Fed Vector Controlled Induction Motor Drive
IRJET- Analysis of PV Fed Vector Controlled Induction Motor Drive
IRJET Journal
 
Static Slicing Technique with Algorithmic Approach
Static Slicing Technique with Algorithmic Approach
IOSR Journals
 
Artificial Neural Network Based Graphical User Interface for Estimation of Fa...
Artificial Neural Network Based Graphical User Interface for Estimation of Fa...
ijsrd.com
 
Artificial Neural Network Based Graphical User Interface for Estimation of Fa...
Artificial Neural Network Based Graphical User Interface for Estimation of Fa...
ijsrd.com
 
A Firefly based improved clustering algorithm
A Firefly based improved clustering algorithm
IRJET Journal
 
[Paper Review] Personalized Top-N Sequential Recommendation via Convolutional...
[Paper Review] Personalized Top-N Sequential Recommendation via Convolutional...
Jihoo Kim
 
From sensor readings to prediction: on the process of developing practical so...
From sensor readings to prediction: on the process of developing practical so...
Manuel Martín
 
AIRLINE FARE PRICE PREDICTION
AIRLINE FARE PRICE PREDICTION
IRJET Journal
 
Integration of Principal Component Analysis and Support Vector Regression fo...
Integration of Principal Component Analysis and Support Vector Regression fo...
IJCSIS Research Publications
 
IRJET- Unabridged Review of Supervised Machine Learning Regression and Classi...
IRJET- Unabridged Review of Supervised Machine Learning Regression and Classi...
IRJET Journal
 
Ppig2014 problem solvingpaths
Ppig2014 problem solvingpaths
Roya Hosseini
 
Machine Learning, K-means Algorithm Implementation with R
Machine Learning, K-means Algorithm Implementation with R
IRJET Journal
 
Python Programming Unit 4 Problem Solving and Data Analysis
Python Programming Unit 4 Problem Solving and Data Analysis
priyanshi25121980
 
Ad

Recently uploaded (20)

Key Challenges in Troubleshooting Customer On-Premise Applications
Key Challenges in Troubleshooting Customer On-Premise Applications
Tier1 app
 
Porting Qt 5 QML Modules to Qt 6 Webinar
Porting Qt 5 QML Modules to Qt 6 Webinar
ICS
 
Making significant Software Architecture decisions
Making significant Software Architecture decisions
Bert Jan Schrijver
 
Best MLM Compensation Plans for Network Marketing Success in 2025
Best MLM Compensation Plans for Network Marketing Success in 2025
LETSCMS Pvt. Ltd.
 
Streamlining CI/CD with FME Flow: A Practical Guide
Streamlining CI/CD with FME Flow: A Practical Guide
Safe Software
 
HYBRIDIZATION OF ALKANES AND ALKENES ...
HYBRIDIZATION OF ALKANES AND ALKENES ...
karishmaduhijod1
 
Milwaukee Marketo User Group June 2025 - Optimize and Enhance Efficiency - Sm...
Milwaukee Marketo User Group June 2025 - Optimize and Enhance Efficiency - Sm...
BradBedford3
 
Women in Tech: Marketo Engage User Group - June 2025 - AJO with AWS
Women in Tech: Marketo Engage User Group - June 2025 - AJO with AWS
BradBedford3
 
Complete WordPress Programming Guidance Book
Complete WordPress Programming Guidance Book
Shabista Imam
 
Simplify Task, Team, and Project Management with Orangescrum Work
Simplify Task, Team, and Project Management with Orangescrum Work
Orangescrum
 
Folding Cheat Sheet # 9 - List Unfolding 𝑢𝑛𝑓𝑜𝑙𝑑 as the Computational Dual of ...
Folding Cheat Sheet # 9 - List Unfolding 𝑢𝑛𝑓𝑜𝑙𝑑 as the Computational Dual of ...
Philip Schwarz
 
SAP PM Module Level-IV Training Complete.ppt
SAP PM Module Level-IV Training Complete.ppt
MuhammadShaheryar36
 
Heat Treatment Process Automation in India
Heat Treatment Process Automation in India
Reckers Mechatronics
 
Canva Pro Crack Free Download 2025-FREE LATEST
Canva Pro Crack Free Download 2025-FREE LATEST
grete1122g
 
Advance Doctor Appointment Booking App With Online Payment
Advance Doctor Appointment Booking App With Online Payment
AxisTechnolabs
 
Test Case Design Techniques – Practical Examples & Best Practices in Software...
Test Case Design Techniques – Practical Examples & Best Practices in Software...
Muhammad Fahad Bashir
 
Smadav Pro 2025 Rev 15.4 Crack Full Version With Registration Key
Smadav Pro 2025 Rev 15.4 Crack Full Version With Registration Key
joybepari360
 
arctitecture application system design os dsa
arctitecture application system design os dsa
za241967
 
Application Modernization with Choreo - The AI-Native Internal Developer Plat...
Application Modernization with Choreo - The AI-Native Internal Developer Plat...
WSO2
 
Decipher SEO Solutions for your startup needs.
Decipher SEO Solutions for your startup needs.
mathai2
 
Key Challenges in Troubleshooting Customer On-Premise Applications
Key Challenges in Troubleshooting Customer On-Premise Applications
Tier1 app
 
Porting Qt 5 QML Modules to Qt 6 Webinar
Porting Qt 5 QML Modules to Qt 6 Webinar
ICS
 
Making significant Software Architecture decisions
Making significant Software Architecture decisions
Bert Jan Schrijver
 
Best MLM Compensation Plans for Network Marketing Success in 2025
Best MLM Compensation Plans for Network Marketing Success in 2025
LETSCMS Pvt. Ltd.
 
Streamlining CI/CD with FME Flow: A Practical Guide
Streamlining CI/CD with FME Flow: A Practical Guide
Safe Software
 
HYBRIDIZATION OF ALKANES AND ALKENES ...
HYBRIDIZATION OF ALKANES AND ALKENES ...
karishmaduhijod1
 
Milwaukee Marketo User Group June 2025 - Optimize and Enhance Efficiency - Sm...
Milwaukee Marketo User Group June 2025 - Optimize and Enhance Efficiency - Sm...
BradBedford3
 
Women in Tech: Marketo Engage User Group - June 2025 - AJO with AWS
Women in Tech: Marketo Engage User Group - June 2025 - AJO with AWS
BradBedford3
 
Complete WordPress Programming Guidance Book
Complete WordPress Programming Guidance Book
Shabista Imam
 
Simplify Task, Team, and Project Management with Orangescrum Work
Simplify Task, Team, and Project Management with Orangescrum Work
Orangescrum
 
Folding Cheat Sheet # 9 - List Unfolding 𝑢𝑛𝑓𝑜𝑙𝑑 as the Computational Dual of ...
Folding Cheat Sheet # 9 - List Unfolding 𝑢𝑛𝑓𝑜𝑙𝑑 as the Computational Dual of ...
Philip Schwarz
 
SAP PM Module Level-IV Training Complete.ppt
SAP PM Module Level-IV Training Complete.ppt
MuhammadShaheryar36
 
Heat Treatment Process Automation in India
Heat Treatment Process Automation in India
Reckers Mechatronics
 
Canva Pro Crack Free Download 2025-FREE LATEST
Canva Pro Crack Free Download 2025-FREE LATEST
grete1122g
 
Advance Doctor Appointment Booking App With Online Payment
Advance Doctor Appointment Booking App With Online Payment
AxisTechnolabs
 
Test Case Design Techniques – Practical Examples & Best Practices in Software...
Test Case Design Techniques – Practical Examples & Best Practices in Software...
Muhammad Fahad Bashir
 
Smadav Pro 2025 Rev 15.4 Crack Full Version With Registration Key
Smadav Pro 2025 Rev 15.4 Crack Full Version With Registration Key
joybepari360
 
arctitecture application system design os dsa
arctitecture application system design os dsa
za241967
 
Application Modernization with Choreo - The AI-Native Internal Developer Plat...
Application Modernization with Choreo - The AI-Native Internal Developer Plat...
WSO2
 
Decipher SEO Solutions for your startup needs.
Decipher SEO Solutions for your startup needs.
mathai2
 

Programing Slicing and Its applications

  • 1. Indian Institute of Technology, Kharagpur Date : 27 March-2014 Ankur Jain, Dept of Computer Sc & Engg., IIT Kgp Presented By- Ankur Jain (13CS60D02)
  • 2. Programmer’s Nightmare… Date : 27 March-2014 Ankur Jain, Dept of Computer Sc & Engg., IIT Kgp If I change this statement in program: What other statements would be affected? (Impact analysis) What other statement needs to be tested? (Regression test) The values live at this statement: Defined where? Modified Where? (Manual Checking) How can I abstract code?
  • 3. Studies show…. Date : 27 March-2014 Ankur Jain, Dept of Computer Sc & Engg., IIT Kgp Software testing contributes more then 50% of cost and time of SDLC Maintainers spend nearly 50% of their time trying to understand the program Source: http://www.ece.cmu.edu/~koopman/des_s99/sw_testing/
  • 4. Try... Date : 27 March-2014 Ankur Jain, Dept of Computer Sc & Engg., IIT Kgp Program Slicing!
  • 5. Outline Date : 27 March-2014 Ankur Jain, Dept of Computer Sc & Engg., IIT Kgp  Introduction  Types of Slicing  Program Models  Flow based  Dependency based  Slicing Algorithms  Challenges  Directions of research
  • 6. Proposed by… Date : 27 March-2014 Ankur Jain, Dept of Computer Sc & Engg., IIT Kgp  Proposed by Mark Weiser in 1981  Chief scientist at Xerox PARC  As his PhD thesis  Father of ubiquitous computing Mark D. Weiser (July 23, 1952 - April 27, 1999)
  • 7. Basic Concepts… Date : 27 March-2014 Ankur Jain, Dept of Computer Sc & Engg., IIT Kgp “For statement S and variable V, the slice of program P includes only those statements of P needed to capture the behavior of V at S.” Slicing Criterion (SC): <S, V> S = Point of interest in the program (statement) V = Subset of variables used in the program A program slice is a subset of a program
  • 8. Example… Date : 27 March-2014 Ankur Jain, Dept of Computer Sc & Engg., IIT Kgp 1 begin 2 read(x, y) 3 total := 0.0 4 sum := 0.0 5 if x <= 1 6 then sum := y 7 else begin 8 read(z) 9 total := x*y*z 10 end 11 write(total, sum) 12 end SC = <11, sum> 2 read(x, y) 4 sum := 0.0 5 if x <= 1 6 then sum := y Slicing Criterion
  • 9. Why is Program Slicing Useful? Date : 27 March-2014 Ankur Jain, Dept of Computer Sc & Engg., IIT Kgp • Program slices are more manageable for testing and debugging • During testing, debugging, or understanding a program, most of the code in the program is irrelevant to what you are interested in. • Program slicing provides a convenient way of filtering out “irrelevant” code.
  • 10. Slice Variants… Date : 27 March-2014 Ankur Jain, Dept of Computer Sc & Engg., IIT Kgp Types of slices:  Static  Dynamic Direction of slice:  Forward  Backward Executability of slice:  Executable  Non-executable Amorphous, etc.
  • 11. Froward Slices Vs Backward Slices Date : 27 March-2014 Ankur Jain, Dept of Computer Sc & Engg., IIT Kgp Statements which might affect the value of variables in V Statements which might be affected by the values of variables in V int i, sum, prd; 1. read(i); 2. prd = 1; 3. sum = 0; 4. while (i<10) 5. sum = sum + i; 6. prd = prd * i; 7. i = i + 1; 8. write(sum); 9. write(prd);For SC = <9, prd> Slice: {1, 2, 4, 6, 7} For SC = <2, prd> Slice: {6, 9} Backward Slices: Froward Slices
  • 12. Static Slice | Dynamic Slice Date : 27 March-2014 Ankur Jain, Dept of Computer Sc & Engg., IIT Kgp Using dynamic information (an execution trace) Debugging Set of all statements that actually affect the value of a variable at a program point Using static information (a source program) Regression Testing Set of all statements that may affect the value of a variable at a program point
  • 13. Example… Date : 27 March-2014 Ankur Jain, Dept of Computer Sc & Engg., IIT Kgp int i, sum, prd; 1. read(i); 2. prd = 1; 3. sum = 0; 4. while (i<10) 5. sum = sum + i; 6. prd = prd * i; 7. i = i + 1; 8. write(sum); 9. write(prd); Static Slice {1, 2, 4, 6, 7} Dynamic Slice For Input ‘i’ = 15 {2} For Slicing Criteria [SC] = <9, prd> Flow based model: Control flow  Data flow Dependency based model:  Data Dependency  Control Dependency Slicing Criterion
  • 14. Dependency Based Model Date : 27 March-2014 Ankur Jain, Dept of Computer Sc & Engg., IIT Kgp Program Code Control Flow Graph (CFG) Data Dependency Graph (DDG) Program Dependency Graph (PDG) Forward Dominance Tree Control Dependency Graph (CDG)
  • 15. Data Dependency Graph (DDG) Date : 27 March-2014 Ankur Jain, Dept of Computer Sc & Engg., IIT Kgp int a, b, sum; 1. read(a); 2. read(b); 3. sum = 0; 4. while(a<8) 5. sum = sum + b; 6. a = a + 1; 7. write(sum); 8. sum = b; 9. write(sum); 4 5 6 7 8 9 21 3 Data Dependency Graph
  • 16. Control Flow Graph (CFG) Date : 27 March-2014 Ankur Jain, Dept of Computer Sc & Engg., IIT Kgp int a, b, sum; 1. read(a); 2. read(b); 3. sum = 0; 4. while(a<8) 5. sum = sum + b; 6. a = a + 1; 7. write(sum); 8. sum = b; 9. write(sum); Start 1 Stop 4 5 3 6 2 8 7 9 True False True True True True True True True True True
  • 17. Dominance Date : 27 March-2014 Ankur Jain, Dept of Computer Sc & Engg., IIT Kgp Let X and Y be two nodes in a Control flow graph X dominates Y If and only if Every path from Start to Y passes through X Y forward dominates X The forward Dominance Tree (FDT) 1. Vertices represent statement 2. Root node of tree is exit node of the CFG 3. Arcs represent immediate forward dominance
  • 18. Forward Dominance Tree (FDT): Using CFG Date : 27 March-2014 Ankur Jain, Dept of Computer Sc & Engg., IIT Kgp 9 4 6 7 5 8 2 3 1 Start 1 Stop 4 5 3 6 2 8 7 9 True False True True True True True True True True True
  • 19. Control Dependency Graph: Using CFG & FDT Date : 27 March-2014 Ankur Jain, Dept of Computer Sc & Engg., IIT Kgp 4 5 6 7 8 9 2 1 3 S 1. Y is control dependent on X 2. Path in the CFG from X to Y 3. Doesn’t contain the immediate forward dominator of X Y X X Ifdom(4)=7 X Y
  • 20. Control Dependency Graph (CDG) Date : 27 March-2014 Ankur Jain, Dept of Computer Sc & Engg., IIT Kgp int a, b, sum; 1. read(a); 2. read(b); 3. sum = 0; 4. while(a<8) 5. sum = sum + b; 6. a = a + 1; 7. write(sum); 8. sum = b; 9. write(sum); 4 5 6 7 8 9 2 1 3 S
  • 21. Program Dependency Graph (PDG) Date : 27 March-2014 Ankur Jain, Dept of Computer Sc & Engg., IIT Kgp int a, b, sum; 1. read(a); 2. read(b); 3. sum = 0; 4. while(a<8) 5. sum = sum + b; 6. a = a + 1; 7. write(sum); 8. sum = b; 9. write(sum); Union of CDG and DDG 1 4 6 5 8 29 3 7 Data dependence Control dependence Limitation: A PDG can model programs with a single function Not suitable for inter-procedural slicing
  • 22. System Dependency Graph Model: by- Horwitz Date : 27 March-2014 Ankur Jain, Dept of Computer Sc & Engg., IIT Kgp Basic Idea: Connect PDGs with auxiliary dependence edges • Parse source code - one procedure at a time. – Construct the CDG for each procedure including main. • Add actual and formal parameter nodes: – Connect using parameter-in, parameter-out edges • Represent function calls – Using call edges • Find data dependencies: – Perform data flow analysis of the CDGs – Connect data dependence edges • Add summary edges Steps in SDG Construction
  • 23. System Dependency Graph (SDG) Date : 27 March-2014 Ankur Jain, Dept of Computer Sc & Engg., IIT Kgp Control Dependence Data Dependence Call, Parameter−in, Parameter−out Summary Edge bin = b ain = a entry add Entry main a = 0 b = 1 add(a, b) a =ain b = bin a = a+b c = aout aout = a main(){ int a, b; a = 0; b = 1; c=add(a, b); } void add(int a, int b) { a = a + b; return a; }
  • 24. Slicing an SDG: Two phase algorithm Date : 27 March-2014 Ankur Jain, Dept of Computer Sc & Engg., IIT Kgp Proposed by Horwitz et al • Pass1: From the slice point: • Traverse backward along all edges except parameter-out edges • Mark the reached vertices • Pass 2: From vertices marked in Pass 1 • Traverse backwards along all edges: • Except call and parameter-in edges
  • 25. Slicing an SDG: Pass-1 Date : 27 March-2014 Ankur Jain, Dept of Computer Sc & Engg., IIT Kgp Control Dependence Data Dependence Call, Parameter−in, Parameter−out Summary Edge main(){ int a, b; a = 0; b = 1; c=add(a, b); } void add(int a, int b) { a = a + b; return a; } entry main a = 0 b = 1 add(a, b) entry add a =ain b = bin a = a+b aout = a c = aout bin = b ain = a Slice Point Except parameter-out edges
  • 26. Slicing an SDG: Pass-2 Date : 27 March-2014 Ankur Jain, Dept of Computer Sc & Engg., IIT Kgp Control Dependence Data Dependence Call, Parameter−in, Parameter−out Summary Edge main(){ int a, b; a = 0; b = 1; c=add(a, b); } void add(int a, int b) { a = a + b; return a; } entry main a = 0 b = 1 add(a, b) entry add a =ain b = bin a = a+b aout = a c = aout bin = b ain = a Slice Point Except call and parameter-in edges
  • 27. Dynamic Slicing: Example cont… Date : 27 March-2014 Ankur Jain, Dept of Computer Sc & Engg., IIT Kgp Consider the following program: Computing: product of odd (p), sum of even (s) Execution Trace, N=3 1,2,3,4 //intial 5,6,8,9 //i=1 5,6,7,9 //i=2 5,10 //i=3, end Which part of the program is responsible for computing sum?
  • 28. Dynamic Slicing: Example cont… Date : 27 March-2014 Ankur Jain, Dept of Computer Sc & Engg., IIT Kgp We need to compute a backward slice with slicing criterion <(10, s)> Dependencies: Dynamic Data Dependence: which variable assignment was propagated to the value of `s' ? Dynamic Control Dependence: which are the conditional branches that executed till line 10 and in what order?
  • 29. Dynamic Slicing: Example cont… Date : 27 March-2014 Ankur Jain, Dept of Computer Sc & Engg., IIT Kgp For N=3
  • 30. The Dynamic Slice w.r.t. (10,s) Date : 27 March-2014 Ankur Jain, Dept of Computer Sc & Engg., IIT Kgp
  • 31. Slicing Tools Date : 27 March-2014 Ankur Jain, Dept of Computer Sc & Engg., IIT Kgp • Unravel : Static slicing tool for ANSI C • WET : Whole Execution Traces, dynamic slicing • CodeSurfer : Commercial static slicing tool for C • Performs data flow and control dependence analysis • Indus : Static slicer for Java • Available for Eclipse via Kaveri plugin • JSlice : Dynamic slicing tool for Java • SPYDER: Debugging tool • Performs both static and dynamic slice
  • 32. Further Reduction in Size of Slice… Date : 27 March-2014 Ankur Jain, Dept of Computer Sc & Engg., IIT Kgp Amorphous Slice:  No Syntax Preservation  Retaining the semantic property Applications:  Re-engineering  Component Re-use  Program Comprehension  Testing & Maintenance  Program Integration
  • 33. Amorphous Slice: Example Date : 27 March-2014 Ankur Jain, Dept of Computer Sc & Engg., IIT Kgp for(i = 0,sum = a[0], biggest = sum; i<19; sum = a[++i]) if (a[i+1] > biggest) { biggest = a[i+1]; average = sum/20; } Amorphous slice for(i = 1, biggest = a[0]; i<20; ++i) { if (a[i]>biggest) biggest = a[i]; } Traditional slice for(i = 0,sum = a[0], biggest = sum; i<19; sum = a[++i]) if (a[i+1] > biggest) { biggest = a[i+1]; } Slicing Criterion Loop unrolling
  • 34. Challenges: For further reading… Date : 27 March-2014 Ankur Jain, Dept of Computer Sc & Engg., IIT Kgp  Slicing Object-Oriented Programs  Effect of Exceptions on Control Flow  Slicing UML Models  Slicing of threaded programs  Slicing Concurrent and Distributed Programs
  • 35. Directions of Research Date : 27 March-2014 Ankur Jain, Dept of Computer Sc & Engg., IIT Kgp A Novel Fault Localization Technique
  • 36. References [1] M Weiser. 1984. “Program slicing” IEEE Transactions on Software Engineering 10(4):352–57 [2] F. Tip. 1995. A survey of program slicing techniques. Journal of Programming Languages 3(3): 121–89 [3] D. P.Mohapatra, R.Mall, and R. Kumar. 2006. “ An overview of slicing techniques for object-oriented programs” Informatica 30(2):253–77 [4] G. B.Mund, R.Mall, and S. Sarkar. 2003. “Computation of intra-procedural dynamic program slices. Information and Software Technology 45(8):499–512. Indian Institute of Technology, Kharagpur Date : 27 March-2014 Ankur Jain, Dept of Computer Sc & Engg., IIT Kgp
  • 37. Questions Indian Institute of Technology, Kharagpur Date : 27 March-2014 Ankur Jain, Dept of Computer Sc & Engg., IIT Kgp
  • 38. Indian Institute of Technology, Kharagpur Date : 27 March-2014 Ankur Jain, Dept of Computer Sc & Engg., IIT Kgp