Projects

Ongoing Research Projects

Here are the research projects we are currently working on:

Project Description
Predicting issue’s resolving time using networked classification Task dependencies are in the nature of software development process. My previous work (ASE2016) proposes a delay prediction model on issues by taking into account the issue’s dependencies. We applied network classification techniques on a manually constructed network (direct graph) of issues to predict delays. However, these network structures are dynamic through time. For example, when a new blocking issue is created, the issue network structure is changed accordingly. In this project, we aim to explore techniques to model (e.g., embedding, learning) these characteristics of software task dependency to improve the performance in predicting issue resolving time.
SiameseX: Code Clone Search as a Service Code clones are duplicated pieces of code within software. This project aims to leverage the scalability of Elasticsearch and the flexibility of cloud-based services to scale up our existing code clone search engine, Siamese, to the cloud as a code clone search service, where one can upload a project or give a link to a GitHub project and SiameseX will automatically detect clones in the given project. The SiameseX service will be useful for real-time online code clone detection and can be integrated into many software development tools and processes such as IDE, or code review. We received $20,000 Amazon AWS credits for this research so there are cloud machines available for you to try it out!

Potential Research Projects

Listed below are the potential research topics we plan to work on. Please feel free to contact us if you’re interested!

Project Description
Code clone detection using coding style Base on the naturalness of software, it might be possible that a programmer's coding style can be an indicator of code copying and pasting. This project aims to investigate the potential application of applying coding style detection to code clone detection problem. One has to work on finding a technique to identify coding style of a given software project, and then detect the newly submitted patch to see if the code conforms to the project's coding style.
Backlog grooming support model We aim to develop an approach to support the backlog grooming activities in Agile development, for example, user story splitting, trimming backlog, and user story classification.
Automated testing for 3D games Testing framework for games is still under-explored. We aim to facilitate the tedious task of game testing by developing automated testing techniques specifically for 3D games. There is a possibility to adopt search-based testing techniques (e.g., multi-objective genetic algorithm) successfully applied to traditional software on games.
Automated software license identification using deep learning techniques This project focuses on training a deep learning model to predict software license based on its license text. The benefits of the project include the analysis of software licenses on GitHub and automatic detection of software license conflicts.
ISO29110 vs Agile development ISO29110 is a software development process standard for a very small entity (i.e., a small development team). This project aims to explore the relationships between the standard and Agile methodology in order to develop a guidance for Agile teams who want to adopt ISO29110.
Understanding how Agile teams estimate story points Story points is a popular effort estimation unit used by Agile teams. Teams use story points to reflect effort, complexity, and difficulty of a software development task. Estimating story points is mostly based on experts. It is team-based estimation (e.g., 2-story point may reflect different size of tasks between 2 Agile teams ). We would like to understand the common nature in story point estimation. The ultimate goal is that we aim to develop an prescriptive (explainable) story point estimation model.
Virtual reality-based software visualisation We are interested in exploring an application of the VR technology to visualise software projects and to help programmers understand their software better.