2009
DOI: 10.1145/1596527.1596528
|View full text |Cite
|
Sign up to set email alerts
|

Dependence clusters in source code

Abstract: A dependence cluster is a set of program statements, all of which are mutually inter-dependent. This article reports a large scale empirical study of dependence clusters in C program source code. The study reveals that large dependence clusters are surprisingly commonplace. Most of the 45 programs studied have clusters of dependence that consume more than 10% of the whole program. Some even have clusters consuming 80% or more. The widespread existence of clusters has implications for source code analyses such … Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
2
1
1
1

Citation Types

4
49
0

Year Published

2012
2012
2019
2019

Publication Types

Select...
3
3
2

Relationship

3
5

Authors

Journals

citations
Cited by 40 publications
(53 citation statements)
references
References 94 publications
4
49
0
Order By: Relevance
“…The first one, Slice VV , is the traditional vertex-level slicing [16] where the slicing criterion is an SDG vertex and the result is a set of vertices, V. With such a slice the criteria is dependent on each of the vertices found in V. The second, Slice VF , has the same slicing criteria, a vertex, but produces a set of functions F rather than a set of vertices. In this case, the criteria is dependent on the (entry-point vertices of the) functions in F.…”
Section: A Program Slicingmentioning
confidence: 99%
See 2 more Smart Citations
“…The first one, Slice VV , is the traditional vertex-level slicing [16] where the slicing criterion is an SDG vertex and the result is a set of vertices, V. With such a slice the criteria is dependent on each of the vertices found in V. The second, Slice VF , has the same slicing criteria, a vertex, but produces a set of functions F rather than a set of vertices. In this case, the criteria is dependent on the (entry-point vertices of the) functions in F.…”
Section: A Program Slicingmentioning
confidence: 99%
“…Related Work Binkley and Harman [8] introduced the notion of dependence clusters and employed program slicing at the vertexlevel to identify them. Harman et al [16] later extended this initial study with a large-scale study of 45 programs and gave clustering definitions based on the direction of dependence (backward/forward). They found that vertex-level slice-based clusters were a common phenomenon in systems and empirically identified patterns of clustering.…”
Section: Threats To Validitymentioning
confidence: 99%
See 1 more Smart Citation
“…A dependence cluster is a set of program elements that mutually depend on each other [46]. Their existence in source code has gained increasing attention recently because it has been demonstrated in various maintenance-related contexts that they may be detrimental to code comprehension, maintenance and evolution, impact analysis, and testing.…”
Section: Other Applicationsmentioning
confidence: 99%
“…A dependence cluster is a set of program elements that all directly or transitively depend upon one another [8,18]. Prior empirical studies found that large dependence clusters are highly prevalent in software systems and further complicate many software activities such as software maintenance, testing, and comprehension [8,18].…”
Section: Introductionmentioning
confidence: 99%