Teaching and Topics for Theses

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), 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:

  • NEW
    • 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
  • 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 the tool FeatureDashboard
  • 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 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)