Circumventing refactoring masking using fine-grained change recording

Quinten David Soetens, Javier Pérez, Serge Demeyer, Andy Zaidman

Research output: Chapter in Book/Conference proceedings/Edited volumeConference contributionScientificpeer-review

8 Citations (Scopus)
21 Downloads (Pure)

Abstract

Today, refactoring reconstruction techniques are snapshot-based: they compare two revisions from a source code man-agement system and calculate the shortest path of edit op-erations to go from the one to the other. An inherent risk with snapshot-based approaches is that a refactoring may be concealed by later edit operations acting on the same source code entity, a phenomenon we call refactoring mask-ing. In this paper, we performed an experiment to find out at which point refactoring masking occurs and confirmed that a snapshot-based technique misses refactorings when several edit operations are performed on the same source code entity. We present a way of reconstructing refactorings using fine grained changes that are recorded live from an integrated development environment and demonstrate on two cases |PMD and Cruisecontrol| that our approach is more accurate in a significant number of situations than the state-of-the-art snapshot-based technique RefFinder.

Original languageEnglish
Title of host publication14th International Workshop on Principles of Software Evolution, IWPSE 2015 - Proceedings
PublisherInstitute of Electrical and Electronics Engineers (IEEE)
Pages9-18
Number of pages10
Volume30-Aug-2015
ISBN (Electronic)9781450338165
DOIs
Publication statusPublished - 30 Aug 2015
Event14th International Workshop on Principles of Software Evolution, IWPSE 2015 - Bergamo, Italy
Duration: 30 Aug 2015 → …

Conference

Conference14th International Workshop on Principles of Software Evolution, IWPSE 2015
Country/TerritoryItaly
CityBergamo
Period30/08/15 → …

Keywords

  • Fine Grained Changes
  • Refactoring Reconstruction
  • RefactoringMasking
  • Software Evolution

Fingerprint

Dive into the research topics of 'Circumventing refactoring masking using fine-grained change recording'. Together they form a unique fingerprint.

Cite this