arrow
返回

Generation of refactoring algorithms by grammatical evolution

delete2022-05-30
delete0
PRE
AI
T
Thainá Mariani *
M
Marouane Kessentini
S
Sílvia Regina Vergílio
DOI:10.1007/s10664-022-10151-4delete
delete原文链接
delete原文求助
delete分享
delete收藏
摘要

摘要

En 中文
Recent machine learning studies present accurate results generating prediction models to identify refactoring operations for a program. However, such works are limited to prediction, i.e., they learn refactoring operations strictly as applied by developers, but there are possibilities that they might not think. On the other hand, the Search-Based Software Refactoring (SBR) field applies search algorithms to find refactoring operations in a vast space of possibilities to improve diverse quality attributes. Nevertheless, existing SBR approaches do not generate a model as machine learning studies, and then, they need to be reapplied individually for each program needing refactoring. To mitigate this limitation, this work introduces a novel SBR learning approach that generates refactoring algorithms capable of providing refactoring operations to several programs. These algorithms are composed of procedures that use rules to determine the refactoring operations. To create the algorithms, a learning process first extracts refactoring patterns from programs by grouping their elements that were refactored in similar ways. After that, a Grammatical Evolution (GE) is applied to generate the algorithms based on a grammar encompassing details of the extracted patterns. GE works to generate an algorithm that provides refactoring operations similar to those applied in practice while improving quality attributes, such as modularity. The approach is evaluated using refactoring data from 40 Java programs of GitHub repositories. The algorithms are tested against different programs, obtaining an overall average of 60% of modularity improvement and 50% of similarity with actual refactoring operations.
Keyword:
Search-based software refactoring
Grammatical evolution
Machine learning

期刊

Empirical Software Engineering 封面图
Empirical Software Engineering
IF:
3.6
论文数:
2.0K
被引数:
5.3K

机构

U
universidade federal do parana
学者数:
1.3W
论文数: 8.3K
被引数: 5
U
university of michigan system
学者数:
9.1W
论文数: 8.6W
被引数: 133
引用论文

引用论文

Hypothesis on cerebral dominance
err1975-01-01
err0
PREAI
errJason W. Brown; Joseph Jaffe
err分享
err收藏
err分享
err收藏
Identifying the Main Control Factors for Different Deformation Stages of Landslide
err2017-09-05
err0
PREAI
errFulin Tan; Xinli Hu; Chuncan He; Yuming Zhang; Han Zhang; Chang Zhou; Qiang Wang
err分享
err收藏
err分享
err收藏
Improving multi-objective code-smells correction using development history利用发展历史改进多目标代码气味校正
err2015-07-01
err52
PREAI
errOuni, Ali; Kessentini, Marouane; Sahraoui, Houari; Inoue, Katsuro; Hamdi, Mohamed Salah
err分享
err收藏
err分享
err收藏
Fundus Lesions in Malignant Hypertension
err1986-11-01
err0
PREAI
errSohan Singh Hayreh; Gary E. Servais; Prem Singh Virdi
err分享
err收藏
学者 查看更多内容