We offer two different seminars for master students at the Institute for Software Engineering and Automotive Informatics in the winter term 2026/2027.
Nowadays, software often has to be available on many platforms and be adaptable to the many different needs of users and customers. Whether it's configuring your new car, your operating system or installing mods for Minecraft, software needs to be flexible and customizable everywhere. It can quickly happen that there are so many configuration options that there can be a different software variant for every person on earth! In this seminar you will become an expert in one aspect of tackling the challenges arising from developing highly configurable software, such as:
The seminar is offered next winter term (2026/2027).
Program Slicing for Software Product Lines
Context: Program slicing is the reduction of a program to a subset that produces the same result for a given slicing point. In the context of software product lines can be used for either the extraction of features from legacy code or the analysis of existing SPLs. However, not every SPL implementation technique benefits of program slicing in the same way.
Goals: Identify different applications of program slicing used for SPL extraction. Identify different applications of program slicing used for SPL analysis. Discuss which of the employed techniques share commonalities and where they diverge from each other.
Real-world Migrations to Software Product Lines
Context: Software product line reengineering encompasses the extraction of features from several already existing products in the same domain. During the extraction process many different decisions can be made that make each extraction fairly unique. By collecting such case studies migrating legacy code into a SPL, an effort can be made to summarize the state of the art of SPL Reengineering and detect gaps in the current research.
Goals: Collect and describe case studies that focus on extracting a software product line from existing software. Compare the different approaches to each other. Identify common challenges and potential gaps in the process.
AI powered SPL Extraction
Context: Most variant-rich systems are not initially set up as SPLs. They are developed as set of variants/clones and later refactored into SPLs. This process is called reengineering. The goal of this study is to explore the challenges and opportunities of reengineering SPLs using AIs and compare it to state of the art AI-less approaches.
Goals: Collect and describe multiple different approaches for AI powered SPL extraction. Compare strengths, fields of application and limitations with each other. Discuss the impact of AI techniques for SPL extraction by contrasting it with a non-AI baseline.
Employing Machine Learning for Generating Artificial Feature Models
Context: Feature models encode the all valid configurations of a software product line. Therefore, they are commonly analyzed, e.g., with SAT or #SAT solvers, to gain insights on the underlying product line. However, to empirically evaluate these solvers, many feature models are needed, and not many real-world feature models exist. Therefore, automated techniques to generate artificial feature models have been created.
Goals: Find methods for creating artificial feature models. Compare their advantages and disadvantages on a set of chosen criteria. How well do different techniques generate feature models that are close to real-world examples?
Meta-Optimization in Software Product Line Engineering
Context: Meta-Optimization describes the process of tuning a numerical optimization algorithm with another optimization method. It often becomes necessary as the performance of many optimization techniques heavily depends on the configuration of the algorithm, which is quite hard to do manually. However, in what form such approaches have already been adopted in the world of software product line (SPL) engineering is currently unknown.
Goals: Identify meta-optimization techniques commonly employed in SPL engineering. Identify tasks in SPL engineering for which meta-optimization is commonly employed. Are specific meta-optimization techniques particularly suitable for specific problems?
Deep Variability -- Interactions across Product Line Borders?
Context: The performance or behavior of a software product is not only dependent on the product line it is sampled from. As software is compiled using different compilers, executed on different hardware, and deployed on different data, a large number of additional variability points also impacts the software product. While horizontal interaction between product lines has already been well-researched, the concept of "deep variability" in the vertical dimension is relatively new. However, it is a important new avenue of research, as deep variability can for example negatively impact the reproduciblity of software-based research.
Goals: Research the difference between deep variability and cross-product-line analysis/effects. Identify sources of deep variability, impact, and possible solutions. Analyze the impact of deep variability on the reproducibility of software execution and therefore research findings.
Detecting Potential Feature Interactions in Software Product Lines
Context: Software product lines (SPLs) are often tested for interactions between their features. However testing all possible feature cominations is often unnecessary as not all features can influence each other within the actual implementation. Thus, some approaches take solution space artefacts into account to determine which features are likley to interact and which are not, in order to focus testing efforts.
Goals: Identify techniques for determing potential feature interactions in products. Categorize these techniques by their required input, effort and accuracy. Compare the different strategies with respect to their advantages and disadvantages.
Heuristic T-Wise Sampling Algorithms
Context: Software product lines (SPLs) are often tested by running tests on a small set of representative configurations that cover all possible combinations between t features (i.e. t-wise samples). Creating samples with 100% t-wise coverage is possible, but may take considerable effort for larger SPLs. To this end, heuristic algorithms have been developed that efficiently create samples by trying to maximize the coverage, but not necessarily up to 100%.
Goals: Identify which heuristic algorithms exist for t-wise sampling. Identify the individual trade-off of coverage, sample size, and sampling time for these algorithms. Compare the different algorithms with respect to their advantages and disadvantages.
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.
Goals: 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.
Knowledge Compilation for Automated Reasoning in SE
Context: Knowledge compilation refers to translating an original logical expression to another format with beneficial properties regarding efficiency of follow up analyses. The concept is applied in various domains to accelerate automated reasoning revolving around many computations. However, since the application of knowledge compilation is so heavily scattered across different communities, it is hard for researchers to get an overview on possibilities.
Goals: Identify applications of knowledge compilation for SE. Extract targeted problems. Derive mapping between knowledge compilation formats and problems they are used for.
Constraint Dialects Used for Representing Variability of Configurable Systems
Context: Configurable systems are part of your everyday life. Here, you can assemble multiple product variants from a pool of features. In practice, there are thousands of dependencies between such features. Typically, to facilitate automated reasoning, such dependencies are represented as logical formulas in varying constraint dialects. While automated reasoning research focuses mostly Boolean logic, many other dialects have been considered and employed. However, the relevance of other dialects is hard to quantify as there has not been a systematic analyses of employed techniques.
Goals: Identify popular constraint dialects used for representing variability. Examine usage of dialects depending on system domain. Research available reasoning engines for non-boolean dialects.
Product Line Adoption in Practice
Context: Configurable systems are prevalent in virtually every part of human live, such as transportation, communication, or entertainment. In practice, such systems are typically managed as product lines consisting of different products with commonalities and variabilities. Various research efforts target alleged problems in the area of product lines. However, to focus research on actual issues in practice, it is vital to understand concerns that actually occur in practice.
Goals: Gather relevant work on industrial practices when dealing with product lines. Identify abiding problems when working with product lines. Provide a classification and overview of problems.
Commit Analysis Tools for Product Lines
Context: Product line techniques are used in the industry since decades. With a rising code base and multiple developers, the need for supporting the development of product lines rises. To solve problems, we first need to understand them. Different tools have been developed to analyze commits of product lines in existing open source repositories.
Goals: Describe existing tools. What are advantages and disadvantages of the tools? Compare the tools with each other.
Mutation Testing for Preprocessors
Context: Mutation testing is a software testing technique used to evaluate whether existing tests can detect errors in source code. It introduces small code changes using predefined rules called mutation operators and checks whether the test suite detects these changes. In recent years, mutation testing has also been extended to configurable software systems, which allow different features to be enabled or disabled depending on specific requirements. In such systems, preprocessors can be used to include or exclude certain parts of the source code based on configuration settings. Mutation testing can therefore help evaluate the effectiveness of test suites across different software configurations.
Goals: Describe how mutation testing for preproessor annotations work. Describe the different mutation operators for preprocessor annotations. Explain the problems with mutation testing for preprocessor annotations.
Formal methods comprise mathematically rigorous techniques to analyze systems, e.g., to verify software or reason about machine-learning classifiers. Classical formal methods target a single result, such as "The system does not deadlock." or "The classifier is robust up to a small input change.", without providing an explanation of why the result holds or what the important ingredients are for obtaining it. Explainable formal methods aim at filling this gap, improving comprehension of system behavior, the analysis process, and its outcomes.
In this seminar, we will address recent advancements in the field of explainable formal methods and AI, covering the foundations and applications of causality, importance measures, logic-based formal explanations, and formal verification of classifiers.
The specific topics and reference papers addressed in the seminar will be published in early October. The seminar is held in English.
You may use one of the following templates. You may also use your own template.
Please note: Once you watch the video, data will be transmitted to YouTube/Google. For more information, see Google Privacy
This course is supervised by Rahel Sundermann and Thomas Thüm.
Deep Variability -- Interactions across Product Line Borders?
Context
The performance or behavior of a software product is not only dependent on the product line it is sampled from. As software is compiled using different compilers, executed on different hardware, and deployed on different data, a large number of additional variability points also impacts the software product. While horizontal interaction between product lines has already been well-researched, the concept of "deep variability" in the vertical dimension is relatively new. However, it is a important new avenue of research, as deep variability can for example negatively impact the reproducablity of software-based research.
Goal / Research Questions
Papers
Metrics for Characterizing Feature Model Complexity
Context
Feature models encode the all valid configurations of a software product line. Therefore, they are commonly analyzed, e.g., with SAT or #SAT solvers, to gain insights on the underlying product line. But not only insights on the product line, but also the complexity of the feature model, e.g., the ease of solver-based analyses or modifiability of the feature model, can be helpful to guide stakeholder decisions.
Goal / Research Questions
Identify common measure that characterize the complexity of a feature model for various applications.
Paper
Ebrahim Bagheri and Dragan Gasevic. “Assessing the Maintainability of Software Product Line Feature Models Using Structural Metrics”. In: Software Quality Journal (SQJ) 19.3 (2011), pp. 579–612. DOI: https://doi.org/10.1007/s11219-010-9127-2
Richard Pohl, Vanessa Stricker, and Klaus Pohl. “Measuring the Structural Complexity of Feature Models”. In: Proc. Int’l Conf. on Automated Software Engineering (ASE). ACM, 2013, pp. 454–464. DOI: 10.1109/ASE.2013.6693103.
Públio Silva, Carla Bezerra, and Ivan Machado. “Automating Feature Model maintainability evaluation using machine learning techniques”. In: Journal of Systems and Software 195 (2023), p. 111539. ISSN: 0164-1212. DOI:https://doi.org/10.1016/j.jss.2022.111539.
Program Slicing for Software Product Lines
Context
Program slicing is the reduction of a program to a subset that produces the same result for a given slicing point. In the context of software product lines can be used for either the extraction of features from legacy code or the analysis of existing SPLs. However, not every SPL implementation technique benefits of program slicing in the same way.
Goal / Research Questions
Identify different applications of program slicing used for SPL extraction.
Papers
Real World Migrations to Software Product Lines
Context
Software product line reengineering encompasses the extraction of features from several already existing products in the same domain. During the extraction process many different decisions can be made that make each extraction fairly unique. By collecting such case studies migrating legacy code into a SPL, an effort can be made to summarize the state of the art of SPL Reengineering and detect gaps in the current research.
Goal / Research Questions
Collect and describe case studies that focus on extracting a software product line from existing software.
Papers
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
Papers
Analyzing Configuration Spaces of Cardinality-Based Feature Models
Context
Feature models are often limited to boolean configuration spaces with a fixed number of features. However, cardinality-based feature models (CFMs) allow users to choose some features not just once, but multiple times. This makes it difficult to apply existing techniques for analyzing the configuration space represented by a CFM, e.g. for testing and estimating non-funtional properties of configurations.
Goal / Research Questions
Papers
Using Sampling for Performance Prediction of Software Product Lines
Context
For highly-configurable software, it is often important to know which configurations lead to low or high performance (e.g., runtime) of the resulting products. As the number of configurations is often extremely large, measuring all configurations is usually infeasible. Instead, some approaches use sampling, where a set of configurations is chosen for measurement, and the results are generalized to the full software product line.
Goal / Research Questions
Papers
An Overview of Variability Bug Collections for the Linux Kernel
Context
Configurable software systems can have variability bugs, which are bugs that occur in some but not all configurations of the software. The Linux kernel, being the most complex public software product line and having a wide-spread usage, is of particular interest for variability bug research. There are various works that have investigated varibility-related defects in the Linux kernel, and compiled respective data collections.
Goal / Research Questions
Papers
Knowledge Compilation for Automated Reasoning in SE
Context
Knowledge compilation refers to translating an original logical expression to another format with beneficial properties regarding efficiency of follow up analyses. The concept is applied in various domains to accelerate automated reasoning revolving around many computations. However, since the application of knowledge compilation is so heavily scattered across different communities, it is hard for researchers to get an overview on possibilities.
Goal / Research Questions
Papers
Constraint Dialects Used for Representing Variability of Configurable Systems
Context
Configurable systems are part of your everyday life. Here, you can assemble multiple product variants from a pool of features. In practice, there are thousands of dependencies between such features. Typically, to facilitate automated reasoning, such dependencies are represented as logical formulas in varying constraint dialects. While automated reasoning research focuses mostly Boolean logic, many other dialects have been considered and employed. However, the relevance of other dialects is hard to quantify as there has not been a systematic analyses of employed techniques.
Goal / Research Questions
Papers
Commit Analysis Tools for Product Lines
Context
Product line techniques are used in the industry since decades. With a rising code base and multiple developers, the need for supporting the development of product lines rises. To solve problems, we first need to understand them. Different tools have been developed to analyze commits of product lines in existing open source repositories.
Goal / Research Questions
Papers
Supporting Clone-And-Own in Industry
Context
Using Clone-and-Own, i.e., copying existing code and adapting it for special requests, is a common way of developing configurable software in the industry. However, this comes with challenges for developers and the necessity for techniques to cope with appearing problems.
Goal / Research Questions
Papers
The course material is provided in the corresponding Stud.IP course.
This course is supervised by Raphael Dunkel and Thomas Thüm.
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
Papers
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
Papers
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
Papers
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
Papers
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
Papers
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
Papers
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
Papers
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
Papers
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
Papers
The course material is provided in the corresponding Stud.IP course.
This course is supervised by Paul Bittner and Thomas Thüm.
The course material is provided in the corresponding Stud.IP course.
Vacancies of TU Braunschweig
Career Service' Job Exchange
Merchandising
Term Dates
Courses
Degree Programmes
Information for Freshman
TUCard
Technische Universität Braunschweig
Universitätsplatz 2
38106 Braunschweig
P. O. Box: 38092 Braunschweig
GERMANY
Phone: +49 (0) 531 391-0