Dependent or Not: Detecting and Understanding Collections of Refactorings

重构代码 计算机科学 可重用性 程序设计语言 依赖关系(UML) 软件工程 质量(理念) 软件 认识论 哲学
作者
Thiago do Nascimento Ferreira,James Ivers,Jeffrey J. Yackley,Marouane Kessentini,İpek Özkaya,Khouloud Gaaloul
出处
期刊:IEEE Transactions on Software Engineering [IEEE Computer Society]
卷期号:: 1-15 被引量:1
标识
DOI:10.1109/tse.2023.3244123
摘要

Refactoring is a program transformation to improve the internal structure of a program while preserving its external behavior. Developers frequently apply multiple refactorings that depend on each other to achieve goals such as improving code reusability. Although manually applying a sequence of dependent refactorings is a common practice, existing refactoring recommendation tools treat refactorings in isolation without revealing the dependencies among them to developers. One reason is that these relationships among refactorings are poorly understood. Current approaches treat refactoring recommendations as a strictly ordered sequence limiting developers’ ability to understand, validate, and apply recommended refactorings. To address this gap, this paper describes a theory for reasoning about collections of refactorings through defining an ordering dependency relation among refactorings and organizing collection of refactorings as a set of refactoring graphs. We propose an algorithm for identifying refactoring dependencies and illustrate these concepts with a tool for visualizing such refactoring dependencies and refactoring graphs. Our validation results demonstrate that 43% of the 1,457,873 recommended refactorings from 9,595 projects that we studied are part of dependent refactoring graphs. Furthermore, refactorings are not only commonly involved in dependent relations, but also when applied, dependent refactoring graphs improve all of the quality attribute metrics in our experiments more than individual refactorings.

科研通智能强力驱动
Strongly Powered by AbleSci AI
科研通是完全免费的文献互助平台,具备全网最快的应助速度,最高的求助完成率。 对每一个文献求助,科研通都将尽心尽力,给求助人一个满意的交代。
实时播报
斯文的初蝶完成签到,获得积分20
刚刚
折柳完成签到 ,获得积分10
2秒前
2秒前
meimale完成签到,获得积分10
3秒前
kanong完成签到,获得积分0
5秒前
6秒前
L_完成签到 ,获得积分10
7秒前
jctyp完成签到,获得积分10
16秒前
搜集达人应助斯文的初蝶采纳,获得10
16秒前
超帅傲白完成签到,获得积分10
17秒前
独特的青曼完成签到,获得积分10
18秒前
任性铅笔完成签到 ,获得积分10
23秒前
Rqbnicsp完成签到,获得积分10
26秒前
27秒前
27秒前
领导范儿应助科研通管家采纳,获得10
27秒前
molihuakai应助科研通管家采纳,获得10
27秒前
共享精神应助科研通管家采纳,获得10
27秒前
JamesPei应助科研通管家采纳,获得10
27秒前
27秒前
27秒前
谦让以亦完成签到 ,获得积分10
30秒前
ztt发布了新的文献求助10
32秒前
My完成签到 ,获得积分10
32秒前
云岫揽清风完成签到 ,获得积分10
33秒前
登登完成签到 ,获得积分10
39秒前
ztt完成签到,获得积分10
40秒前
简单妖妖完成签到 ,获得积分10
41秒前
ycd完成签到,获得积分10
42秒前
初景应助Jane采纳,获得20
44秒前
whitepiece完成签到,获得积分0
44秒前
是榤啊完成签到 ,获得积分10
51秒前
Anoxra完成签到 ,获得积分10
52秒前
54秒前
54秒前
54秒前
hmhu完成签到,获得积分10
57秒前
LIJIngcan完成签到 ,获得积分10
58秒前
ypres完成签到 ,获得积分10
59秒前
hmhu发布了新的文献求助10
59秒前
高分求助中
Malcolm Fraser : a biography 680
Signals, Systems, and Signal Processing 610
天津市智库成果选编 600
Climate change and sports: Statistics report on climate change and sports 500
Forced degradation and stability indicating LC method for Letrozole: A stress testing guide 500
Organic Reactions Volume 118 400
A Foreign Missionary on the Long March: The Unpublished Memoirs of Arnolis Hayman of the China Inland Mission 400
热门求助领域 (近24小时)
化学 材料科学 医学 生物 纳米技术 工程类 有机化学 化学工程 生物化学 计算机科学 物理 内科学 复合材料 催化作用 物理化学 光电子学 电极 细胞生物学 基因 无机化学
热门帖子
关注 科研通微信公众号,转发送积分 6459055
求助须知:如何正确求助?哪些是违规求助? 8268303
关于积分的说明 17621373
捐赠科研通 5528168
什么是DOI,文献DOI怎么找? 2905885
邀请新用户注册赠送积分活动 1882594
关于科研通互助平台的介绍 1727612