EXtracting Product Lines from vAriaNTs (EXPLANT)
Software product lines (SPLs) promote strategic reuse and support variability in a systematic way. In practice, however, the need for reuse and variability has often been satisfied by copying programs and adapting them as needed — the clone-and-own approach. The result is a family of cloned product variants that is hard to maintain in the long term. This project aims at consolidating such cloned product families into a well-structured, modular software product line. Guided by code-clone detection, architectural analyses, and domain knowledge, the consolidation process is semi-automatic and stepwise. Each step constitutes a small, semantics-preserving transformation of the code, the feature model or both. These semantics-preserving transformations are called variant-preserving refactorings.
Material for: A Taxonomy of Software Product Line Reengineering
Published in Proceedings of the Eighth International Workshop on Variability Modelling of Software-Intensive Systems (VaMoS'14)
This literature survey presents part of the related work for the EXPLANT project. In particular, we differentiate between different kinds of refactoring in the context of SPL engineering and provide definitions for the three main types of SPL refactoring. Moreover, we classify existing work on SPL refactoring. One of the main conclusions of this classification is that so far, little work has addressed the implementation-level aspects of migrating multiple> cloned product variants to an SPL.
Abstract
In the context of single software systems, refactoring is commonly accepted to be the process of restructuring an existing body of code in order to improve its internal structure without changing its external behavior. This process is vital to the maintenance and evolution of software systems.
Software product line engineering is a paradigm for the construction and customization of large-scale software systems. As systems grow in complexity and size, maintaining a clean structure becomes arguably more important. However, product line literature uses the term "refactoring" for such a wide range of reengineering activities that it has become difficult to see how these activities pertain to maintenance and evolution and how they are related.
We improve this situation in the following way: i) We identify the dimensions along which product line reengineering occurs. ii) We derive a taxonomy that distinguishes and relates these reengineering activities. iii) We propose definitions for the three main branches of this taxonomy. iv) We classify a corpus of existing work.
The paper only shows small excerpts of our proposed taxonomy. Here is the figure of the full taxonomy as a PDF.
Publications
- Sebastian Krieter, Rahel Arens, Michael
Nieke, Chico Sundermann, Tobias Heß, Thomas Thüm, and Christoph
Seidl.
Incremental construction of
modal implication graphs for evolving feature models.
In Mohammad Mousavi and Pierre-Yves Schobbens, editors, SPLC '21: 25th
ACM International Systems and Software Product Line Conference, Leicester,
United Kingdom, September 6-11, 2021, Volume A, pages 64–74. ACM,
2021.
- Tobias Pett, Sebastian Krieter, Tobias
Runge, Thomas Thüm, Malte Lochau, and Ina Schaefer.
Stability of Product-Line
Samplingin Continuous Integration.
In Paul Grünbacher, Christoph Seidl, Deepak Dhungana, and Helena
Lovasz-Bukvova, editors, VaMoS'21: 15th International Working
Conference on Variability Modelling of Software-Intensive Systems, Virtual
Event / Krems, Austria, February 9-11, 2021, pages 18:1–18:9. ACM,
2021.
- Tobias Pett, Sebastian Krieter, Thomas
Thüm, Malte Lochau, and Ina Schaefer.
AutoSMP: an evaluation
platform for sampling algorithms.
In Mohammad Mousavi and Pierre-Yves Schobbens, editors, SPLC '21: 25th
ACM International Systems and Software Product Line Conference, Leicester,
United Kindom, September 6-11, 2021, Volume B, pages 41–44. ACM,
2021.
- Chico Sundermann, Tobias Heß,
Dominik Engelhardt, Rahel Arens, Johannes Herschel, Kevin Jedelhauser,
Benedikt Jutz, Sebastian Krieter, and Ina Schaefer.
Integration of UVL in
FeatureIDE.
In Mohammad Mousavi and Pierre-Yves Schobbens, editors, SPLC '21: 25th
ACM International Systems and Software Product Line Conference, Leicester,
United Kindom, September 6-11, 2021, Volume B, pages 73–79. ACM,
2021.
- Jacob Krüger, Gül Calıklı,
Thorsten Berger, Thomas Leich, and Gunter Saake.
Effects of Explicit Feature Traceability on Program
Comprehension.
In Software Engineering, SE, pages 79–80. GI, February
2020.
- Sebastian Krieter.
Large-scale T-wise
interaction sampling using YASA.
In Roberto Erick Lopez-Herrejon, editor, SPLC '20: 24th ACM International
Systems and Software Product Line Conference, Montreal, Quebec, Canada,
October 19-23, 2020, Volume A, pages 29:1–29:4. ACM,
2020.
- Jacob Krüger, Christian Lausberger,
Ivonne von Nostitz-Wallwitz, Gunter Saake, and Thomas Leich.
Search. Review. Repeat? An
Empirical Study of Threats to Replicating SLR Searches.
Empirical Software Engineering, 25(1):627–677, January 2020.
(PDF)
- Yusra Shakeel, Jacob Krüger, Ivonne
von Nostitz-Wallwitz, Gunter Saake, and Thomas Leich.
Automated Selection and Quality
Assessment of Primary Studies: A Systematic Literature Review.
Journal of Data and Information Quality, 12(1):4:1–4:26, January
2020.
(PDF)
- Jacob Krüger, Mustafa Al-Hajjaji,
Thomas Leich, and Gunter Saake.
Mutation Operators for Feature-Oriented
Software Product Lines.
In International Systems and Software Product Line Conference,
SPLC, pages 12–12. ACM, September 2019.
- Kai Ludwig, Jacob Krüger, and
Thomas Leich.
Covert and Phantom Features in
Annotations: Do They Impact Variability Analysis?.
In International Systems and Software Product Line Conference,
SPLC, pages 218–230. ACM, September 2019.
- Jacob Krüger, Gül
Calıklı, Thorsten Berger, Thomas Leich, and Gunter Saake.
Effects of Explicit Feature
Traceability on Program Comprehension.
In Joint European Software Engineering Conference and Symposium on the
Foundations of Software Engineering, ESEC/FSE, pages 338–349. ACM,
August 2019.
- Sebastian Nielebock, Dariusz
Krolikowski, Jacob Krüger, Thomas Leich, and Frank Ortmeier.
Commenting Source Code: Is It Worth It For Small Programming Tasks?.
Empirical Software Engineering, 24(3):1418–1457, June 2019.
(PDF)
- Jacob Krüger, Jens Wiemann, Wolfram
Fenske, Gunter Saake, and Thomas Leich.
Do You Remember This Source Code?.
In International Conference on Software Engineering, ICSE, pages
764–775. ACM, May 2018.
- Jacob Krüger.
Separation of Concerns: Experiences of the Crowd.
In Symposium on Applied Computing, SAC, pages 2076–2077. ACM,
April 2018.
- Jacob Krüger, Marcus Pinnecke, Andy
Kenner, Christopher Kruczek, Fabian Benduhn, Thomas Leich, and Gunter Saake.
Composing Annotations Without Regret? Practical Experiences Using FeatureC.
Software: Practice and Experience, 48(3):402–427, March 2018.
(PDF)
- Sebastian Krieter, Jacob Krüger,
and Thomas Leich.
Don’t Worry About It: Managing Variability On-the-Fly.
In International Workshop on Variability Modelling of Software-Intensive
Systems, VaMoS, pages 19–26. ACM, February
2018.
- Jacob Krüger, Wanzi Gu, Hui Shen,
Mukelabai Mukelabai, Regina Hebig, and Thorsten Berger.
Towards a Better Understanding of Software Features and Their
Characteristics: A Case Study of Marlin.
In International Workshop on Variability Modelling of Software-Intensive
Systems, VaMoS, pages 105–112. ACM, February
2018.
- Sebastian Krieter, Marcus Pinnecke,
Jacob Krüger, Joshua Sprey, Christopher Sontag, Thomas Thüm, Thomas
Leich, and Gunter Saake.
FeatureIDE: Empowering Third-Party Developers.
In International Systems and Software Product Line Conference,
SPLC, pages 42–45. ACM, September 2017.
- Jacob Krüger, Louis Nell, Wolfram
Fenske, Gunter Saake, and Thomas Leich.
Finding Lost Features in Cloned Systems.
In International Systems and Software Product Line Conference,
SPLC, pages 65–72. ACM, September 2017.
- Jacob Krüger, Sebastian Nielebock,
Sebastian Krieter, Christian Diedrich, Thomas Leich, Gunter Saake, Sebastian
Zug, and Frank Ortmeier.
Beyond Software Product Lines: Variability Modeling in
Cyber-Physical Systems.
In International Systems and Software Product Line Conference,
SPLC, pages 237–241. ACM, September 2017.
- Mustafa Al-Hajjaji, Jacob Krüger,
Fabian Benduhn, Thomas Leich, and Gunter Saake.
Efficient Mutation Testing in Configurable Systems.
In International Workshop on Variability and Complexity in Software
Design, VACE, pages 2–8. IEEE, May 2017.
- Mustafa Al-Hajjaji, Jacob Krüger,
Sandro Schulze, Thomas Leich, and Gunter Saake.
Efficient Product-Line Testing using Clustering-Based Product
Prioritization.
In International Workshop on Automation of Software Test, AST,
pages 16–22. IEEE, May 2017.
- Jacob Krüger.
Lost in Source Code: Physically Separating Features in Legacy
Systems.
In International Conference on Software Engineering Companion,
ICSE-C, pages 461–462. IEEE, May 2017.
- Jacob Krüger, Niklas Corr, Ivonne
Schröter, and Thomas Leich.
Digging into the Eclipse Marketplace.
In Federico Balaguer, Roberto Di Cosmo, Alejandra Garrido, Fabio Kon, Gregorio
Robles, and Stefano Zacchiroli, editors, International Conference on
Open Source Systems: Towards Robust Practices, pages 60–65. Springer,
May 2017.
- Jacob Krüger, Stephan Dassow,
Karl-Albert Bebber, and Thomas Leich.
Daedalus or Icarus? Experiences on Follow-The-Sun.
In International Conference on Global Software Engineering, ICGSE,
pages 31–35. IEEE, May 2017.
- Jacob Krüger, Ivonne Schröter,
Andy Kenner, and Thomas Leich.
Empirical Studies in Question-Answering Systems: A Discussion.
In International Workshop on Conducting Empirical Studies in
Industry, CESI, pages 23–26. IEEE, May 2017.
- Ivonne Schröter, Jacob Krüger,
Janet Siegmund, and Thomas Leich.
Comprehending Studies on Program Comprehension.
In International Conference on Program Comprehension, ICPC, pages
308–311. IEEE, May 2017.
- Ivonne Schröter, Jacob Krüger,
Philipp Ludwig, Marcus Thiel, Andreas Nürnberger, and Thomas Leich.
Identifying Innovative Documents: Quo vadis?.
In Slimane Hammoudi, Michal Smialek, Olivier Camp, and Joaquim Filipe, editors,
International Conference on Enterprise Information Systems,
ICEIS, pages 653–658. ScitePress, April 2017.
- Wolfram Fenske, Jens Meinicke, Sandro
Schulze, Steffen Schulze, and Gunter Saake.
Variant-Preserving Refactorings for Migrating Cloned Products
to a Product Line.
In International Conference on Software Analysis, Evolution and
Reengineering (SANER), pages 316–326. IEEE,
2017.
- Wolfram Fenske, Sandro Schulze, and
Gunter Saake.
How Preprocessor Annotations (Do Not) Affect Maintainability: A
Case Study on Change-Proneness.
In International Conference on Generative Programming: Concepts &
Experience (GPCE), pages 77–90. ACM, October
2017.
- Jacob Krüger, Ivonne Schröter,
Andy Kenner, Christopher Kruczek, and Thomas Leich.
FeatureCoPP: Compositional Annotations.
In International Workshop on Feature-Oriented Software
Development, FOSD, pages 74–84. ACM, October
2016.
- Jacob Krüger, Wolfram Fenske, Jens
Meinicke, Thomas Leich, and Gunter Saake.
Extracting Software Product Lines: A Cost Estimation
Perspective.
In International Systems and Software Product Line Conference,
SPLC, pages 354–361. ACM, September 2016.
- Jacob Krüger.
A Cost Estimation Model for the Extractive Software-Product-Line
Approach.
Master thesis, University of Magdeburg, Germany, February
2016.
- Wolfram Fenske.
Code Smells in Highly Configurable Software.
In Doctoral Symposium of the International Conference on Software
Maintenance and Evolution (ICSME), pages 602–605. IEEE, September
2015.
- Wolfram Fenske and Sandro Schulze.
Code Smells Revisited: A Variability Perspective.
In International Workshop on Variability Modelling of Software-intensive
Systems (VaMoS), pages 3–10, New York, NY, USA, January 2015.
ACM.
- Wolfram Fenske, Sandro Schulze, Daniel
Meyer, and Gunter Saake.
When Code Smells Twice as Much: Metric-Based Detection of
Variability-Aware Code Smells.
In International Working Conference on Source Code Analysis and
Manipulation (SCAM), pages 171–180. IEEE,
2015.
- Wolfram Fenske, Thomas Thüm, and
Gunter Saake.
A Taxonomy of Software Product Line Reengineering.
In Proc. Int’l Work. on Variability Modeling of Software-Intensive
Systems (VaMoS ’14), pages 4:1–4:8, New York, NY, USA, January
2014. ACM.