Mining Code Change Patterns to Aid Software Development
Decanato - Facoltà di scienze informatiche
Data: 19 Ottobre 2021 / 16:30 - 19:00
You are cordially invited to attend the PhD Dissertation Defence of Fengcai Wen on Tuesday 19 October 2021 at 16:30 on MS Teams.
Mining Software Repositories (MSR) has become a complete and mature research field, also due to the increasing number of open source projects publicly available. Repository hosting services such as GitHub provide unprecedented access to millions of events generated during development activities (e.g., code commits, pull requests), that can be mined and analyzed to extract new pieces of knowledge. By analyzing the source code of a large corpus of software systems, recent work showed that most software is natural, meaning that it is likely to be repetitive and predictable. In other words, development and maintenance activities are likely the results of unexposed code change patterns that, if properly exploited, can be used to support code-related activities (e.g., implementing a new feature). Starting from these observations, we formulate our thesis statement: Mining code change patterns from open source repositories enables researchers to gather large-scale, historical information about development and maintenance activities performed by developers. The collected empirical knowledge, once converted into actionable items, can support software developers on code-related tasks. We investigated the possibility of acquiring new empirical knowledge from mining three specific types of code change patterns in open source repositories: (i) the introduction and fix of code-comment inconsistencies, (ii) omitted code changes in developers’ commits and (iii) implementation patterns followed by developers when implementing a new feature. We leveraged the knowledge acquired from the last type of patterns, to design and build FeaRS, an approach and a tool that, given the methods developers already wrote in the IDE, is able to suggest the complete code of the next method they are likely to implement. Our results show that mining unexposed code change patterns from open source repositories can help in better understanding development activities and potentially support developers during software development.
- Prof. Gabriele Bavota, Università della Svizzera italiana, Switzerland (Research Advisor)
- Prof. Michele Lanza, Università della Svizzera italiana, Switzerland (Research co-Advisor)
- Prof. Carlo Alberto Furia, Università della Svizzera italiana, Switzerland (Internal Member)
- Prof. Cesare Pautasso, Università della Svizzera italiana, Switzerland (Internal Member)
- Prof. Liliana Pasquale, University College Dublin, Ireland (External Member)
- Prof. Filippo Ricca, University of Genova, Italy (External Member)