返回
The Effectiveness of Supervised Machine Learning Algorithms in Predicting Software Refactoring
DOI:10.1109/TSE.2020.3021736.png)
摘要
En 中文
Refactoring is the process of changing the internal structure of software to improve its quality without modifying its external behavior. Empirical studies have repeatedly shown that refactoring has a positive impact on the understandability and maintainability of software systems. However, before carrying out refactoring activities, developers need to identify refactoring opportunities. Currently, refactoring opportunity identification heavily relies on developers' expertise and intuition. In this paper, we investigate the effectiveness of machine learning algorithms in predicting software refactorings. More specifically, we train six different machine learning algorithms (i.e., Logistic Regression, Naive Bayes, Support Vector Machine, Decision Trees, Random Forest, and Neural Network) with a dataset comprising over two million refactorings from 11,149 real-world projects from the Apache, F-Droid, and GitHub ecosystems. The resulting models predict 20 different refactorings at class, method, and variable-levels with an accuracy often higher than 90 percent. Our results show that (i) Random Forests are the best models for predicting software refactoring, (ii) process and ownership metrics seem to play a crucial role in the creation of better models, and (iii) models generalize well in different contexts.
Keyword:
Biological system modeling
Measurement
Tools
Software
Predictive models
Context modeling
Prediction algorithms
Software engineering
software refactoring
machine learning for software engineering
AI总结
对已上传原文的论文进行重点信息的提取,主要内容包括:简要概述、研究摘要、背景介绍、关键亮点、图文解析、展望与总结。
期刊
IF:
5.6
论文数:
2.9K
被引数:
1.1W
机构
引用论文
Machine learning techniques for code smell detection: A systematic literature review and meta-analysis用于代码气味检测的机器学习技术: 系统的文献综述和荟萃分析
Emotional, physical, and social needs among 0–5‐year‐old children displaced by the 2010 Chilean earthquake: associated characteristics and exposures
Disasters
IF0
The Adoption of JavaScript Linters in Practice: A Case Study on ESLintJavaScript linter在实践中的应用: ESLint的案例研究


