DEPARTMENT OF COMPUTER SCIENCE
Dr. Jens Krinke
UCL

Home
- Contact
- Teaching
- Research
- Publications

Student Projects

General Ideas

My areas of interest are Software Test, Continuous Integration, Code Review, Program Analysis, Clone Detection, Bug Detection. If you are interested to do a project in one of the areas, please contact me.

A list of concrete topics you'll find below.

Specific Topics

Are Developers Aware of Clones When They Make Code Changes?

This projects aim to leverage the rich information in code review process and automatic code clone detection to assess the awareness of developers to code cloning on a day-to-day basis. Code clone detection will be performed before and after each code review patch is submitted. With detected clones, code changes from the patch, and natural language text in the review, we can ask several interesting questions by performing a manual analysis of the results: (1) How often are developers aware, i.e. do they discuss them in code review, when clones are introduced into the systems? (2) When they discuss about clones, what happens to the clones in the system after the discussion? (3) What are common intents when developers introduce clones into the software? (4) What is the developer's perception about code clones? Should clones always be removed or it's just good to know they're there?

Article describing a similar study.

Finding and Exploiting Similarity between Software Tests

With Unit Testing one has a link between the tested code and the code that tests it. This project will investigate if similar test code corresponds to the tested code to be similar, too (and vice versa). If such a correspondence exists, it may be possible to exploit the similarity to reuse test code for code that is not yet tested but has some similar code that is already tested.

Machine Learning of Code Similarity

In recent years, many approaches to ML-based code similarity (clone detection) have appeared. However, many approaches are wrong, either in the approach or how the model is trained. This project will survey the existing approaches, identify common problems and challenges, and suggest solutions. It will involve training new models, evaluating existing ones, and replicating published approaches.

 

Last modified: 09/25/2023