by Michael Ratzenböck, Paul Grünbacher, Wesley K. G. Assunção, Alexander Egyed, Lukas Linsbauer
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.
Reference:
Refactoring Product Lines by Replaying Version Histories (Michael Ratzenböck, Paul Grünbacher, Wesley K. G. Assunção, Alexander Egyed, Lukas Linsbauer), In Proceedings 16th Int'l Working Conference on Variability Modelling of Software-Intensive Systems, VaMoS 2022 (Paolo Arcaini, Xavier Devroey, Alessandro Fantechi, eds.), ACM, 2022.
Bibtex Entry:
@Conference{Ratzenboeck2022,
author = {Michael Ratzenböck and Paul Grünbacher and Wesley K. G. Assunção and Alexander Egyed and Lukas Linsbauer},
booktitle = {Proceedings 16th Int'l Working Conference on Variability Modelling of Software-Intensive Systems, VaMoS 2022},
title = {Refactoring Product Lines by Replaying Version Histories},
year = {2022},
editor = {Paolo Arcaini and Xavier Devroey and Alessandro Fantechi},
pages = {8:1--8:10},
publisher = {{ACM}},
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.},
doi = {10.1145/3510466.3510484},
file = {:Conferences/VaMOS 2022 - Refactoring Product Lines by Replaying Version Histories/Refactoring Product Lines by Replaying Version HistoriesRefactoring Product Lines by Replaying Version Histories - preprint.pdf:PDF},
keywords = {LIT Secure and Correct Systems Lab, FWF P31989},
location = {Florence, Italy},
}