DEPARTMENT OF COMPUTER SCIENCE
Dr. Jens Krinke
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.
We have developed a search engine that can find Java or Python code snippets on the web that are similar to a given Java code snippet. This code search engine uses concepts from Information Retrieval which have been adapted to search for source code instead of natural language text.
This project will adapt the search engine to allow searching for code snippets in languages different to Java or Python. The student working on the project can pick any language that is to be searched for. However, the project itself has to be programmed in Java. It involves parsing source code in the selected language and harvesting source code from Stack Overflow and/or GitHub. The student will have to work with Apache Elasticsearch.
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?
Cross-Referencing for Deletion Dependence
In the ORBS Project, programs are manipulated by deleting statements and source code lines as much as possible. Very often, a deletion is attempted, but the resulting source code cannot even be compiled. This project will build a referencing tool that will extract links between lines from the analysed source code. These links will establish that a line x can only be deleted when a line y already has been deleted. The extracted links will be used to improve the ongoing ORBS research project.
Code-to-Test Traceability and Automatic Fault Localisation for Python
Code-to-test traceability establishes links between code and the tests testing the code. Establishing such links is not straight forward and multiple approaches have been developed. This project will have to establish such links by tracing a program while it is being tested. The tracing will be combined with automatic fault localisation, a technique to find the code that is likely responsible to cause a test to fail.
As a similar project has been done in the past, this project will have to research and develop for Python code.
Coding Style Compliance on Stack Overflow
Code-to-Test Traceability via Co-Change Analysis
Code-to-test traceability establishes links between code and the tests testing the code. Establishing such links is not straight forward and multiple approaches have been developed. This project will have to establish such links by analysing the change history of projects. If a method and a test is added or changed at the same time, it is very likely that the method is tested by the test. To establish such relationships, this project will have to develop a tool that automatically analyses the commit history of a project, extract all added or changed methods, and then to do a data mining approach to extract the co-changed test-method pairs.
Last modified: 02/10/2020