If you want to work on a topic in the area of highly configurable systems (e.g., Linux kernel), robotics applications (e.g., ROS-based systems), software ecosystems (e.g., Android app analysis), or software product lines (e.g., commercial firmware for power electronics), please contact us via email. Most of the following topics can be adjusted for being addressed in Master, PhD, or Bachelor theses, using different kinds of research methods (e.g., empirical methods including mining software repositories, engineering and evaluating a tool, or developing an analysis infrastructure), with or without industry participation.
Please contact us via our mailing list. Use the subject “Interested in a [BSc/MSc] thesis topic” and in the email body (in English) briefly introduce yourself: study program, semester, university. To understand your background, we need a CV. It should contain your academic (computer-science-related) interests, academic experience (usually your studies), degrees, and computer-science-related projects that you already performed. It is also advisable to add your transcripts; otherwise we might request them to understand what courses you have taken and where your strenghts are. Do not worry about performance, it is most important for us to understand your background to choose a topic that relates to your strenghts. Then, also indicate whether there’s a specitic topic or area you are interested; otherwise we will propose sth.
We are also open to topic proposals.
- robotics reconfiguration framework with flexible feature binding time/mode integrated with ROS (robotics operating system)
- improve test-case generation using object tracking in evosuite or randoop
- study asset management practices in machine/deep learning experiments and intelligent systems engineering
- comparative survey on machine/deep learning experiment management tools
- a lightweight realization of VTS (variation tracking system)
- realize a behavior trees DSL in Jetbrains MPS (extension of mbeddr C)
- case study of defect prediction in an industrial context
- Intellij IDEA feature annotation/visualization plugin
- generate Scala domain model implementations from EMF Ecore
- benchmark generator for evolving variant-rich systems
- study test-case reuse across open-source repositories
- study response rates in empirical works
- create a diff tool for software variants
- quantitative analysis of Linux kernel compiler errors
- automatically classify IFDEF-related patches
- a study on benchmarking in software engineering
- study on how configuration affects security; future tool for security warnings based on smells for certain selections (e.g., based on security policies)
- comparative study of configuration mechanisms in robotics middlewares
- explore deep learning on raw commit changeset classification
- an LSP for embedded annotations
- thesis together with SUSE Germany and Linux kernel maintainers
- incorporate a SAT solver (picosat) into the Linux kernel configurator (make xconfig, make menuconfig) to support kernel configuration processes (detect dead features, control visibility of option subtrees, resolve configuration conflicts)
- more details on the kconfig-sat website
- thesis on visualizing the evolution of software features, extending our feature dashboards and IDE plugins
- thesis together with Danfoss Denmark
- static analysis of firmware source code to extract configuration constraints and to reverse-engineer/extend a variability model
- thesis together with ABB Research Germany
- product-line migration feasibility study (static analysis of legacy software artifacts, cost/benefit analysis, architecture evaluation)
- thesis topic by Helmut Balzert
- thesis in the context of a novel variation management system
- intelligent code merge tool which, for instance, can handle code-alignment issues
- identify side effects of source code using static analysis
- conceive and implement a feature dashboard, showing developers what features exist, where they reside in the code, and show various metrics about features (e.g., scattering degree, tangling degree, lines of feature code)
- controlled experiment: Does working with smaller code chunks make sense? Where would you like to have such reductions?
- thesis in the context of mining software repositories
- study feature annotations in the codebase history of the Mozilla Firefox project
- study feature ownership in the codebase history of the Linux kernel: Who maintains feature code? What kinds of coordination patterns arise?
- identify and study merge refactorings in the codebase history of the Linux kernel or another large open-source project (such as from github)