UCL Discovery
UCL home » Library Services » Electronic resources » UCL Discovery

Coherent clusters in source code

Islam, S; Krinke, J; Harman, M; Binkley, D; (2014) Coherent clusters in source code. Journal of Systems and Software , 88 (1) 1 - 24. 10.1016/j.jss.2013.07.040. Green open access

[thumbnail of 1-s2.0-S016412121300188X-main.pdf]
Preview
PDF
1-s2.0-S016412121300188X-main.pdf

Download (4MB)

Abstract

This paper presents the results of a large scale empirical study of coherent dependence clusters. All statements in a coherent dependence cluster depend upon the same set of statements and affect the same set of statements; a coherent cluster's statements have 'coherent' shared backward and forward dependence. We introduce an approximation to efficiently locate coherent clusters and show that it has a minimum precision of 97.76%. Our empirical study also finds that, despite their tight coherence constraints, coherent dependence clusters are in abundance: 23 of the 30 programs studied have coherent clusters that contain at least 10% of the whole program. Studying patterns of clustering in these programs reveals that most programs contain multiple substantial coherent clusters. A series of subsequent case studies uncover that all clusters of significant size map to a logical functionality and correspond to a program structure. For example, we show that for the program acct, the top five coherent clusters all map to specific, yet otherwise non-obvious, functionality. Cluster visualization also brings out subtle deficiencies in program structure and identifies potential refactoring candidates. A study of inter-cluster dependence is used to highlight how coherent clusters are connected to each other, revealing higher-level structures, which can be used in reverse engineering. Finally, studies are presented to illustrate how clusters are not correlated with program faults as they remain stable during most system evolution. © 2013 The Authors. All rights reserved.

Type: Article
Title: Coherent clusters in source code
Open access status: An open access version is available from UCL Discovery
DOI: 10.1016/j.jss.2013.07.040
Publisher version: http://dx.doi.org/10.1016/j.jss.2013.07.040
Additional information: © 2013 The Authors. Published by Elsevier Inc. All rights reserved. This is an open-access article distributed under the terms of the CreativeCommons Attribution License, which permits unrestricted use, distribution, andreproduction in any medium, provided the original author and source are credited.
Keywords: Dependence analysis; Program comprehension; Software clustering;
UCL classification:
URI: https://discovery.ucl.ac.uk/id/eprint/1421994
Downloads since deposit
0Downloads
Download activity - last month
Download activity - last 12 months
Downloads by country - last 12 months

Archive Staff Only

View Item View Item