Refactoring Product Lines by Replaying Version Histories

Michael Ratzenböck, Paul Grünbacher, Wesley Klewerton Guez Assuncao, Alexander Egyed, Lukas Linsbauer

Research output: Chapter in Book/Report/Conference proceedingConference proceedingspeer-review

Abstract

When evolving software product lines, new features are added over time and existing features are revised. Engineers also decide to merge different features or split features in other cases. Such refactoring tasks are difficult when using manually maintained feature-to-code mappings. Intensional version control systems such as ECCO overcome this issue with automatically computed feature-to-code mappings. Furthermore, they allow creating variants that have not been explicitly committed before. However, such systems are still rarely used compared to extensional version control systems like Git, which keep track of the evolution history by assigning revisions to states of a system. This paper presents an approach combining both extensional and intensional version control systems, which relies on the extensional version control system Git to store versions. Developers selectively tag existing versions to describe the evolution at the level of features. Our approach then automatically replays the evolution history to create a repository of the intensional variation control system ECCO. The approach contributes to research on refactoring features of existing product lines and migrating existing systems to product lines. We provide an initial evaluation of the approach regarding correctness and performance based on an existing system.
Original languageEnglish
Title of host publicationVaMoS '22: 16th International Working Conference on Variability Modelling of Software-Intensive Systems, Florence, Italy, February 23 - 25, 2022
EditorsPaolo Arcaini, Xavier Devroey, Alessandro Fantechi
PublisherACM
Pages8:1-8:10
Number of pages10
Volume1633
ISBN (Electronic)9781450396042
ISBN (Print)978-1-4503-9206-8
DOIs
Publication statusPublished - 23 Feb 2022

Publication series

NameACM International Conference Proceeding Series

Fields of science

  • 102 Computer Sciences
  • 102022 Software development

JKU Focus areas

  • Digital Transformation

Cite this