Recent Changes - Search:

CSE dept.


This site contains wiki-pages for the department of computer science and engineering at Chalmers and GU.


edit SideBar

SE /

ThesisProjects

On this page you will find the available thesis projects at the Software Engineering Division. Please contact the supervisor if you are interested in a topic listed here. Please also take a look at the general rules for master thesis projects at the computer science department.

Outline:


Master Program

For the slides introducing the Master thesis process at SE, please click HERE.

For the slides introducing the researchers at SE and their topics, please click HERE.

For an example of a thesis proposal accepted at SE, please click HERE.

Template for thesis proposal in Word and PDF.

NOTE: We also encourage thesis projects in close collaboration with companies or coming from your own ideas. However, please secure an academic supervisor before you write a thesis proposal.

Supervisor: Christian Berger:

  • Topics for Bachelor and Master thesis typically related to autonomous driving systems.
  • From point clouds to road user interaction: A tool for analyzing LIDAR data for human factors of road user interaction (topic area: "road safety", MSc thesis)
  • Sensor data quality and obstructions (topic area: "truck automation", MSc thesis)
  • Deploying to reality (topic area: "truck automation", MSc thesis)

Supervisor: Thorsten Berger:

  • thesis together with ABB Research Germany
    • Using Machine Learning for Feature Traceability
  • thesis on Android App evolution
    • we have a dataset of cloned Android games
    • the goal is to systematically integrate cloned apps and to study this process
  • thesis on RoboCode
    • analyze variants of RoboCode robots: https://robocode.sourceforge.io
    • systematically integrate them (perform domain analysis and create a feature model, create target architecture, integrate variants by realizing variation points)
  • 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 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)
  • 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

Supervisor: Michel Chaudron:

  • 'Documentation/Explanation on Demand': how can we produce (select & abstract) the information about a system that is relevant for a developer for a specific task at hand? In this project, we try to create a proof of concept that can produce 'Documentation on Demand' based on a multitude of available sources of information about the system, such as: source code, documentation, bug reports, test reports, etc. One part of this project is also: how to best present this information and how to integrate this into development tools.
   We can do this project on a regular PC, or explore how a smart whiteboard can be used as a collaborative tool for program understanding.
  • Develop a DSL & programming environment for cars (project with Lynk&Co).
  • Analyse the evolution of correspondence (and technical debt) between architecture/design and source code over time.
  • Build on online service for performing a quality-assessment for the modeling practices in open source projects
  • Machine Learning for Software Engineering:
    • build an automated classifier for recognizing software architecture/design documents in GitHub (based on analysis of words used)
    • how to recognize (and ideally generate) good layouts for UML Class diagrams (based on a large repository of examples).
    • classifying the roles of classes in software design (see paper 'Characterizing Classes' by Rebecca Wirf-Brocks)
    • Machine Learning for Traceability: use machine learning to link which text in sw documentation explains which image (of that documentation)?
  • Automated summarization of software designs (with Truong Ho-Quang/Rodi Jolak). Which information from designs is key for understanding a system design? This can be an empirical study in industry. How can we identify important (high level) design concepts from (reverse engineered) source code.
  • How do software designers explain software designs? Data analysis (some data has been collected already)
  • What is the influence of Culture (see Hofstede's Cultural Dimensions) on the practices that are uses in SE projects across different countries (if any)?
  • Also check out ongoing projects on which we can build thesis projects:
  • How do ICT-industries develop/grow/evolve in developing countries?
  • see B.Sc. projects below (we can reduce the scope to fit M.Sc. timescale)

Supervisor: Francisco de Oliveira Neto:

  • Platforms to support empirical software engineering:
    • Create a platform for automatic experimentation with software test techniques.
    • A formal experiment to investigate disparate software testing techniques.
  • Automatic test optimisation:
    • Automatic test optimisation on continuous integration environment
    • Optimisation of failure exposure rate through automatic test case generation.
    • Model-based Testing (collaboration with Diadrom)
    • Adaptive Test Case Selection for Mechatronic Application (collaboration with Volvo Cars)

Supervisor: Robert Feldt

Supervisor: Jennifer Horkoff

  • Requirements Engineering & Early Requirements Modeling
  • Software Engineering for Bioinformatics Workflows
    • With F. Gomez, Bioinformatics Core Facility
  • Strategic API Value and Measurements (Software Center Project #26)
    • With Axis, Bosch, Ericsson, Grundfos, & Tetra Pak
  • Large-Scale Agile Requirements Engineering (Software Center Project #27, with Eric Knauss)
    • With Bosch, Ericsson, Grundfos, Siemens, Tetra Pak, Volvo C, & Volvo T
  • Requirements Modeling and Game Development
    • with S. Björk
  • Web-service selection criteria and processes

Supervisor: Regina Hebig:

  • UI-Tracer: enhancing a software comprehension tool
    • Identify buttons and fields in a user interface to generate UI-testing scripts;
    • Presentation of UI-traces: generate replica of UI that allows navigation to corresponding code
  • Comprehension for AI systems
    • Create a taxonomy and map of approaches for Software visualization and Comprehension that support different Machine Learning/AI technologies
    • Apply and compare different existing approaches to visualizing/comprehending AI-decision & propose an improvement
  • MDE for Machine Learning Systems
    • Develop a small DSL that allows to model and generate Machine Learning systems that can be easily integrated into bigger software systems

Supervisor: Truong Ho-Quang

  • Theme A: Automated classification/extraction of UML models (see this paper)
    • Project A.1: Classification/extraction of sequence diagrams in images. (with Regina and Michel)
    • Project A.2: Classifier for reverse engineering vs forward design models.
  • Theme B: Impacts of UML use in OSS projects (see foundations of these projects) (with Michel Chaudron, Regina Hebig)
    • Project B.1: Evolution of UML files
    • Project B.2: Co-evolution of UML files and other artifacts of OSS projects such as:
      • Source code and its quality
      • Documentation
  • Theme C: Automated abstraction of UML designs based on evolving source code (with Michel Chaudron).
    • Project C.1: Condensation of class diagrams using machine learning (done by Filip Brynford in Ericsson)
    • Project C.2: Machine learning of layout of class diagrams
    • Project C.3: Automated classification of class role stereotypes (according to Wirf-Brocks) (see A Bachelor thesis by Berima Andam)
  • Theme D: Software Architecture Visualisation
    • Project D.1: Visualization of Electrical Architectures In the Automotive Domain Based on the Needs of Stakeholders (done by Nattapon Thathong and Florence Mayo in Volvo)
    • Project D.2: Software Architecture Visualisation: What information do different stake-holders need? (data from Ericsson, Volvo, TetraPak) (see this Bachelor thesis by Anna and Marjan)

Supervisor: Eric Knauss

  • Generally interested in case studies in the following areas (especially in combinations of them)
    • Agile
    • Requirements Engineering
    • Continuous Integration, Delivery, Deployment
  • Concrete topics Spring 2018 (Industry contact can be provided):
    • Data requirements for System of Systems (case study on how to define and monitor them)

Supervisor: Philipp Leitner

  • I supervise master projects in the broad area of Web and cloud engineering. Some examples are listed below, but I often advise students on topics of their own choosing as well:
    • Evaluating the impact of CI builds on release frequency (replication study of a published paper)
    • Studying performance-related discussions in code reviews of open source projects
    • Sufficient cloud benchmarking: Quantify the confidence of performance benchmark results. Extend the cloud benchmarking framework CWB with a metrics analysis module to dynamically compute confidence levels of performance benchmark results.
    • (Semi-)automated transformation of a functional program to serverless. Includes coming up with a scheme how to use an existing functional programming language, such as Haskell, as a DSL to define the composition of serverless cloud functions.
    • Performance evaluation of serverless infrastructures, such as AWS Lambda. Includes devising, deploying, and executing expressive benchmarks.
    • Cost-performance analysis for Infrastructure as a Service (IaaS) clouds. We can provide three initial datasets as a starting point.
    • Case study for cloud cost modelling. Includes setting up a realistic multi-tier, multi-component cloud application and establishing it's costs in various deployment variations, as well as experimentation and data analysis.

Supervisor: Patrizio Pelliccione

  • Systematic literature review on lightweight formal methods
  • Automatic construction of models from black-box software artefacts

Supervisor: Riccardo Scandariato:

Supervisors: Jan Schroeder and Christian Berger:

  • Different software measurement and software quality thesis topics involving literature research and evaluation of findings, case studies, and other methods -- contact Jan Schroeder for details
  • thesis topics in collaboration with Iris AI: Proposals Iris AI

Supervisors: Jan-Philipp Steghöfer and Salome Maro.

Traceability is "the ability to interrelate any uniquely identifiable software engineering artifacts to any other, maintain required links over time, and use the resulting network to answer questions of both the software product and its development process" (COEST). Traceability is an increasingly important part of software development, especially in safety-critical domains where it is often mandated by certification authorities. All theses will use the open source tool Eclipse Capra as the foundation for the implementation part.

  • Using collaborative features to facilitate traceability maintenance: Proposal
  • A query language for traceability models: traceability information, i.e., links between software development artifacts, grow over time and can become quite numerous. In order to use them purposefully, e.g., to create reports and gain an understanding of the development progress, it is therefore necessary to query these links that are usually available in the form of models. Existing languages like SPARQL are not specialised for the graph structures of these models and do not carry sufficient semantics. The goal of the thesis is therefore to create a DSL for querying traceability information based on a set of scenarios and evaluate the language based on these scenarios and realistic examples.
  • Traceability link quality and improved link suggestions: When working with an evolving system, it is vitally important that all necessary traceability links exist (completeness) and that the once that do exist add value (correctness). In many cases, developers have a hard time deciding whether a link is (still) correct or whether a link is missing. This thesis should explore conceptual and tool support to address both issues by providing visualisation techniques (e.g., to visualise how often links are used by the thickness of the lines representing the links in a traceability graph) and decision support (e.g., by compiling a list of unlinked artifacts using metrics like centrality to rank them). All suggested solutions will be empirically validated.

Supervisor: Jan-Philipp Steghöfer

  • Long-term Knowledge Retention in Software Process Education: We have collected extensive data about students' understanding of agile software processes over a period of years. This information, together with targeted interviews with current and former students, should serve as the basis for an analysis to understand whether or not the current teaching methods enable students to retain knowledge over several teaching periods. The goal of the thesis is therefore to find evidence for or against long-term retention of knowledge about agile software processes based on the collected data (in collaboration with Håkan Burden).

Supervisor: Jan-Philipp Steghöfer and Michel Chaudron:

  • Visualisation of Traceability Information. Traceability information, i.e., information about how different artifacts that are produced during the development of a software product are connected to each other, are traditionally displayed either as a graph or as a matrix. Both approaches do not scale very well as the information to be visualised becomes more and more complex with the number of inter-connected artifacts. Navigating the graphs and matrices and filtering the relevant information becomes difficult and it is rarely possible to restrict the views to what is needed for a particular task. Therefore, the aim of this thesis is to explore alternative approaches to visualise traceability information with a focus on the support of large datasets. Existing techniques from software visualisation could be used as a starting point. All results should be implemented in the open source tool Eclipse Capra and validated in experiments with students or practitioners.

Supervisor: Richard Torkar

  • A formal experiment in search-based software testing and mutation testing.




Bachelor Program

Supervisors: Michel Chaudron:

  • Classify the roles of classes in Class Diagrams (according to Wirf-Brocks classification; examples available for source code)
  • Study how the use of software architecture- and design documentation affects communication in software development teams
  • Study DevOps for MDA / tool-chains for use with model-driven development.
  • see M.Sc. projects (we can reduce the scope to fit B.Sc. timescale)

Supervisor: Christian Berger:

  • Topics for Bachelor and Master thesis typically related to autonomous driving systems. Proposals (academic & industrial topics) will be continuously announced at Christian Berger page.
  • If you have an exciting topic or research question in mind, do not hesitate to get in contact with me!

Supervisor: Eric Knauss

  • Extend an RE Tool for Large-Scale Agile System Development with Modeling Capabilities (co-supervision with Grischa)
  • Continuous Deployment for Cars: Demonstrator (potential co-supervision with Håkan Burden)

Supervisor: Truong Ho-Quang

  • Extract license information from the OSS projects for images.
  • create a software tool for visualising large class diagrams (typically obtained from reverse engineering)
  • See MSc theses (reduced scope)

Supervisor: Jennifer Horkoff

  • See Master Theses (reduced scope)

Supervisor: Francisco de Oliveira Neto:

  • Developing tools to support the analysis of experiments with software testing techniques
  • Investigating the reproducibility of experiments with similarity-based test case selection
  • Alternative: A reduced version of any of the master thesis proposals (see above)

Supervisors: Jan-Philipp Steghöfer and Salome Maro:

Traceability is "the ability to interrelate any uniquely identifiable software engineering artifacts to any other, maintain required links over time, and use the resulting network to answer questions of both the software product and its development process" (COEST). Traceability is an increasingly important part of software development, especially in safety-critical domains where it is often mandated by certification authorities. All theses will use the open source tool Eclipse Capra as the foundation for the implementation part.

  • Analysing traceability information in a corpus of open source projects: the goal of the thesis is to analyse the use of traceability (i.e., of relating different development artifacts to each other) in open source projects that use some form of UML modeling (collected in the Lindholmen Data Set). For this purpose, the projects should be searched for any traceability information that might be available in either the models, extra documents, or the commit messages. The contribution would be an overview of if and how traceability is re'''garded in OSS projects that do use modeling in the development.
  • Using traceability links for impact analysis'''. This thesis will investigate how traceability links can be used to facilitate change impact analysis. See Detailed proposal.
  • Visualising traceability links in context. One issue with the usual traceability visualisations (matrices and graphs) is that the artifacts that are linked to each other are represented outside of their usual context (such as the other model elements the linked elements are linked to). This thesis will investigate how the existing visualisations in Eclipse Capra can be extended to provide this context information. At the same time, novel visualisation techniques like FlexiView are going to be explored.
  • Use automated traceability link discovery to verify manually created links. In many domains, automatically created traceability links are not acceptable since they can introduce erroneous links. In these domains, such as automotive, links are instead created manually. However, manually created traceability links are not guaranteed to be correct. In this thesis, automated techniques are going to be investigated to check the correctness of traceability links. In essence, an automated technique that discovers a manually created link thus verifies it. If the link is not found, however, it could be marked as suspect for further investigation.
  • How bad is a wrong link? Manual creation and maintenance of traceability is labor intensive, especially for large and complex systems. To solve this, researchers have proposed automated approaches to generate traceability links. These automated techniques are promising but they are still not perfect. The links generated can be wrong and some correct links are not generated at all. Therefore, the adoption of these techniques in industry is very low. In this study we want to investigate to what extent wrong links have a negative effect on the development process and product in the end.
  • Automatic creation of links between code elements using commit messages. In agile development, it is customary to include the ticket number in the commit message in order to create a link between the code committed and the ticket. In this thesis, we want to investigate how we can use data from commit messages to derive links between code elements.
  • Extract link suggestions from task-focused data from Mylyn. The task-focused interface of Eclipse Mylyn helps developers focus on the part of the project that are important for the current job. Eclipse Mylyn learns which requirements, code files, tests, and so on are important for a certain task and allows accessing these assets quickly. In this thesis, we want to investigate if this ability can also be used to automatically derive meaningful traceability links and which impact these links have on the quality of a traceability model.
  • Comparison of Traceability Tools. There is a surprising number of commercial and open-source tools available on the market today. Their respective drawbacks and advantages are, however, not clear. Based on preliminary approaches, the goal of this thesis is to first develop a categorisation scheme for traceability tools and then evaluate a selection of the tools based on this scheme. For this purpose, the tool documentation and publicly available material will be complemented with information gathered directly from tool developers and/or users. An additional outcome would be a better understanding of the market forces that shape the feature set of these tools.

Supervisor: Jan-Philipp Steghöfer and Michel Chaudron:

  • Visualisation of Traceability Information. Traceability information, i.e., information about how different artifacts that are produced during the development of a software product are connected to each other, are traditionally displayed either as a graph or as a matrix. Both approaches do not scale very well as the information to be visualised becomes more and more complex with the number of inter-connected artifacts. Navigating the graphs and matrices and filtering the relevant information becomes difficult and it is rarely possible to restrict the views to what is needed for a particular task. Therefore, the aim of this thesis is to explore alternative approaches to visualise traceability information with a focus on the support of large datasets. Existing techniques from software visualisation could be used as a starting point. All results should be implemented in the open source tool Eclipse Capra and validated in experiments with students or practitioners.

Supervisor: Hang Yin:

  • Dynamic software update for cyber-physical systems (1-2 students)

Supervisor: Piergiuseppe Mallozzi

  • Topics: Self-driving cars, Machine learning and Artificial Intelligence.
  • Reinforcement Learning applied to autonomous vehicles
  • Runtime monitoring
  • Working on an OpenAI project: https://github.com/openai/universe

Supervisor: Hugo Andrade:

  • Evaluation of software deployment strategies using FPGA (Xilinx Gimme2 board). The goal is to run an experiment on the FPGA board and analyze performance results with respect to different deployment configurations, frameworks and tools.
Edit - History - Print - Recent Changes - Search
Page last modified on October 23, 2018, at 08:40 PM