Computing Reviews
Today's Issue Hot Topics Search Browse Recommended My Account Log In
Review Help
Search
Dependence clusters in source code
Harman M., Binkley D., Gallagher K., Gold N., Krinke J. ACM Transactions on Programming Languages and Systems32 (1):1-33,2009.Type:Article
Date Reviewed: Mar 1 2010

In this paper, a dependence cluster is defined to be a set of program statements, all of which are mutually interdependent. While dependence clusters have been studied at higher levels of abstraction (for example, at the function and module levels), this is the first attempt to study them at the statement level.

In order to provide an efficient means of computing dependence clusters, the authors postulate that these can be approximated by considering all program slices of the same size as representing components of a cluster. The size of the cluster is measured in terms of nodes of the system dependence graph (SDG) of the program. This approach is conservative in that, at worst, it will admit false negatives. By visualizing the slice sizes as a monotonically increasing profile, a group of slices of similar size appears as a clear plateau.

Forty-five C programs from a variety of application areas and totaling around 900,000 noncomment, nonblank lines were used as a test bed for study. The results presented support the use of slice sizes to construct good approximations to dependence clusters. In addition, close to 90 percent of the programs used included clusters consisting of between 10 and 70 percent of the program.

Further analysis showed that, for many of the programs considered, a small number of nodes of the SDG exerted a strong effect on the size of the dependence cluster. These nodes were all predicate nodes. Identification of these nodes could provide a good pointer to how the software might be refactored to reduce cluster size.

Finally, there is a discussion of how the detection of large dependence clusters may impact areas such as program comprehension, testing, maintenance, reuse, and parallelization.

The paper contains a large number of graphs and a detailed discussion of the analysis of the accuracy of using program slice sizes to approximate the construction of the dependence clusters. There is also an assumption that the reader is familiar with program slicing. For these reasons, the paper is most suited to researchers in the area of practical program analysis.

Reviewer:  T. Hopkins Review #: CR137764 (1007-0706)
Bookmark and Share
  Featured Reviewer  
 
Debugging Aids (D.2.5 ... )
 
 
Complexity Measures (D.2.8 ... )
 
 
Restructuring, Reverse Engineering, And Reengineering (D.2.7 ... )
 
 
Distribution, Maintenance, and Enhancement (D.2.7 )
 
 
Metrics (D.2.8 )
 
Would you recommend this review?
yes
no
Other reviews under "Debugging Aids": Date
Automatic correction and improvement of programs
Wertz H., Halsted Press, New York, NY, 1987. Type: Book (9789780470207642)
Dec 1 1987
Application debugging: an MVS ABEND handbook for COBOL, ASSEMBLY, PL/I, and FORTRAN programmers
Binder R., Prentice-Hall, Inc., Upper Saddle River, NJ, 1985. Type: Book (9789780130393487)
Aug 1 1985
A portable high-level database debugger and software performance monitor
Jankowitz H., Kilfoil P., Rabkin I., Schach S. Software--Practice & Experience 15(6): 523-538, 1985. Type: Article
Jun 1 1986
more...

E-Mail This Printer-Friendly
Send Your Comments
Contact Us
Reproduction in whole or in part without permission is prohibited.   Copyright 1999-2024 ThinkLoud®
Terms of Use
| Privacy Policy