QUICK REVIEW
[论文解读] JExtract: An Eclipse Plug-in for Recommending Automated Extract Method Refactorings
Danilo Silva, Ricardo Terra|arXiv (Cornell University)|Jun 19, 2015
Software Engineering Research参考文献 10被引用 11
一句话总结
JExtract 是一个 Eclipse 插件,通过使用基于依赖关系的评分机制,识别与方法其余部分结构相似度较低的连续代码片段,从而推荐自动化的 Extract Method 重构。与 JDeodorant 相比,它在检测连续误放代码方面具有更高的召回率和精确率,跨评估系统最高达到 49.2% 的召回率和 16.7% 的精确率。
ABSTRACT
Although Extract Method is a key refactoring for improving program comprehension, refactoring tools for such purpose are often underused. To address this shortcoming, we present JExtract, a recommendation system based on structural similarity that identifies Extract Method refactoring opportunities that are directly automated by IDE-based refactoring tools. Our evaluation suggests that JExtract is far more effective (w.r.t. recall and precision) to identify misplaced code in methods than JDeodorant, a state-of-the-art tool
研究动机与目标
- 解决尽管自动化 Extract Method 重构工具对提升代码可理解性和可维护性至关重要,但其使用率仍然偏低的问题。
- 通过自动化检测和推荐,减少开发者在识别重构机会上所花费的手动工作量。
- 通过在 Eclipse 环境中集成智能、自动化的推荐机制,提升基于 IDE 的重构工具的采用率。
- 开发一种推荐系统,优先推荐与方法其余部分具有高度结构差异性的代码片段,以标识潜在的提取候选。
- 使用真实世界开源系统,评估该工具与 JDeodorant 等先进工具相比的有效性。
提出的方法
- 通过将方法拆分为具有线性控制流的连续语句块,生成所有可能的 Extract Method 候选。
- 应用大小阈值(最少 3 条语句)和重构引擎的先决条件,筛选出有效的候选。
- 计算候选片段与方法其余部分的结构依赖关系(变量、类型和包依赖)。
- 根据提取片段与剩余语句之间结构相似度的倒数对候选进行评分,偏好相似度较低的候选。
- 按得分对候选进行排序,并将推荐结果直接集成到 Eclipse IDE 中,支持一键应用。
- 采用受 Move Method 推荐启发的启发式方法,但针对提取方法候选进行了调整,通过最大化片段与剩余部分之间的差异性来优化推荐。
实验结果
研究问题
- RQ1与 JDeodorant 等现有工具相比,JExtract 在识别 Extract Method 重构机会方面的有效性如何?
- RQ2代码片段与方法其余部分之间的结构差异性在多大程度上与有效的 Extract Method 候选相关?
- RQ3基于依赖关系的相似度评分机制是否能提升 Extract Method 重构推荐的召回率和精确率?
- RQ4在真实世界开源系统中,JExtract 对连续代码片段的召回率和精确率表现如何?
- RQ5自动化推荐在实际中对 Extract Method 重构采用率的影响是什么?
主要发现
- 在评估的开源系统中,JExtract 的召回率最高达到 49.2%,精确率为 16.7%,整体召回率为 25.0%,精确率为 19.8%。
- 在识别方法中连续误放代码片段方面,JExtract 的召回率和精确率均优于 JDeodorant。
- 召回率最高出现在 Quartz 1.8.3 系统(49.2%),而精确率最低出现在 Tomcat 7.0.2(12.8%)。
- 评估结果表明,JExtract 的评分机制能有效优先推荐与方法其余部分结构差异度较低的代码片段。
- 该工具的推荐结果经过一个要求完全匹配的基准验证,这解释了其精确率处于中等水平的原因。
- 结果表明,结构差异性是 Extract Method 重构机会的强有力指标,尤其适用于连续代码块。
更好的研究,从现在开始
从阅读论文到最终审阅,大幅缩短您的研究时间。
无需绑定信用卡
本解读由 AI 生成,并经人工编辑审核。