Dependence Clusters in Source Code

被引:23
作者
Harman, Mark [1 ]
Binkley, David [2 ]
Gallagher, Keith [3 ]
Gold, Nicolas [1 ]
Krinke, Jens [1 ]
机构
[1] Kings Coll London, London WC2R 2LS, England
[2] Loyola Coll, Baltimore, MD 21210 USA
[3] Univ Durham, Durham DH1 3LE, England
来源
ACM TRANSACTIONS ON PROGRAMMING LANGUAGES AND SYSTEMS | 2009年 / 32卷 / 01期
基金
英国工程与自然科学研究理事会;
关键词
Algorithms; Languages; Measurement; Dependence; program comprehension; program slicing; PROGRAM; TESTABILITY; SLICES; GENERATION; SUPPORT; DESIGN; SYSTEM;
D O I
10.1145/1596527.1596528
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
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 as program comprehension, software maintenance, software testing, reverse engineering, reuse, and parallelization.
引用
收藏
页数:33
相关论文
共 95 条
  • [81] AUTOMATED SUPPORT FOR LEGACY CODE UNDERSTANDING
    NING, JQ
    ENGBERTS, A
    KOZACZYNSKI, W
    [J]. COMMUNICATIONS OF THE ACM, 1994, 37 (05) : 50 - 57
  • [82] Ott L. M., 1989, Proceedings. 11th International Conference on Software Engineering (Cat. No.89CH2718-5), P198, DOI 10.1145/74587.74614
  • [83] Ren X, 2006, IEEE T SOFTWARE ENG, V32, P718, DOI 10.1109/TSE.2006.90
  • [84] Chianti: A change impact analysis tool for Java']Java programs
    Ren, XX
    Ryder, BG
    Stoerzer, M
    Tip, F
    [J]. ICSE 05: 27th International Conference on Software Engineering, Proceedings, 2005, : 664 - 665
  • [85] RILLING J, 2001, P 5 WORLD MULT SYST
  • [86] RILLING J, 2002, P 10 WORK C REV ENG, P42
  • [87] TIP F, 1995, J PROGRAM LANG, V3, P121
  • [88] Using a concept lattice of decomposition slices for program understanding and impact analysis
    Tonella, P
    [J]. IEEE TRANSACTIONS ON SOFTWARE ENGINEERING, 2003, 29 (06) : 495 - 509
  • [89] Tracey N, 2000, SOFTWARE PRACT EXPER, V30, P61, DOI 10.1002/(SICI)1097-024X(200001)30:1<61::AID-SPE292>3.0.CO
  • [90] 2-9