The Research Group is Moving!
During winter term 2021/22, we move to University of Bamberg. From Oct. 15, 2021, Fabian Beck holds a full professor position on Information Visualization.
New webpage of the research group: https://www.uni-bamberg.de/vis
Publications
Publications of the research group since 2016. For earlier publications, please visit Fabian Beck's Google Scholar or DBLP profile.
Type of Publication: Article in Collected Edition
Generating Accurate and Compact Edit Scripts using Tree Differencing
- Author(s):
- Frick, Veit; Grassauer, Thomas; Pinzger, Martin; Beck, Fabian
- Title of Anthology:
- Proceedings of the 2018 IEEE International Conference on Software Maintenance and Evolution
- pages:
- 264-274
- Publisher:
- IEEE
- Publication Date:
- 2018
- Digital Object Identifier (DOI):
- doi:10.1109/ICSME.2018.00036
- Fulltext:
- Generating Accurate and Compact Edit Scripts using Tree Differencing (4.77 MB)
- Citation:
- Download BibTeX
Abstract
For analyzing changes in source code, edit scriptsare used to describe the differences between two versions of afile. These scripts consist of a list of actions that, applied to thesource file, result in the new version of the file. In contrast toline-based source code differencing, tree-based approaches suchas GumTree, MTDIFF, or ChangeDistiller extract changes bycomparing the abstract syntax trees (AST) of two versions of asource file. One benefit of tree-based approaches is their abilityto capture moved (sub) trees in the AST. Our approach, theIterative Java Matcher (IJM), builds upon GumTree and aims atgenerating more accurate and compact edit scripts that capturethe developer's intent. This is achieved by improving the qualityof the generated move and update actions, which are the mainsource of inaccurate actions generated by previous approaches. To evaluate our approach, we conducted a study with 11 external experts and manually analyzed the accuracy of 2400 randomly selected editactions. Comparing IJM to GumTree and MTDIFF, the resultsshow that IJM provides better accuracy for move and updateactions and is more beneficial to understanding the changes.