Not logged in.

Contribution Details

Type Journal Article
Scope Discipline-based scholarship
Title Change Distilling: Tree Differencing for Fine-Grained Source Code Change Extraction
Organization Unit
  • Beat Fluri
  • Michael Würsch
  • Martin Pinzger
  • Harald Gall
Item Subtype Original Work
Refereed Yes
Status Published in final form
Journal Title IEEE Transactions on Software Engineering
Geographical Reach international
Volume 33
Number 11
Page Range 725 - 743
Date 2007
Abstract Text A key issue in software evolution analysis is the identification of particular changes that occur across several versions of a program. We present change distilling, a tree differencing algorithm for fine-grained source code change extraction. For that, we have improved the existing algorithm of Chawathe et al. for extracting changes in hierarchically structured data. Our algorithm extracts changes by finding both a match between the nodes of the compared two abstract syntax trees and a minimum edit script that can transform one tree into the other given the computed matching. As a result, we can identify fine-grained change types between program versions according to our taxonomy of source code changes. We evaluated our change distilling algorithm with a benchmark we developed that consists of 1,064 manually classified changes in 219 revisions of eight methods from three different open source projects. We achieved significant improvements in extracting types of source code changes: Our algorithm approximates the minimum edit script by 45% better than the original change extraction approach by Chawathe et al. We are able to find all occurring changes and almost reach the minimum conforming edit script, i.e., we reach a mean absolute percentage error of 34%, compared to 79% reached by the original algorithm. The paper describes both our change distilling algorithm and the results of our evaluation.
PDF File Download
Export BibTeX