DocumentCode :
175538
Title :
Explaining Why Methods Change Together
Author :
Lozano, Aurelie ; Noguera, Carlos ; Jonckers, Viviane
Author_Institution :
Software Languages Lab., Vrije Univ. Brussel, Brussels, Belgium
fYear :
2014
fDate :
28-29 Sept. 2014
Firstpage :
185
Lastpage :
194
Abstract :
By analyzing historical information from Source Code Management systems, previous research has observed that certain methods tend to change together consistently. Co-change has been identified as a good predictor of the entities that are likely to be affected by a change, which ones might be missing modifications, and which ones might change in the future. However, existing co-change analysis provides no insight on why methods consistently co-change. Being able to identify the rationale that explains co-changes could allow to document and enforce design knowledge. This paper proposes an automatic approach to derive the reason behind a co-change. We define the reason of a (set) of co-changes as a set of properties common to the elements that co-change. We consider two kinds of properties: structural properties which indicate explicit dependencies, and semantic properties which reveal implicit dependencies. Then we attempt to identify the reasons behind single commits, as well as the reasons behind co-changes that repeatedly affect the same set of methods. These sets of methods are identified by clustering methods that tend to be modified in the same commit-transactions. We perform our analysis over the history of two open-source systems, analyzing nearly 19.000 methods and over 3700 commits. We show that it is possible to automatically extract explanations for co-changes, that the quality of such explanations improves when structural and semantic properties are taken into account, and when the methods analyzed co-change recurrently.
Keywords :
pattern clustering; program diagnostics; public domain software; clustering methods; co-change analysis; commit-transactions; explicit dependencies; implicit dependencies; open-source systems; semantic properties; structural properties; Clustering methods; Documentation; History; Java; Libraries; Measurement; Semantics; Co-change; Empirical software engineering; Program comprehension;
fLanguage :
English
Publisher :
ieee
Conference_Titel :
Source Code Analysis and Manipulation (SCAM), 2014 IEEE 14th International Working Conference on
Conference_Location :
Victoria, BC
Type :
conf
DOI :
10.1109/SCAM.2014.27
Filename :
6975652
Link To Document :
بازگشت