Topics
Developer Workflow in Variation Control Systems
Context
Editing variational systems can be a mentally challenging task as it requires to understand and maintain multiple features and their interactions simultaneously. Variation control systems promote development of software product lines in terms of projectional editing: Instead of editing the complete software product line, developers edit a view of the software that shows only relevant parts of the code such as all code elements that belong to a particular feature or variant.
Goal / Research Questions
- Describe the workflow of developers in variation control systems.
- Describe how the workflow in vartiation control systems differs from the workflow with version control systems, and how they interact.
- Investigate challenges and edge cases.
Papers
- Eric Walkingshaw and Klaus Ostermann. “Projectional Editing of Variational Software”. In: Proc. Int’l Conf. on Generative Programming: Concepts & Experiences (GPCE). ACM, 2014, pp. 29–38. doi: 10.1145/2658761.2658766.
- Lukas Linsbauer, Alexander Egyed, and Roberto Erick Lopez-Herrejon. “A Variability Aware Configuration Management and Revision Control Platform”. In: Proc. Int’l Conf. on Software Engineering (ICSE). ACM, 2016, pp. 803–806. doi: 10.1145/2889160.2889262.
- Lukas Linsbauer, Felix Schwägerl, Thorsten Berger, and Paul Grünbacher. “Concepts of Variation Control Systems”. In: J. Systems and Software (JSS) 171 (2021), p. 110796. doi: 10.1016/j.jss.2020.110796.
Variability Modelling Languages and Their Analyzability
Context
To describe the valid configurations of a product line, researchers created a multitude of variability modelling languages. Each language has different advantages and disadvantages in relevant properties such as usability or expressiveness. However, language representation also limits the applicability of different automated variability analyses and their ease of computation.
Goal / Research Questions
-
Identify common languages for variability modelling.
-
Compare these languages, especially in regards to the analyses their representation allows for.
-
Identify similarities between language analyzability and identify shared root causes. Which attributes of variability modelling languages impact the applicability and complexity of automated analysis approaches?
Paper
-
David Benavides, Chico Sundermann, Kevin Feichtinger, José A. Galindo, Rick Rabiser, and Thomas Thüm. “UVL: Feature Modelling With the Universal Variability Language”. In: J. Systems and Software (JSS) 225 (2025). doi: 10.1016/j.jss.2024.112326.
-
Holger Eichelberger and Klaus Schmid. “A Systematic Analysis of Textual Variability Modeling Languages”. In: Proc. Int’l Systems and Software Product Line Conf. (SPLC). ACM, 2013, 12–21. doi: 10.1145/2491627.2491652.
-
Chico Sundermann, Stefan Vill, Thomas Thüm, Kevin Feichtinger, Prankur Agarwal, Rick Rabiser, José A. Galindo, and David Benavides. “UVLParser: Extending UVL With Language Levels and Conversion Strategies”. In: Proc. Int’l Systems and Software Product Line Conf. (SPLC). ACM, 2023, pp. 39–42. doi: 10.1145/3579028.3609013.
Formalizing Variational Analyses with the Choice Calculus
Context
To design and specify analyses, formal languages are needed. For analysing source code in software product lines, one such a language is the choice calculus, a minimal language to describe variation. The choice calculus has been used as a foundation for specifying numerous analyses in research, and as a basis for their implementation.
Goal / Research Questions
- Describe what the choice calculus is and how it can be used to specify and implement variational analyses.
- Give an overview of existing use cases and analyses that were formalized with the choice calculus.
- Identify commonalities and differences in different usages and dialects of the choice calculus. Why and how is it adapted to its intended use case?
Papers
- Martin Erwig and Eric Walkingshaw. “The Choice Calculus: A Representation for Software Variation”. In: Trans. on Software Engineering and Methodology (TOSEM) 21.1 (2011), 6:1–6:27. doi: 10.1145/2063239.2063245.
- Sheng Chen, Martin Erwig, and Eric Walkingshaw. “A Calculus for Variational Programming”. In: Proc. Europ. Conf. on Object-Oriented Programming (ECOOP). Vol. 56. Schloss Dagstuhl, 2016, 6:1–6:28. doi: 10.4230/LIPICS.ECOOP.2016.6.
- Jeffrey M. Young, Paul Maximilian Bittner, Eric Walkingshaw, and Thomas Thüm. “Variational Satisfiability Solving: Efficiently Solving Lots of Related SAT Problems”. In: Empirical Software Engineering (EMSE) 28 (2022), p. 53. doi: 10.1007/s10664-022-10217-3.
Analysis Strategies for Software Product Lines
Context
Software product lines (SPLs) describe billions of individual software variants simultaneously. Analyzing all these variants, for example to ensure soundness properties, does not scale in practice. To this end, analysis must exploit the similarities between the variants (i.e., the features), similar to how an SPL implements billions of variants without ever explicitly enumerating them.
Goal / Research Questions
- Identify common analyses strategies for software product lines and their uses.
- Identify how the exponential explosion of the configuration space is addressed by these strategies.
- Compare the different kinds of analyses strategies with respect to their advantages and disadvantages.
Papers
- Thiago Castro, Leopoldo Teixeira, Vander Alves, Sven Apel, Maxime Cordy, and Rohit Gheyi. “A Formal Framework of Software Product Line Analyses”. In: Trans. on Software Engineering and Methodology (TOSEM) 30.3 (2021). doi: 10.1145/3442389.
- Thomas Thüm, Sven Apel, Christian Kästner, Ina Schaefer, and Gunter Saake. “A Classification and Survey of Analysis Strategies for Software Product Lines”. In: ACM Computing Surveys (CSUR) 47.1 (2014), 6:1–6:45. doi: 10.1145/2580950.
- Sergiy Kolesnikov, Alexander von Rhein, Claus Hunsen, and Sven Apel. “A Comparison of Product-Based, Feature-Based, and Family-Based Type Checking”. In: Proc. Int’l Conf. on Generative Programming: Concepts & Experiences (GPCE). ACM, 2013, pp. 115–124. doi: 10.1145/2517208.2517213.
Methods for Finding Locations Where a Feature is Implemented
Context
For comprehending, maintaining, and extending existing software, it is crucial to find locations of interest in a software system quickly, reliably, and exhaustively. To that end, tracing features to their implementation is one of the most common activities of developers. However, such feature traces are rarely documented in practice. Therefore, research on feature location an feature identification tries to assist developers in documenting or recovering such information.
Goal / Research Questions
- Describe the concept of feature location.
- What sources of knowledge are exploited by existing methods? How is the knowledge used?
- Identify which feature location techniques are useful for in different project types or development scenarios.
Papers
- Christian Kästner, Alexander Dreiling, and Klaus Ostermann. “Variability Mining: Consistent Semiautomatic Detection of Product-Line Features”. In: IEEE Trans. on Software Engineering (TSE) 40.1 (2014), pp. 67–82. doi: 10.1109/TSE.2013.45.
- Lukas Linsbauer, Roberto Erick Lopez-Herrejon, and Alexander Egyed. “Variability Extraction and Modeling for Product Variants”. In: Software and Systems Modeling (SoSyM) 16.4 (2017), pp. 1179–1199. doi: 10.1007/s10270-015-0512-y.
- Julia Rubin and Marsha Chechik. “A Survey of Feature Location Techniques”. In: Domain Engineering: Product Lines, Languages, and Conceptual Models. Ed. by Iris Reinhartz-Berger, Arnon Sturm, Tony Clark, Sholom Cohen, and Jorn Bettin. Springer, 2013, pp. 29–58. doi: 10.1007/978-3-642-36654-3_2.
Clone-Based Software Reuse - Evolution and Maintenance Practices in Open Source
Context
On GitHub, developers often maintain a separate, modified variant (fork) alongside the original. Shared components between variants may not be consistently updated. This can lead to inefficient patching across variants.
Goal / Research Questions
- Identify and describe why and how clone-and-own is applied in open source projects on GitHub.
- Identify and describe challenges of software reuse between open source repos.
- Identify and describe tools and techniques that might aid developers in maintaining their variant.
Papers
- John Businge, Moses Openja, Sarah Nadi, Engineer Bainomugisha, and Thorsten Berger. “Clone-Based Variability Management in the Android Ecosystem”. In: Proc. Int’l Conf. on Software Maintenance and Evolution (ICSME). IEEE, 2018, pp. 625–634. doi: 10.1109/ICSME.2018.00072.
- John Businge, Ahmed Zerouali, Alexandre Decan, Tom Mens, Serge Demeyer, and Coen De Roover. “Variant Forks - Motivations and Impediments”. In: Proc. Int’l Conf. on Software Analysis, Evolution and Reengineering (SANER). IEEE, 2022, pp. 867–877. doi: 10.1109/SANER53432.2022.00105.
- Poedjadevie Kadjel Ramkisoen, John Businge, Brent van Bladel, Alexandre Decan, Serge Demeyer, Coen De Roover, and Foutse Khomh. “PaReco: Patched Clones and Missed Patches Among the Divergent Variants of a Software Family”. In: Proc. Europ. Software Engineering Conf./Foundations of Software Engineering (ESEC/FSE). ACM, 2022, pp. 646–658. doi: 10.1145/3540250.3549112.
- Shurui Zhou, Ştefan Stănciulescu, Olaf Leßenich, Yingfei Xiong, Andrzej Wąsowski, and Christian Kästner. “Identifying Features in Forks”. In: Proc. Int’l Conf. on Software Engineering (ICSE). ACM, 2018, pp. 105–116. doi: 10.1145/3180155.3180205.
On the Difficulty of Obtaining Feature Models Retroactively
Context
In software product line theory, feature models are a core component of a product line. In practice however, developers often do not model the variability in a system explicitly. The knowledge about features and their relationships is often implicitly encoded in configurations files, the build system, and/or solution space variability. Various techniques and tools try to extract this knowledge, which is a system-dependent and complex process.
Goal / Research Questions
- Assess the core ideas behind techniques for extracting knowledge about features and their relationships from a system.
- Identify and present technical and organizational challenges of extracting knowledge for feature modelling.
Papers
- Jessie Carbonnel, Marianne Huchard, and Clémentine Nebut. “Towards the Extraction of Variability Information to Assist Variability Modelling of Complex Product Lines”. In: Proc. Int’l Workshop on Variability Modelling of Software-Intensive Systems (VaMoS). ACM, 2018, pp. 113–120. doi: 10.1145/3168365.3168378.
- Alexander Knüppel, Thomas Thüm, Stephan Mennicke, Jens Meinicke, and Ina Schaefer. “Is There a Mismatch Between Real-World Feature Models and Product-Line Research?” In: Proc. Europ. Software Engineering Conf./Foundations of Software Engineering (ESEC/FSE). ACM, 2017, pp. 291–302. doi: 10.1145/3106237.3106252.
- Johann Mortara and Philippe Collet. “Capturing the Diversity of Analyses on the Linux Kernel Variability”. In: Proc. Int’l Systems and Software Product Line Conf. (SPLC). ACM, 2021, pp. 160–171. doi: 10.1145/3461001.3471151.
- Anjali Sree-Kumar, Elena Planas, and Robert Clarisó. “Extracting Software Product Line Feature Models From Natural Language Specifications”. In: Proc. Int’l Systems and Software Product Line Conf. (SPLC). ACM, 2018, pp. 43–53. doi: 10.1145/3233027.3233029.
Recommender Systems for Product Line Configuration
Context
Product line configuration describes the process of deriving valid configurations, i.e. individual products, from a product line by selecting and deselecting features. As product lines can grow very large and therefore contain an enormous number of both features and valid configurations, this process can grow very complex. Recommender systems can be used to support this process by proposing the user with recommended decisions.
Goal / Research Questions
-
Research and compare different approaches to recommender systems.
-
Research the usage of recommender systems in product line configuration and necessary adaptions for this specific use case.
-
Identify advantages and disadvantages of recommender systems in comparison to other approaches of computer-aided product line configuration.
Papers
-
Juliana Alves Pereira, Matuszyk Pawel, Sebastian Krieter, Myra Spiliopoulou, and Gunter Saake. “Personalized Recommender Systems for Product-Line Configuration Processes”. In: Comput. Lang. Syst. Struct. 54 (2018), pp. 451–471. doi: 10.1016/j.cl.2018.01.003.
-
Jorge Rodas-Silva, José A. Galindo, Jorge García-Gutiérrez, and David Benavides. “Selection of Software Product Line Implementation Components Using Recommender Systems: An Application to Wordpress”. In: IEEE Access 7 (2019), pp. 69226–69245. doi: 10.1109/ACCESS.2019.2918469.
-
Raouia Triki, Raúl Mazo, and Camille Salinesi. “Combining Configuration and Recommendation to Enable an Interactive Guidance of Product Line Configuration”. In: Recommender Systems. John Wiley & Sons, 2014. Chap. 7, pp. 135–155. doi: 10.1002/9781119054252.ch7.
Variability Mechanisms Used in Practice
Context
Software product lines can be implemented using a wide variety of different variability mechanism, such as preprocessors, plug-in frameworks, or feature-oriented programming. All these techniques come with advantages and disadvantages, which make them feasible or not feasible for use a given use case. Thus, in practice often many factors have to be considered when developing a software product line and deciding on a variability mechanism.
Goal / Research Questions
- Identify which variability mechanism are used in practice.
- Identify and describe advantages and disadvantages of the different variability mechanisms.
- Discuss reasons that are used to justify the implementation of a particular variability mechanism.
Papers
- Thorsten Berger, Jan-Philipp Steghöfer, Tewfik Ziadi, Jacques Robin, and Jabier Martinez. “The State of Adoption and the Challenges of Systematic Variability Management in Industry”. In: Empirical Software Engineering (EMSE) 25.3 (2020), pp. 1755–1797. doi: 10.1007/S10664-019-09787-6.
- Sascha El-Sharkawy, Nozomi Yamagishi-Eichler, and Klaus Schmid. “Metrics for Analyzing Variability and its Implementation in Software Product Lines: A Systematic Literature Review”. In: J. Information and Software Technology (IST) 106 (2019), pp. 1–30. doi: 10.1016/j.infsof.2018.08.015.
- Jabier Martinez, Xhevahire Tërnava, and Tewfik Ziadi. “Software Product Line Extraction From Variability-Rich Systems: The Robocode Case Study”. In: Proc. Int’l Systems and Software Product Line Conf. (SPLC). ACM, 2018, pp. 132–142. doi: 10.1145/3233027.3233038.
Satisfiability Solving for Feature Model Analyses
Context
In software product lines, feature models specify the set of available features as well as their constraints, such as dependencies between features. Feature models can be analyzed in many different ways such as detecting defects or computing insightful metrics for developers. Many analyses can be reduced to satisfiability solving proplems, which allows the employment of dedicated solvers.
Goal / Research Questions
- List common satisfiability-based analyses for feature models and their uses.
- Identify what types of solvers can be used to implement each analysis.
- Identify and describe circumstances that make each solver preferable to others.
Papers
- David Benavides, Sergio Segura, and Antonio Ruiz-Cortés. “Automated Analysis of Feature Models 20 Years Later: A Literature Review”. In: Information Systems 35.6 (2010), pp. 615–708. doi: 10.1016/J.IS.2010.01.001.
- Elias Kuiter, Sebastian Krieter, Chico Sundermann, Thomas Thüm, and Gunter Saake. “Tseitin or not Tseitin? The Impact of CNF Transformations on Feature-Model Analyses”. In: Proc. Int’l Conf. on Automated Software Engineering (ASE). ACM, 2022, 110:1–110:13. doi: 10.1145/3551349.3556938.
- Chico Sundermann, Elias Kuiter, Tobias Heß, Heiko Raab, Sebastian Krieter, and Thomas Thüm. “On the Benefits of Knowledge Compilation for Feature-Model Analyses”. In: Annals of Mathematics and Artificial Intelligence (AMAI) 92.5 (2023), pp. 1013–1050. doi: 10.1007/s10472-023-09906-6.
AI for Patching in Clone-and-Own Environments
Context
Clone-and-Own is a common way of handling software variability, where the source code is copied and then partially adapted for each specific product. This has the disadvantage of requiring increased developer intervention when a bug necessitates changes not only in one product's code base, but multiple adaptions that can be slightly different. Automated transfer of software patches between different variants can help to alleviate this problem by reducing the time expenditure of the involved developers.
Goal / Research Questions
-
Identify common techniques that allow for the transfer of patches between different variants.
-
Identify AI techniques that are used for patch transferring and research the necessary adaptations for this use-case.
-
Compare the advantages and disadvantages of AI techniques to non-AI techniques.
Papers
-
Xingyu Li, Zheng Zhang, Zhiyun Qian, Trent Jaeger, and Chengyu Song. “An Investigation of Patch Porting Practices of the Linux Kernel Ecosystem”. In: Proc. Working Conf. on Mining Software Repositories (MSR). ACM, 2024, 63–74. doi: 10.1145/3643991.3644902.
-
Shengyi Pan, You Wang, Zhongxin Liu, Xing Hu, Xin Xia, and Shanping Li. “Automating Zero-Shot Patch Porting for Hard Forks”. In: Proc. Int’l Symposium on Software Testing and Analysis (ISSTA). ACM, 2024, 363–375. doi: 10.1145/3650212.3652134.
-
Susheng Wu, Ruisi Wang, Yiheng Cao, Bihuan Chen, Zhuotong Zhou, Yiheng Huang, JunPeng Zhao, and Xin Peng. “Mystique: Automated Vulnerability Patch Porting with Semantic and Syntactic-Enhanced LLM”. In: Proc. Int’l Symposium on Foundations of Software Engineering (FSE) 2 (2025). doi: 10.1145/3715718.
Feature-Model Analysis Beyond Boolean Logic
Context
In the literature, many complex feature-model constructs have been suggested that cannot be easily translated to boolean logic. Still, most work focuses on purely boolean reasoning limiting the applicability to the complex constructs. Hence, researchers and practitioners often have a hard time identifying suitable solutions for the constructs they may want to use.
Goal / Research Questions
- Identify feature-modelling constructs that cannot be easily represented with boolean logic.
- Identify reasoning proposals that may cope with those constructs.
- Derive a mapping which proposals could be solved with which reasoning approaches.
- Discuss the gap between constructs and available solutions.
Papers
- David Benavides, Pablo Trinidad, and Antonio Ruiz-Cortés. “Using Constraint Programming to Reason on Feature Models”. In: Proc. Int’l Conf. on Software Engineering and Knowledge Engineering (SEKE). 2005, pp. 677–682. Preprint on Academia.edu.
- Paul Maximilian Bittner, Thomas Thüm, and Ina Schaefer. “SAT Encodings of the At-Most-k Constraint – A Case Study on Configuring University Courses”. In: Proc. Int’l Conf. on Software Engineering and Formal Methods (SEFM). Ed. by Peter Csaba Ölveczky and Gwen Salaün. Springer, 2019, pp. 127–144. doi: 10.1007/978-3-030-30446-1_7.
- Krzysztof Czarnecki and Chang Hwan Peter Kim. “Cardinality-Based Feature Modeling and Constraints: A Progress Report”. In: Proc. Int’l Workshop on Software Factories (SF). 2005, pp. 16–20. Preprint on CiteseerX.
- Daniel-Jesus Munoz, Mónica Pinto, Lidia Fuentes, and Don Batory. “Transforming Numerical Feature Models into Propositional Formulas and the Universal Variability Language”. In: J. Systems and Software (JSS) 204 (2023). doi: 10.1016/j.jss.2023.111770.