Uncovering dependence clusters and linchpin functions

David Binkley, Arpad Beszedes, Syed Islam, Judit Jasz, Bela Vancsics

Research output: Chapter in Book/Report/Conference proceedingConference contribution

1 Citation (Scopus)

Abstract

Dependence clusters are (maximal) collections of mutually dependent source code entities according to some dependence relation. Their presence in software complicates many maintenance activities including testing, refactoring, and feature extraction. Despite several studies finding them common in production code, their formation, identification, and overall structure are not well understood, partly because of challenges in approximating true dependences between program entities. Previous research has considered two approximate dependence relations: a fine-grained statement-level relation using control and data dependences from a program's System Dependence Graph and a coarser relation based on function-level control-flow reachability. In principal, the first is more expensive and more precise than the second. Using a collection of twenty programs, we present an empirical investigation of the clusters identified by these two approaches. In support of the analysis, we consider a hybrid cluster type that works at the coarser function-level but is based on the higher-precision statement-level dependences. The three types of clusters are compared based on their slice sets using two clustering metrics. We also perform extensive analysis of the programs to identify linchpin functions- functions primarily responsible for holding a cluster together. Results include evidence that the less expensive, coarser approaches can often be used as effective proxies for the more expensive, finer-grained approaches. Finally, the linchpin analysis shows that linchpin functions can be effectively and automatically identified.

Original languageEnglish
Title of host publication2015 IEEE 31st International Conference on Software Maintenance and Evolution, ICSME 2015 - Proceedings
PublisherInstitute of Electrical and Electronics Engineers Inc.
Pages141-150
Number of pages10
ISBN (Electronic)9781467375320
DOIs
Publication statusPublished - Nov 19 2015
Event31st IEEE International Conference on Software Maintenance and Evolution, ICSME 2015 - Bremen, Germany
Duration: Sep 29 2015Oct 1 2015

Publication series

Name2015 IEEE 31st International Conference on Software Maintenance and Evolution, ICSME 2015 - Proceedings

Other

Other31st IEEE International Conference on Software Maintenance and Evolution, ICSME 2015
CountryGermany
CityBremen
Period9/29/1510/1/15

Keywords

  • Complexity theory
  • Flow graphs
  • Maintenance engineering
  • Measurement
  • Software maintenance
  • Testing

ASJC Scopus subject areas

  • Software

Fingerprint Dive into the research topics of 'Uncovering dependence clusters and linchpin functions'. Together they form a unique fingerprint.

  • Cite this

    Binkley, D., Beszedes, A., Islam, S., Jasz, J., & Vancsics, B. (2015). Uncovering dependence clusters and linchpin functions. In 2015 IEEE 31st International Conference on Software Maintenance and Evolution, ICSME 2015 - Proceedings (pp. 141-150). [7332460] (2015 IEEE 31st International Conference on Software Maintenance and Evolution, ICSME 2015 - Proceedings). Institute of Electrical and Electronics Engineers Inc.. https://doi.org/10.1109/ICSM.2015.7332460