SlideShare a Scribd company logo
1 of 38
Download to read offline
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

More Related Content

What's hot

RMMM-Risk Management,Mitigation and Monitoring.
RMMM-Risk Management,Mitigation and Monitoring.RMMM-Risk Management,Mitigation and Monitoring.
RMMM-Risk Management,Mitigation and Monitoring.Aparna Nayak
 
Black Box Testing
Black Box TestingBlack Box Testing
Black Box TestingTestbytes
 
Chapter 2 software development life cycle models
Chapter 2 software development life cycle modelsChapter 2 software development life cycle models
Chapter 2 software development life cycle modelsPiyush Gogia
 
Software Quality Assurance
Software Quality AssuranceSoftware Quality Assurance
Software Quality AssuranceSachithra Gayan
 
Cause effect graphing technique
Cause effect graphing techniqueCause effect graphing technique
Cause effect graphing techniqueAnkush Kumar
 
Lecture 8: Decision Trees & k-Nearest Neighbors
Lecture 8: Decision Trees & k-Nearest NeighborsLecture 8: Decision Trees & k-Nearest Neighbors
Lecture 8: Decision Trees & k-Nearest NeighborsMarina Santini
 
Software Metrics - Software Engineering
Software Metrics - Software EngineeringSoftware Metrics - Software Engineering
Software Metrics - Software EngineeringDrishti Bhalla
 
Software Maintenance and Evolution
Software Maintenance and EvolutionSoftware Maintenance and Evolution
Software Maintenance and Evolutionkim.mens
 
Dimension Reduction: What? Why? and How?
Dimension Reduction: What? Why? and How?Dimension Reduction: What? Why? and How?
Dimension Reduction: What? Why? and How?Kazi Toufiq Wadud
 
Performance Evaluation for Classifiers tutorial
Performance Evaluation for Classifiers tutorialPerformance Evaluation for Classifiers tutorial
Performance Evaluation for Classifiers tutorialBilkent University
 
K mean-clustering algorithm
K mean-clustering algorithmK mean-clustering algorithm
K mean-clustering algorithmparry prabhu
 
Software Engineering Fundamentals
Software Engineering FundamentalsSoftware Engineering Fundamentals
Software Engineering FundamentalsRahul Sudame
 
Software Engineering (Metrics for Process and Projects)
Software Engineering (Metrics for Process and Projects)Software Engineering (Metrics for Process and Projects)
Software Engineering (Metrics for Process and Projects)ShudipPal
 
process models- software engineering
process models- software engineeringprocess models- software engineering
process models- software engineeringArun Nair
 
Introduction to Software Project Management
Introduction to Software Project ManagementIntroduction to Software Project Management
Introduction to Software Project ManagementReetesh Gupta
 

What's hot (20)

RMMM-Risk Management,Mitigation and Monitoring.
RMMM-Risk Management,Mitigation and Monitoring.RMMM-Risk Management,Mitigation and Monitoring.
RMMM-Risk Management,Mitigation and Monitoring.
 
Black Box Testing
Black Box TestingBlack Box Testing
Black Box Testing
 
K Nearest Neighbors
K Nearest NeighborsK Nearest Neighbors
K Nearest Neighbors
 
Chapter 2 software development life cycle models
Chapter 2 software development life cycle modelsChapter 2 software development life cycle models
Chapter 2 software development life cycle models
 
Incremental model
Incremental modelIncremental model
Incremental model
 
KNN
KNN KNN
KNN
 
Software Quality Assurance
Software Quality AssuranceSoftware Quality Assurance
Software Quality Assurance
 
Cause effect graphing technique
Cause effect graphing techniqueCause effect graphing technique
Cause effect graphing technique
 
Lecture 8: Decision Trees & k-Nearest Neighbors
Lecture 8: Decision Trees & k-Nearest NeighborsLecture 8: Decision Trees & k-Nearest Neighbors
Lecture 8: Decision Trees & k-Nearest Neighbors
 
Software Crisis
Software CrisisSoftware Crisis
Software Crisis
 
SPADE -
SPADE - SPADE -
SPADE -
 
Software Metrics - Software Engineering
Software Metrics - Software EngineeringSoftware Metrics - Software Engineering
Software Metrics - Software Engineering
 
Software Maintenance and Evolution
Software Maintenance and EvolutionSoftware Maintenance and Evolution
Software Maintenance and Evolution
 
Dimension Reduction: What? Why? and How?
Dimension Reduction: What? Why? and How?Dimension Reduction: What? Why? and How?
Dimension Reduction: What? Why? and How?
 
Performance Evaluation for Classifiers tutorial
Performance Evaluation for Classifiers tutorialPerformance Evaluation for Classifiers tutorial
Performance Evaluation for Classifiers tutorial
 
K mean-clustering algorithm
K mean-clustering algorithmK mean-clustering algorithm
K mean-clustering algorithm
 
Software Engineering Fundamentals
Software Engineering FundamentalsSoftware Engineering Fundamentals
Software Engineering Fundamentals
 
Software Engineering (Metrics for Process and Projects)
Software Engineering (Metrics for Process and Projects)Software Engineering (Metrics for Process and Projects)
Software Engineering (Metrics for Process and Projects)
 
process models- software engineering
process models- software engineeringprocess models- software engineering
process models- software engineering
 
Introduction to Software Project Management
Introduction to Software Project ManagementIntroduction to Software Project Management
Introduction to Software Project Management
 

Viewers also liked

Automated Debugging: Are We There Yet?
Automated Debugging: Are We There Yet?Automated Debugging: Are We There Yet?
Automated Debugging: Are We There Yet?Alex Orso
 
The HercuLeS HLS Environment
The HercuLeS HLS EnvironmentThe HercuLeS HLS Environment
The HercuLeS HLS Environmentkaveirious
 
Model Slicing
Model SlicingModel Slicing
Model SlicingClarkTony
 
Prepare b sc_project_-_presentatipn.ppt[1]
Prepare b sc_project_-_presentatipn.ppt[1]Prepare b sc_project_-_presentatipn.ppt[1]
Prepare b sc_project_-_presentatipn.ppt[1]Bornface Lizang'a
 
Reverse Engineering Web Applications
Reverse Engineering Web ApplicationsReverse Engineering Web Applications
Reverse Engineering Web ApplicationsPorfirio Tramontana
 
Slicing of Object-Oriented Programs
Slicing of Object-Oriented ProgramsSlicing of Object-Oriented Programs
Slicing of Object-Oriented ProgramsPraveen Penumathsa
 
Introduction to computer programming
Introduction to computer programmingIntroduction to computer programming
Introduction to computer programmingSangheethaa Sukumaran
 
Graal and Truffle: One VM to Rule Them All
Graal and Truffle: One VM to Rule Them AllGraal and Truffle: One VM to Rule Them All
Graal and Truffle: One VM to Rule Them AllThomas Wuerthinger
 
Online Examination System Report
Online Examination System ReportOnline Examination System Report
Online Examination System ReportAnkan Banerjee
 
online examination portal project presentation
online examination portal project presentationonline examination portal project presentation
online examination portal project presentationShobhit Jain
 
Finaldocumentation
FinaldocumentationFinaldocumentation
Finaldocumentationasuadma
 
Unit 3 Control Flow Testing
Unit 3   Control Flow TestingUnit 3   Control Flow Testing
Unit 3 Control Flow Testingravikhimani
 
Control Flow Testing
Control Flow TestingControl Flow Testing
Control Flow TestingHirra Sultan
 
Project report on online examination system
Project report on online examination systemProject report on online examination system
Project report on online examination systemMo Irshad Ansari
 
Online examination system Documentation
Online examination system DocumentationOnline examination system Documentation
Online examination system DocumentationLehlohonoloMakoti
 
Chapter 9 software maintenance
Chapter 9 software maintenanceChapter 9 software maintenance
Chapter 9 software maintenancedespicable me
 

Viewers also liked (20)

SPRINT3R-MY-CITY
SPRINT3R-MY-CITYSPRINT3R-MY-CITY
SPRINT3R-MY-CITY
 
Automated Debugging: Are We There Yet?
Automated Debugging: Are We There Yet?Automated Debugging: Are We There Yet?
Automated Debugging: Are We There Yet?
 
The HercuLeS HLS Environment
The HercuLeS HLS EnvironmentThe HercuLeS HLS Environment
The HercuLeS HLS Environment
 
Umesh
UmeshUmesh
Umesh
 
Model Slicing
Model SlicingModel Slicing
Model Slicing
 
Prepare b sc_project_-_presentatipn.ppt[1]
Prepare b sc_project_-_presentatipn.ppt[1]Prepare b sc_project_-_presentatipn.ppt[1]
Prepare b sc_project_-_presentatipn.ppt[1]
 
Reverse Engineering Web Applications
Reverse Engineering Web ApplicationsReverse Engineering Web Applications
Reverse Engineering Web Applications
 
Slicing of Object-Oriented Programs
Slicing of Object-Oriented ProgramsSlicing of Object-Oriented Programs
Slicing of Object-Oriented Programs
 
Introduction to computer programming
Introduction to computer programmingIntroduction to computer programming
Introduction to computer programming
 
Graal and Truffle: One VM to Rule Them All
Graal and Truffle: One VM to Rule Them AllGraal and Truffle: One VM to Rule Them All
Graal and Truffle: One VM to Rule Them All
 
Online Examination System Report
Online Examination System ReportOnline Examination System Report
Online Examination System Report
 
online examination portal project presentation
online examination portal project presentationonline examination portal project presentation
online examination portal project presentation
 
Finaldocumentation
FinaldocumentationFinaldocumentation
Finaldocumentation
 
Unit 3 Control Flow Testing
Unit 3   Control Flow TestingUnit 3   Control Flow Testing
Unit 3 Control Flow Testing
 
Control Flow Testing
Control Flow TestingControl Flow Testing
Control Flow Testing
 
Project report on online examination system
Project report on online examination systemProject report on online examination system
Project report on online examination system
 
Online examination system Documentation
Online examination system DocumentationOnline examination system Documentation
Online examination system Documentation
 
Interm codegen
Interm codegenInterm codegen
Interm codegen
 
Online examination system
Online examination systemOnline examination system
Online examination system
 
Chapter 9 software maintenance
Chapter 9 software maintenanceChapter 9 software maintenance
Chapter 9 software maintenance
 

Similar to Programing Slicing and Its applications

Water Quality Index Calculation of River Ganga using Decision Tree Algorithm
Water Quality Index Calculation of River Ganga using Decision Tree AlgorithmWater Quality Index Calculation of River Ganga using Decision Tree Algorithm
Water Quality Index Calculation of River Ganga using Decision Tree AlgorithmIRJET Journal
 
Software estimation techniques
Software estimation techniquesSoftware estimation techniques
Software estimation techniquesTan Tran
 
Static analysis works for mission-critical systems, why not yours?
Static analysis works for mission-critical systems, why not yours? 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 LearningReal Estate Investment Advising Using Machine Learning
Real Estate Investment Advising Using Machine LearningIRJET Journal
 
IRJET - Automated Fraud Detection Framework in Examination Halls
 IRJET - Automated Fraud Detection Framework in Examination Halls IRJET - Automated Fraud Detection Framework in Examination Halls
IRJET - Automated Fraud Detection Framework in Examination HallsIRJET Journal
 
IRJET- Deep Learning Model to Predict Hardware Performance
IRJET- Deep Learning Model to Predict Hardware PerformanceIRJET- Deep Learning Model to Predict Hardware Performance
IRJET- Deep Learning Model to Predict Hardware PerformanceIRJET Journal
 
IRJET- Analysis of PV Fed Vector Controlled Induction Motor Drive
IRJET- Analysis of PV Fed Vector Controlled Induction Motor DriveIRJET- Analysis of PV Fed Vector Controlled Induction Motor Drive
IRJET- Analysis of PV Fed Vector Controlled Induction Motor DriveIRJET Journal
 
Static Slicing Technique with Algorithmic Approach
Static Slicing Technique with Algorithmic ApproachStatic Slicing Technique with Algorithmic Approach
Static Slicing Technique with Algorithmic ApproachIOSR Journals
 
Artificial Neural Network Based Graphical User Interface for Estimation of Fa...
Artificial Neural Network Based Graphical User Interface for Estimation of Fa...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...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 algorithmA Firefly based improved clustering algorithm
A Firefly based improved clustering algorithmIRJET Journal
 
[Paper Review] Personalized Top-N Sequential Recommendation via Convolutional...
[Paper Review] Personalized Top-N Sequential Recommendation via Convolutional...[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...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 PREDICTIONAIRLINE FARE PRICE PREDICTION
AIRLINE FARE PRICE PREDICTIONIRJET Journal
 
Integration of Principal Component Analysis and Support Vector Regression fo...
 Integration of Principal Component Analysis and Support Vector Regression fo... 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- 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 solvingpathsPpig2014 problem solvingpaths
Ppig2014 problem solvingpathsRoya Hosseini
 
Machine Learning, K-means Algorithm Implementation with R
Machine Learning, K-means Algorithm Implementation with RMachine Learning, K-means Algorithm Implementation with R
Machine Learning, K-means Algorithm Implementation with RIRJET Journal
 
Application of gaussian filter with principal component analysis
Application of gaussian filter with principal component analysisApplication of gaussian filter with principal component analysis
Application of gaussian filter with principal component analysisIAEME Publication
 

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 AlgorithmWater Quality Index Calculation of River Ganga using Decision Tree Algorithm
Water Quality Index Calculation of River Ganga using Decision Tree Algorithm
 
Software estimation techniques
Software estimation techniquesSoftware estimation techniques
Software estimation techniques
 
Static analysis works for mission-critical systems, why not yours?
Static analysis works for mission-critical systems, why not yours? Static analysis works for mission-critical systems, why not yours?
Static analysis works for mission-critical systems, why not yours?
 
Real Estate Investment Advising Using Machine Learning
Real Estate Investment Advising Using Machine LearningReal Estate Investment Advising Using Machine Learning
Real Estate Investment Advising Using Machine Learning
 
IRJET - Automated Fraud Detection Framework in Examination Halls
 IRJET - Automated Fraud Detection Framework in Examination Halls IRJET - Automated Fraud Detection Framework in Examination Halls
IRJET - Automated Fraud Detection Framework in Examination Halls
 
IRJET- Deep Learning Model to Predict Hardware Performance
IRJET- Deep Learning Model to Predict Hardware PerformanceIRJET- Deep Learning Model to Predict Hardware Performance
IRJET- Deep Learning Model to Predict Hardware Performance
 
IRJET- Analysis of PV Fed Vector Controlled Induction Motor Drive
IRJET- Analysis of PV Fed Vector Controlled Induction Motor DriveIRJET- Analysis of PV Fed Vector Controlled Induction Motor Drive
IRJET- Analysis of PV Fed Vector Controlled Induction Motor Drive
 
Static Slicing Technique with Algorithmic Approach
Static Slicing Technique with Algorithmic ApproachStatic Slicing Technique with Algorithmic Approach
Static Slicing Technique with Algorithmic Approach
 
Artificial Neural Network Based Graphical User Interface for Estimation of Fa...
Artificial Neural Network Based Graphical User Interface for Estimation of Fa...Artificial Neural Network Based Graphical User Interface for Estimation of Fa...
Artificial Neural Network Based Graphical User Interface for Estimation of Fa...
 
Artificial Neural Network Based Graphical User Interface for Estimation of Fa...
Artificial Neural Network Based Graphical User Interface for Estimation of Fa...Artificial Neural Network Based Graphical User Interface for Estimation of Fa...
Artificial Neural Network Based Graphical User Interface for Estimation of Fa...
 
A Firefly based improved clustering algorithm
A Firefly based improved clustering algorithmA Firefly based improved clustering algorithm
A Firefly based improved clustering algorithm
 
[Paper Review] Personalized Top-N Sequential Recommendation via Convolutional...
[Paper Review] Personalized Top-N Sequential Recommendation via Convolutional...[Paper Review] Personalized Top-N Sequential Recommendation via Convolutional...
[Paper Review] Personalized Top-N Sequential Recommendation via Convolutional...
 
From sensor readings to prediction: on the process of developing practical so...
From sensor readings to prediction: on the process of developing practical so...From sensor readings to prediction: on the process of developing practical so...
From sensor readings to prediction: on the process of developing practical so...
 
AIRLINE FARE PRICE PREDICTION
AIRLINE FARE PRICE PREDICTIONAIRLINE FARE PRICE PREDICTION
AIRLINE FARE PRICE PREDICTION
 
Integration of Principal Component Analysis and Support Vector Regression fo...
 Integration of Principal Component Analysis and Support Vector Regression fo... Integration of Principal Component Analysis and Support Vector Regression fo...
Integration of Principal Component Analysis and Support Vector Regression fo...
 
IRJET- Unabridged Review of Supervised Machine Learning Regression and Classi...
IRJET- Unabridged Review of Supervised Machine Learning Regression and Classi...IRJET- Unabridged Review of Supervised Machine Learning Regression and Classi...
IRJET- Unabridged Review of Supervised Machine Learning Regression and Classi...
 
Se exe 6
Se exe 6Se exe 6
Se exe 6
 
Ppig2014 problem solvingpaths
Ppig2014 problem solvingpathsPpig2014 problem solvingpaths
Ppig2014 problem solvingpaths
 
Machine Learning, K-means Algorithm Implementation with R
Machine Learning, K-means Algorithm Implementation with RMachine Learning, K-means Algorithm Implementation with R
Machine Learning, K-means Algorithm Implementation with R
 
Application of gaussian filter with principal component analysis
Application of gaussian filter with principal component analysisApplication of gaussian filter with principal component analysis
Application of gaussian filter with principal component analysis
 

Recently uploaded

W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...panagenda
 
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...harshavardhanraghave
 
Introducing Microsoft’s new Enterprise Work Management (EWM) Solution
Introducing Microsoft’s new Enterprise Work Management (EWM) SolutionIntroducing Microsoft’s new Enterprise Work Management (EWM) Solution
Introducing Microsoft’s new Enterprise Work Management (EWM) SolutionOnePlan Solutions
 
A Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxA Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxComplianceQuest1
 
Software Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsSoftware Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsArshad QA
 
The Guide to Integrating Generative AI into Unified Continuous Testing Platfo...
The Guide to Integrating Generative AI into Unified Continuous Testing Platfo...The Guide to Integrating Generative AI into Unified Continuous Testing Platfo...
The Guide to Integrating Generative AI into Unified Continuous Testing Platfo...kalichargn70th171
 
How To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsHow To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsAndolasoft Inc
 
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...ICS
 
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Steffen Staab
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfkalichargn70th171
 
Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
Direct Style Effect Systems -The Print[A] Example- A Comprehension AidDirect Style Effect Systems -The Print[A] Example- A Comprehension Aid
Direct Style Effect Systems - The Print[A] Example - A Comprehension AidPhilip Schwarz
 
AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM TechniquesAI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM TechniquesVictorSzoltysek
 
10 Trends Likely to Shape Enterprise Technology in 2024
10 Trends Likely to Shape Enterprise Technology in 202410 Trends Likely to Shape Enterprise Technology in 2024
10 Trends Likely to Shape Enterprise Technology in 2024Mind IT Systems
 
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerHow To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerThousandEyes
 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsAlberto González Trastoy
 
Azure_Native_Qumulo_High_Performance_Compute_Benchmarks.pdf
Azure_Native_Qumulo_High_Performance_Compute_Benchmarks.pdfAzure_Native_Qumulo_High_Performance_Compute_Benchmarks.pdf
Azure_Native_Qumulo_High_Performance_Compute_Benchmarks.pdfryanfarris8
 
AI & Machine Learning Presentation Template
AI & Machine Learning Presentation TemplateAI & Machine Learning Presentation Template
AI & Machine Learning Presentation TemplatePresentation.STUDIO
 
How to Choose the Right Laravel Development Partner in New York City_compress...
How to Choose the Right Laravel Development Partner in New York City_compress...How to Choose the Right Laravel Development Partner in New York City_compress...
How to Choose the Right Laravel Development Partner in New York City_compress...software pro Development
 
Exploring the Best Video Editing App.pdf
Exploring the Best Video Editing App.pdfExploring the Best Video Editing App.pdf
Exploring the Best Video Editing App.pdfproinshot.com
 

Recently uploaded (20)

W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
 
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS LiveVip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
 
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
 
Introducing Microsoft’s new Enterprise Work Management (EWM) Solution
Introducing Microsoft’s new Enterprise Work Management (EWM) SolutionIntroducing Microsoft’s new Enterprise Work Management (EWM) Solution
Introducing Microsoft’s new Enterprise Work Management (EWM) Solution
 
A Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxA Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docx
 
Software Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsSoftware Quality Assurance Interview Questions
Software Quality Assurance Interview Questions
 
The Guide to Integrating Generative AI into Unified Continuous Testing Platfo...
The Guide to Integrating Generative AI into Unified Continuous Testing Platfo...The Guide to Integrating Generative AI into Unified Continuous Testing Platfo...
The Guide to Integrating Generative AI into Unified Continuous Testing Platfo...
 
How To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsHow To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.js
 
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
 
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
 
Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
Direct Style Effect Systems -The Print[A] Example- A Comprehension AidDirect Style Effect Systems -The Print[A] Example- A Comprehension Aid
Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
 
AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM TechniquesAI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
 
10 Trends Likely to Shape Enterprise Technology in 2024
10 Trends Likely to Shape Enterprise Technology in 202410 Trends Likely to Shape Enterprise Technology in 2024
10 Trends Likely to Shape Enterprise Technology in 2024
 
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerHow To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
 
Azure_Native_Qumulo_High_Performance_Compute_Benchmarks.pdf
Azure_Native_Qumulo_High_Performance_Compute_Benchmarks.pdfAzure_Native_Qumulo_High_Performance_Compute_Benchmarks.pdf
Azure_Native_Qumulo_High_Performance_Compute_Benchmarks.pdf
 
AI & Machine Learning Presentation Template
AI & Machine Learning Presentation TemplateAI & Machine Learning Presentation Template
AI & Machine Learning Presentation Template
 
How to Choose the Right Laravel Development Partner in New York City_compress...
How to Choose the Right Laravel Development Partner in New York City_compress...How to Choose the Right Laravel Development Partner in New York City_compress...
How to Choose the Right Laravel Development Partner in New York City_compress...
 
Exploring the Best Video Editing App.pdf
Exploring the Best Video Editing App.pdfExploring the Best Video Editing App.pdf
Exploring the Best Video Editing App.pdf
 

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