• 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