Skip to main content
Thesis defences

MCS Thesis Examination: Md Borhan Uddin

Data Labeling for Fault Detection in Cloud: An Improved Approach for Extracting Frequently Refactored Code Idioms


Date & time
Wednesday, May 31, 2023
12:30 p.m. – 2 p.m.
Cost

This event is free

Organization

Department of Computer Science and Software Engineering

Contact

Leila Kosseim

Where

ER Building
2155 Guy St.
Room 1002

Wheel chair accessible

Yes

Abstract

    Source code refactoring is a process of restructuring or changing the existing codes without changing their external behaviour. This is a continuous process done by the developers to improve code quality, readability, maintainability of the source code, and address technical debt. There have been studies and tools to aid developers to refactor effectively their source code and to understand the motivations behind refactorings applied by developers. We aim to find Code Idioms that developers tend to refactor more frequently and investigate whether there are unique refactored code idioms for production code and test code. We use the RefactoringMiner tool to detect and collect EXTRACT METHOD refactoring from the commit history of the projects and propose a technique to represent the code fragments as structure-preserving context-free independent graphs and apply graph-similarity measure techniques to find similar code idioms among 65,742 EXTRACT METHOD instances. We measure both exact matching and partial matching with constraint checking from the associated metadata of the nodes and edges of the graphs. We divide our data set into production code and test code and found a total of 489 code idiom patterns. We present in detail 22 of

the most frequently refactored code idioms. There are unique patterns to production code and test code and patterns shared among them. We limit our study to only Java-based open-source projects and EXTRACT METHOD refactoring, but we believe the approach can be applied to other objectoriented languages or refactorings. The findings can be useful to design an effective refactoring recommender system, help developers gain confidence in refactoring recommendation tools, and help researchers understand refactoring motivations and API usage patterns.

Examining Committee

  • Dr. Jinqiu Yang (Chair) 
  • Dr. Nikolaos Tsantalis (Supervisor)
  • Dr. Weiyi (Ian) Shang (Examiner)
  • Dr. Jinqiu Yang (Examiner)
     
Back to top

© Concordia University