Teaching and Topics for Theses

If you want to work on a topic in the area of highly configurable systems (e.g., Linux kernel), software ecosystems (e.g., Android app analysis), or software product lines (e.g., commercial firmware for power electronics), feel free to contact me via email or drop by at my office at Chalmers/GU campus Lindholmen in Gothenburg. 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:

  • 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 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)
    • further details about the topic
    • general information about theses with ABB
  • thesis in the context of a novel variation management system (GIT with variability support)
    • 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)
  • NEW
    • diff tool for software variants
    • quantitative analysis of Linux kernel compiler errors
    • automatically classify IFDEF-related patches