Refactoring-related projects

Refactoring is an important activity of software developers. It improves code quality and understandability, but can also subtly change the behaviour of your existing program. We have so far tried in two very successful Master theses to make a small number of refactorings for Java automatic (website, published in NIK'14), and safer (slides, published in ISoLA'16 & ISoLA'20). What is missing now is an experiment at scale

This is a flexible project where the exact task can be fit to your profile — lots of possibilities!

Research questions include:

  • can we automate more refactorings (beyond Extract-and-Move-Method)?
  • can we do so at scale (incremental or concurrent processing of large code bases)?
  • can we integrate automated refactorings into code review systems like Gerrit?
  • refactorings for other interesting languages like Go, Rust, ...

A prospective student should...

  • ...like programming and programming languages;
  • ...be willing to learn about grammars, programming language semantics, and types/static analysis;
  • ...have an interest in software quality metrics (coupling, cyclomatic complexity,...);
  • ...independently set up and run experiments (e.g. check out open source-projects from GitHub, apply automated refactoring, collect results e.g. in Jenkins/Sonar/...).

Publications so far:


Contact:

Volker Stolz

Emneord: refactoring, software engineering
Publisert 27. sep. 2023 13:14 - Sist endret 27. sep. 2023 13:15

Veileder(e)

Omfang (studiepoeng)

60