Title :
Dependence communities in source code
Author :
Hamilton, John ; Danicic, S.
Author_Institution :
Dept. of Comput., Univ. of London, London, UK
Abstract :
The concept of community structure arises from the analysis of social networks in sociology. Community structure can be found in many real world graphs other than social networks. Recently, efficient community detection algorithms have been developed which can cope with very large graphs with millions of nodes and potentially billions of edges. So, for the first time, there is the potential for investigating communities in real industrial-strength software at the statement level. We provide empirical evidence that dependence between statements in software does, indeed, give rise to community structure. Initial findings suggest that the separate dependence communities are far from arbitrary. They appear to decompose systems into areas of distinct functionality. This new approach to system decomposition has tremendous potential in many areas of software engineering, particularly in reverse engineering of legacy software and program comprehension.
Keywords :
graph theory; reverse engineering; software maintenance; community detection algorithms; community structure concept; dependence communities; distinct functionality; legacy software; program comprehension; real industrial-strength software; real world graphs; reverse engineering; social network analysis; sociology; software engineering; source code; statement level; system decomposition; Communities; Conferences; Detection algorithms; Semantics; Software engineering; Software maintenance;
Conference_Titel :
Software Maintenance (ICSM), 2012 28th IEEE International Conference on
Conference_Location :
Trento
Print_ISBN :
978-1-4673-2313-0
DOI :
10.1109/ICSM.2012.6405325