coherent dependence clusters

Download Coherent Dependence  Clusters

Post on 23-Feb-2016




0 download

Embed Size (px)


Coherent Dependence Clusters. Syed Islam. Agenda. Coherent Clusters (Specialized Dependence Cluster). Visualization Tool for Dependence Clusters . Mapping Source Code Constructs to Clusters. Overlapping Clusters. Program Comprehension / Maintenance Fault Prediction. - PowerPoint PPT Presentation


Visualizing Dependence Clusters

Coherent Dependence ClustersSyed Islam1Add a slide on Transivity.

1Agenda2Coherent Clusters (Specialized Dependence Cluster)Mapping Source Code Constructs to ClustersVisualization Tool for Dependence Clusters Overlapping ClustersProgram Comprehension / Maintenance Fault Prediction2Dependence ClusterA dependence cluster is a maximal set of program statements where each statement depends on all other.3

Minimal Slice3Dependence Cluster (Slice-Based)A Slice-Based Dependence Clusters is a maximal set of program statements all of which are in each others slice.4ijTwo statements that mutually depend upon each other must be in each others slice.4Dependence Cluster ..5Remembering all the slices is too expensive.Approximation techniques were usedSame Slice ClusterSame Slice-Size Cluster.5MSG -Monotone Slice-Size GraphCalculate the Slice Sizes for each SDG vertex of a program.

6Plot 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 size

6Coherent Clusters7Same-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.7What forms a cluster?854312xyDependence ClusterForward-Slice ClusterBackward-Slice ClusterCoherent Cluster89SCG Slice/Cluster-Size Graph

910SCG Slice/Cluster-Size Graph


B-MCGF-MCGSCG Slice/Cluster-Size Graph1112SCG Slice/Cluster-Size Graph

Coherent Clusters1213Results Coherent Clusters


14Function Mapping To Cluster15Tool Maps: source lines and files to clusters.functions represent particular computationmapping functions to clusters.Initial Data:Multiple functions form a cluster.Multiple clusters within the same function.15Approximation ConstraintsCalculate 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 SliceThe algorithm runs in T(n) = O(n3) hence 30 days1617Coherent Cluster Dependence Graph1754312What does this mean? 17Coherent Cluster Dependence Graph ..1854312Does this mean we are looking at a dependence cluster (or .. MDS)?181970.43%

19Dagstuhl Seminar Beyond Program SlicingHypothesis 1: short program slices have fewer faults20Hypothesis 2: code common to many program slices has fewer faultsHypothesis 3: cliff faces in dependence clusters indicate faults2021

21Ongoing Work22Complete implementation of the toolMapping Source Code Constructs to ClustersCombining Cluster Larger ClustersLongitudinal studyFaults Metrics22


View more >