Date of Award
Winter 3-17-2023
Degree Type
Thesis
Degree Name
Master of Science (MS)
School
School of Computing
First Advisor
Wael Kessentini, PhD
Second Advisor
Zhen Huang, PhD
Third Advisor
Vahid Alizadeh, PhD
Abstract
Code refactoring is the process of improving the internal structure of existing code without altering its functionality. Refactoring can help to reduce technical debt, enhance the quality of the code and make the code easy to evolve. However, the manual identification of the proper code refactoring operations to apply can be time-consuming and not scalable. In this thesis, we propose an approach based on data mining and machine learning techniques to analyze historical data and predict refactoring operations that may occur in a future release of a project. The approach uses a combination of techniques to identify patterns in the data and make predictions about which refactoring operations should be applied. In this study, we validated the proposed machine learning based approaches with 13 open-source projects with different releases. We identified the refactoring operations and code smells and extracted the quality metrics for each project release. We used the collected data (e.g. quality metrics and code smells) to predict refactoring operations, and we reported the prediction results based on cross- validation procedures. The proposed research contributes to the field of software quality by providing an efficient and effective approach to refactor the code. The findings of this research will also help developers by suggesting appropriate refactoring operations based on the history of the evolution of software projects. This will ultimately result in improved software quality, reduced technical debt, and enhanced software performance.
Recommended Citation
Alanqari, Sarah, "Predicting code refactoring via analyzing the history of quality metrics and code anti-patterns" (2023). College of Computing and Digital Media Dissertations. 45.
https://via.library.depaul.edu/cdm_etd/45