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 [Institute of Electrical and Electronics Engineers]
卷期号:: 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.
最长约 10秒,即可获得该文献文件

科研通智能强力驱动
Strongly Powered by AbleSci AI
科研通是完全免费的文献互助平台,具备全网最快的应助速度,最高的求助完成率。 对每一个文献求助,科研通都将尽心尽力,给求助人一个满意的交代。
实时播报
zhzzhz完成签到,获得积分10
刚刚
猴猴完成签到,获得积分10
1秒前
酷波er应助jiemy采纳,获得10
1秒前
没有昵称应助十一采纳,获得30
1秒前
Jasper应助土豪的硬币采纳,获得10
1秒前
华仔应助ct采纳,获得10
2秒前
2秒前
方羽应助listener采纳,获得30
2秒前
是我呀小夏完成签到 ,获得积分10
3秒前
科研通AI2S应助李云天采纳,获得10
4秒前
jingerous发布了新的文献求助10
4秒前
可乐发布了新的文献求助10
4秒前
Vicky完成签到 ,获得积分10
4秒前
认真的一刀应助喽喽采纳,获得10
6秒前
认真的一刀应助喽喽采纳,获得10
6秒前
Orange应助喽喽采纳,获得10
6秒前
6秒前
lakers发布了新的文献求助10
7秒前
Jianjiama发布了新的文献求助10
7秒前
Yu发布了新的文献求助10
8秒前
大文子完成签到,获得积分10
9秒前
4444小熊完成签到 ,获得积分10
9秒前
小蘑菇应助liangliu采纳,获得10
10秒前
我是站长才怪应助易达采纳,获得10
10秒前
JiaweiZhang发布了新的文献求助10
11秒前
Jianjiama完成签到,获得积分10
11秒前
斯文谷秋发布了新的文献求助10
12秒前
村口的帅老头完成签到 ,获得积分10
12秒前
kingwill应助一一采纳,获得20
12秒前
DLL完成签到 ,获得积分10
12秒前
zho发布了新的文献求助10
13秒前
汉堡包应助科研通管家采纳,获得10
14秒前
SYLH应助科研通管家采纳,获得10
14秒前
顾矜应助科研通管家采纳,获得10
14秒前
ZHANGZHANG应助科研通管家采纳,获得10
15秒前
bkagyin应助科研通管家采纳,获得10
15秒前
15秒前
15秒前
15秒前
15秒前
高分求助中
Production Logging: Theoretical and Interpretive Elements 2500
Востребованный временем 2500
Hopemont Capacity Assessment Interview manual and scoring guide 1000
Classics in Total Synthesis IV: New Targets, Strategies, Methods 1000
Neuromuscular and Electrodiagnostic Medicine Board Review 700
Refractive Index Metrology of Optical Polymers 400
Progress in the development of NiO/MgO solid solution catalysts: A review 300
热门求助领域 (近24小时)
化学 医学 材料科学 生物 工程类 有机化学 生物化学 纳米技术 内科学 物理 化学工程 计算机科学 复合材料 基因 遗传学 物理化学 催化作用 细胞生物学 免疫学 电极
热门帖子
关注 科研通微信公众号,转发送积分 3441783
求助须知:如何正确求助?哪些是违规求助? 3038330
关于积分的说明 8971566
捐赠科研通 2726684
什么是DOI,文献DOI怎么找? 1495564
科研通“疑难数据库(出版商)”最低求助积分说明 691221
邀请新用户注册赠送积分活动 688271