Lukas Güthing, Paul Maximilian Bittner, Ina Schaefer, Thomas Thüm
Technical Track
Haus der Universität, Schlösslistrasse 5, 3008 Bern, Switzerland | |
7 February 2024, 16:40 CET | |
Lukas Güthing | |
Kaan Yaman | |
https://dl.acm.org/doi/10.1145/3634713.3634725 |
Software is subject to changes and revisions during its development life cycle. For configurable software systems, changes may be made to functionality of source code as well as variability information such as code-to-feature mappings. To explain how code-to-feature mappings change in edits made to configurable software, we relate the mappings before and after an edit in terms of the sets of variants they denote. We prove our explanations to be complete and unambiguous, meaning that every pair of code-to-feature mappings is explained in terms of exactly one relation. Based on a graph formalism, we provide an algorithm for fast detection of relations during commits to version control. In an initial study, we detect relations between feature annotations in 42 real-world software product-line repositories to better understand typical changes in the evolution of configurable software. We demonstrate that our formalism can be automated and that analyzing a commit requires only 135 ms on average.