I am always on the lookout for PhD and Master Students with strong technical and research skills for doing a PhD or Master’s Thesis with me. The topics of a thesis project with me are in the area of:
A thesis project with me offers you the opportunity:
Below is a list of Thesis projets that are currently available. Of course, you are welcome to propose your own topic. If you are interested, please do not hesitate to contact me.
Software developers are typically burdened with (too) many tasks that involve implementing new features, fixing bugs, refactoring, testing, documenting, etc.. Recent research has indicated great potential to partially automate some tasks to “some” extent. The goal in these thesis projects is to find out what this “extent” is for one of the following specific software engineering tasks:
For the selected task, you will investigate mining and deep/machine learning techniques and/or formal methods to solve it. Furthermore, you will implement your approach in a prototype tool that can be integrated into modern software development environments to demonstrate and evaluate your solution.
Most software systems need to evolve to stay successful on the market. This characteristic of software systems is formalized in Many Lehman’s Laws of Software Evolution. Furthermore, companies need (or want) to release new features, bug fixes or other improvements fast and frequently to their customers. Consequently, software developers need to implement changes fast, which often comes at the expense of quality. Thesis projects in this area investigate means to extract detailed information about source code changes as well as means to analyse the impact of these changes on other source code entities. Regarding the extraction, you will build on our rich experience of using tree differencing algorithms and extend them. Regarding the change impact analysis, you will investigate static program analysis techniques, also including symbolic execution and abstract interpretation, to precisely determine the impact of a code change within and across methods, classes, packages, and (loosely coupled) software components. You will implement your approach in a prototype tool that can be integrated into modern software development environments to demonstrate and evaluate your solution.
Program understanding still accounts for more than 50% of software developing costs. Software visualization techniques are a means to lower that by relying on the visual capabilities of humans. In our previous research, we have developed several visualization tools, such as DA4Java to browse, and navigate object-oriented source code, and SNAnalyzer to browse the contributions of developers to a software project. Thesis projects comprise various extensions of our visualization techniques, development of new visualization techniques, as well as, the inclusion of new data sources that can be leveraged to improve the comprehension of programs, their changes and the impacts of these changes. You will implement your visualization technique in a prototype tool that can be integrated into modern software development environments to demonstrate and evaluate your solution.
Please contact me for more information on available Master’s Thesis projects @ companies. You are also welcome to propose your own project.