Clusters Syed Islam 1 Agenda 2 Coherent Clusters Specialized Dependence Cluster Mapping Source Code Constructs to Clusters Visualization Tool for Dependence Clusters Overlapping Clusters ID: 473668
Download Presentation The PPT/PDF document "Coherent Dependence" is the property of its rightful owner. Permission is granted to download and print the materials on this web site for personal, non-commercial use only, and to display it on your personal computer provided you do not modify the materials and that you retain all copyright notices contained in the materials. By downloading content from our website, you accept the terms of this agreement.
Slide1
Coherent Dependence Clusters
Syed Islam
1Slide2
Agenda
2
Coherent Clusters (Specialized Dependence Cluster)
Mapping Source Code Constructs to Clusters
Visualization Tool for Dependence Clusters
Overlapping
Clusters
Program Comprehension / Maintenance
Fault PredictionSlide3
Dependence Cluster
A dependence cluster is a maximal set of program statements where each statement depends on all other.
3
Minimal SliceSlide4
Dependence Cluster (Slice-Based)
A Slice-Based Dependence Clusters
is a maximal set of program statements all of which are in each others slice.
4
i
j
Two statements
that
mutually depend upon
each other must be in each others slice.Slide5
Dependence Cluster ..
5
Remembering all the slices is too expensive.
Approximation techniques were used
Same Slice
Cluster
Same Slice-Size Cluster
.Slide6
MSG -Monotone Slice-Size Graph
Calculate the Slice Sizes for each SDG vertex of a program.
6
Plot
all slice sizes of the program in one graph in monotonically increasing order of the sizes
.
X axis:
percentage
of slices representedY axis: normalised slice sizeSlide7
Coherent Clusters
7
Same-Slice Dependence cluster have
internal
and
external requirements.
Statements of Clusters constructed from Backward Slices are
all influenced by the same set of statements. (Backward-Slice Cluster
)Statements of Clusters constructed from Forward Slices
all influence the same set of statements
. (
Forward-Slice Cluster).
A
Coherent Cluster
is a set of statements where each statement has the same backward slice and the same forward slice.Slide8
What forms a cluster?
8
5
4
3
1
2
x
y
Dependence
Cluster
Forward-Slice Cluster
Backward-Slice
Cluster
Coherent ClusterSlide9
9
SCG – Slice/Cluster-Size GraphSlide10
10
SCG – Slice/Cluster-Size Graph
B-MSG
F-MSGSlide11
11
B-MCG
F-MCG
SCG – Slice/Cluster-Size GraphSlide12
12
SCG – Slice/Cluster-Size Graph
Coherent ClustersSlide13
13
Results Coherent ClustersSlide14
14Slide15
Function Mapping To Cluster
15
Tool Maps: source lines and files to clusters.
functions
represent particular computation
mapping functions to clusters.
Initial Data:
Multiple
functions form a cluster.
Multiple clusters
within the same function.Slide16
Approximation Constraints
Calculate percentage of pair of nodes whose slices are the same; to that of where the nodes in the pair are in each others slice.
16
x
and
y,
where nodes x and y
are nodes of a pdg
| {
x,y
: S(
x
) = S(
y
) }|
|
{
x,y
:
x
S(
y
)
y
S(
x
) }|
BC –
The results is
60%
.
S() – Backward Slice
The algorithm runs in
T(n) = O(n
3
) hence
30 daysSlide17
17
Coherent Cluster Dependence Graph
17
5
4
3
1
2
What does this mean? Slide18
Coherent Cluster Dependence Graph ..
18
5
4
3
1
2
Does this mean we are looking at a dependence cluster (or .. MDS)?Slide19
19
70.43%Slide20
Dagstuhl Seminar Beyond Program Slicing
Hypothesis 1: short program slices have fewer
faults
20
Hypothesis 2: code common to many program slices has fewer faults
Hypothesis 3: cliff faces in dependence clusters indicate faultsSlide21
21Slide22
Ongoing Work
22
Complete implementation of the tool
Mapping Source Code Constructs to Clusters
Combining
Cluster –
Larger Clusters
Longitudinal
study
Faults
Metrics