Analysis and Propagation of Feature Revisions in Preprocessor-based Software Product Lines (bibtex)
by Gabriela K. Michelon, Wesley K. G. Assunção, Paul Grünbacher, Alexander Egyed
Abstract:
Preprocessor-based software product lines (SPLs) are used to deal with evolution in space, in which features (so-called configuration options)—annotated in source code with ifdefs—are included, removed, and systematically reused. Inevitably, feature implementations also evolve over time, i.e., when existing features are revised. Nowadays, Version control systems (VCSs) are well-integrated into SPL development processes for versioning support of releases. Changes to existing features in one version, a.k.a. release of an SPL, usually developed in a branch, frequently need to be propagated to other active releases. However, there is no automated support for analyzing and propagating features in SPL releases. For instance, VCSs can only propagate changes at the commit level, but miss support at the feature level, i.e., the building blocks of SPLs. Manually analyzing and propagating a version of a feature, i.e., a feature revision, through ifdefs is risky, time-consuming, and error-prone because a feature can be interacting with multiple features and it can be spread in multiple blocks of code across different files. We thus present a novel and tool-supported approach for the analysis and propagation of feature revisions. We evaluated our approach quantitatively by computing its correct behavior and runtime. Our approach analyzes and propagates a feature implementation in ≈63 seconds, with, on average, precision and recall of 99%. In total, we propagated 3,134 features in space and time between 200 pairs of releases on four real-world preprocessor-based SPLs. In addition, we qualitatively evaluated the usefulness of our tool support by conducting interviews with five experienced core developers of three popular preprocessor-based SPLs. The qualitative results confirm that our tool support is useful to speed up the analysis and propagation of feature revisions.
Reference:
Analysis and Propagation of Feature Revisions in Preprocessor-based Software Product Lines (Gabriela K. Michelon, Wesley K. G. Assunção, Paul Grünbacher, Alexander Egyed), In IEEE International Conference on Software Analysis, Evolution and Reengineering (SANER), 2023.
Bibtex Entry:
@Conference{Michelon2023a,
  author    = {Gabriela K. Michelon and Wesley K. G. Assunção and Paul Grünbacher and Alexander Egyed},
  booktitle = {IEEE International Conference on Software Analysis, Evolution and Reengineering (SANER)},
  title     = {Analysis and Propagation of Feature Revisions in Preprocessor-based Software Product Lines},
  year      = {2023},
  pages     = {284-295},
  abstract  = {Preprocessor-based software product lines (SPLs) are used to deal with evolution in space, in which features (so-called configuration options)—annotated in source code with #ifdefs—are included, removed, and systematically reused. Inevitably, feature implementations also evolve over time, i.e., when existing features are revised. Nowadays, Version control systems (VCSs) are well-integrated into SPL development processes for versioning support of releases. Changes to existing features in one version, a.k.a. release of an SPL, usually developed in a branch, frequently need to be propagated to other active releases. However, there is no automated support for analyzing and propagating features in SPL releases. For instance, VCSs can only propagate changes at the commit level, but miss support at the feature level, i.e., the building blocks of SPLs. Manually analyzing and propagating a version of a feature, i.e., a feature revision, through #ifdefs is risky, time-consuming, and error-prone because a feature can be interacting with multiple features and it can be spread in multiple blocks of code across different files. We thus present a novel and tool-supported approach for the analysis and propagation of feature revisions. We evaluated our approach quantitatively by computing its correct behavior and runtime. Our approach analyzes and propagates a feature implementation in ≈63 seconds, with, on average, precision and recall of 99%. In total, we propagated 3,134 features in space and time between 200 pairs of releases on four real-world preprocessor-based SPLs. In addition, we qualitatively evaluated the usefulness of our tool support by conducting interviews with five experienced core developers of three popular preprocessor-based SPLs. The qualitative results confirm that our tool support is useful to speed up the analysis and propagation of feature revisions.},
  doi       = {10.1109/SANER56733.2023.00035},
  keywords  = {LIT Secure and Correct Systems Lab, FWF P31989, SCCH},
  url       = {https://ieeexplore.ieee.org/document/10123456},
}
Powered by bibtexbrowser