Tightly coupled and interdependent systems inhibit productivity by requiring developers to carefully coordinate their changes, even when modifying subsystems that should be independent of one another. Poor architectural decisions frequently lead to the presence of large, change-prone source files that are at the center of complexes of technical debt. This kind of technical debt quickly incurs interest both through coordination costs and error-proneness. In this paper, we present a new approach for decomposing these ``large-active'' files to pay down critical technical debt. We package our approach as a refactoring recommendation system. Each recommendation is determined by analyzing patterns of co-change and mutual dependency among files. Each recommendation corresponds to a responsibility the large-active file has in relation to the rest of the system. By moving recommended functionality from the large-active file into smaller files, developers can reduce the impact of a debt-laden file and clarify its essential responsibilities. A key advantage of this approach over prior work is that we better focus effort; we avoid spending developer effort refactoring code that is only superficially problematic. We achieve this by incorporating revision history into both determining and ranking recommendations. Each recommendation corresponds to some change-prone responsibility. We present some examples of this approach in action and outline our future plans.


翻译:高度耦合且相互依赖的系统会阻碍生产力,要求开发人员在修改本应相互独立的子系统时,仍需仔细协调变更。不良架构决策常导致大型、易变源代码文件的出现,这些文件处于技术债务复合体的核心。此类技术债务会通过协调成本和易错性迅速产生利息。本文提出一种分解这类"大型活跃"文件以偿还关键技术债务的新方法。我们将该方法封装为重构建议系统,通过分析文件间的共变模式和相互依赖关系生成每条建议。每条建议对应大型活跃文件与系统其他部分相关联的职责。通过将建议功能从大型活跃文件迁移至更小的文件,开发人员可降低高负债文件的影响范围并明确其核心职责。相较于先前研究,本方法的关键优势在于能更精准地聚焦投入:避免将开发人员精力浪费在仅存在表面问题的代码重构上。我们通过将修订历史纳入建议生成与排序过程实现此目标,每条建议对应某个易变职责。本文展示了该方法的部分应用实例,并概述了未来研究计划。

0
下载
关闭预览

相关内容

不可错过!《机器学习100讲》课程,UBC Mark Schmidt讲授
专知会员服务
76+阅读 · 2022年6月28日
Into the Metaverse,93页ppt介绍元宇宙概念、应用、趋势
专知会员服务
49+阅读 · 2022年2月19日
Linux导论,Introduction to Linux,96页ppt
专知会员服务
82+阅读 · 2020年7月26日
【干货书】真实机器学习,264页pdf,Real-World Machine Learning
机器学习入门的经验与建议
专知会员服务
94+阅读 · 2019年10月10日
【哈佛大学商学院课程Fall 2019】机器学习可解释性
专知会员服务
105+阅读 · 2019年10月9日
【SIGGRAPH2019】TensorFlow 2.0深度学习计算机图形学应用
专知会员服务
41+阅读 · 2019年10月9日
VCIP 2022 Call for Demos
CCF多媒体专委会
1+阅读 · 2022年6月6日
Hierarchically Structured Meta-learning
CreateAMind
27+阅读 · 2019年5月22日
Transferring Knowledge across Learning Processes
CreateAMind
29+阅读 · 2019年5月18日
强化学习的Unsupervised Meta-Learning
CreateAMind
18+阅读 · 2019年1月7日
Unsupervised Learning via Meta-Learning
CreateAMind
44+阅读 · 2019年1月3日
A Technical Overview of AI & ML in 2018 & Trends for 2019
待字闺中
18+阅读 · 2018年12月24日
disentangled-representation-papers
CreateAMind
26+阅读 · 2018年9月12日
【论文】变分推断(Variational inference)的总结
机器学习研究会
39+阅读 · 2017年11月16日
国家自然科学基金
0+阅读 · 2015年12月31日
国家自然科学基金
0+阅读 · 2014年12月31日
国家自然科学基金
3+阅读 · 2013年12月31日
国家自然科学基金
0+阅读 · 2012年12月31日
国家自然科学基金
0+阅读 · 2012年12月31日
国家自然科学基金
0+阅读 · 2012年12月31日
国家自然科学基金
0+阅读 · 2011年12月31日
国家自然科学基金
0+阅读 · 2008年12月31日
Arxiv
0+阅读 · 2023年4月7日
VIP会员
最新内容
学习数据的几何:形状空间分析数学综述
专知会员服务
7+阅读 · 6月17日
定向能反无人机系统最新发展动态
专知会员服务
9+阅读 · 6月17日
从燃煤战舰到算法战争:水面指挥的永恒要求
专知会员服务
6+阅读 · 6月17日
相关资讯
VCIP 2022 Call for Demos
CCF多媒体专委会
1+阅读 · 2022年6月6日
Hierarchically Structured Meta-learning
CreateAMind
27+阅读 · 2019年5月22日
Transferring Knowledge across Learning Processes
CreateAMind
29+阅读 · 2019年5月18日
强化学习的Unsupervised Meta-Learning
CreateAMind
18+阅读 · 2019年1月7日
Unsupervised Learning via Meta-Learning
CreateAMind
44+阅读 · 2019年1月3日
A Technical Overview of AI & ML in 2018 & Trends for 2019
待字闺中
18+阅读 · 2018年12月24日
disentangled-representation-papers
CreateAMind
26+阅读 · 2018年9月12日
【论文】变分推断(Variational inference)的总结
机器学习研究会
39+阅读 · 2017年11月16日
相关基金
国家自然科学基金
0+阅读 · 2015年12月31日
国家自然科学基金
0+阅读 · 2014年12月31日
国家自然科学基金
3+阅读 · 2013年12月31日
国家自然科学基金
0+阅读 · 2012年12月31日
国家自然科学基金
0+阅读 · 2012年12月31日
国家自然科学基金
0+阅读 · 2012年12月31日
国家自然科学基金
0+阅读 · 2011年12月31日
国家自然科学基金
0+阅读 · 2008年12月31日
Top
微信扫码咨询专知VIP会员