print · source · login   

Software Product Lines

Customization allows software companies to tailor their products to diverse application contexts and market segments. Software product lines are a key technology for the development of customized software at scale. When developing software product lines, the aim is to keep the code base maintainable, while at the same time reducing development costs. Maintaining a software product line can also give rise to unique challenges during software analysis and testing, especially when the number of customizable variation points is large, leading to an astronomically large space of possible products -- calling for improved software analysis and testing techniques.

Course on software product lines

The course Software Product Lines (M.Sc., 6 ECTS) is held in winter semesters.

Thesis and internship topics

Last update: June 20, 2022

1) Evolutionary Learning From Configuration Spaces. Recent studies have explored synergies between machine learning and software variability to address software engineering problems, such as software product line analysis, anomaly detection and performance testing. The goal of this thesis is to investigate whether evolutionary computing concepts can be used to learn prediction and classification models from samples of configurations’ measurements of highly-configurable systems. Prerequisites: a background in Evolutionary Computing and Artificial Intelligence

2) Search-Based Subtree Mining: Several modelling languages used in software engineering typically rely on trees as a data structure for capturing human knowledge and supporting software analysis. The goal of this thesis is to design and experiment with search-based model engineering concepts to identify recurring patterns in databases of trees, in particular, feature models. As subjects for this investigation, we will consider real-world assets made available in the literature, including the source code and specification models obtained from open source projects. Prerequisites: a background in Evolutionary Computing, Data Structures, and Formal Languages

3) Anomaly Detection in Non-Functional Behavior: In real-world scenarios, software product lines will inevitably evolve to satisfy changes in external conditions and stakeholders' requirements. This is a challenging and error-prone task which may often lead to serious inconsistencies, inadvertent loss of semantics; or subtle redundancies. The goal of this thesis is to extend concepts for anomaly detection to the domain of non-functional requirements, including response time, energy and memory consumption. Prerequisites: a background in SAT/SMT solvers, linear algebra and software product lines.

We are also open to your ideas on topics in this direction. Feel free to contact Daniel Strüber if you are interested and/or have any questions.