自动推荐提取局部变量重构的方法

《ACM Transactions on Software Engineering and Methodology》:Automated Recommendation of Extracting Local Variable Refactorings

【字体: 时间:2025年11月07日 来源:ACM Transactions on Software Engineering and Methodology

编辑推荐:

  提出自动化提取局部变量重构方法ValExtractor+,包含安全验证模块solutionAdvisor和自动推荐模块opportunityAdvisor。前者通过静态分析确保重构安全性,后者结合机器学习预测最佳提取表达式。实验表明该方案成功规避Eclipse和IntelliJ IDEA的266项重构缺陷,并实现307次正确提取推荐,4项代码贡献被Eclipse社区采纳。

  

摘要

提取局部变量重构是一种常见的技术,用于将一个或多个复杂表达式的使用替换为对新引入的变量的简单访问。为了便于进行重构,大多数集成开发环境(IDE)可以在开发人员选中需要提取的表达式时自动执行这种重构操作。然而,重构工具通常会替换所有在语法上与所选表达式相同的表达式,而不会全面分析重构的安全性。这种自动执行的重构可能会导致严重的软件缺陷。此外,现有的重构工具严重依赖软件开发人员来识别需要提取的表达式,但对于经验不足的开发和维护人员来说,这一任务往往具有挑战性。为此,本文提出了一种自动化方法,称为ValExtractor+,该方法能够推荐提取局部变量的时机,并自动且安全地执行重构操作。ValExtractor+由两部分组成:solutionAdvisoropportunityAdvisor。给定一个需要提取的表达式,solutionAdvisor利用轻量级的静态源代码分析来验证该表达式可能产生的副作用,并识别可以与该表达式一起提取为单个变量的其他表达式,同时不会改变程序的语义或引入新的异常。静态代码分析显著提高了自动提取局部变量的安全性。为了使程序员无需手动选择需要提取的表达式,opportunityAdvisor利用solutionAdvisor自动检索所有可以安全提取的表达式及其重构方案,然后通过基于学习的分类器来预测哪些表达式应该被提取。在开源应用程序上的评估表明,solutionAdvisor成功避免了由Eclipse(243个缺陷)或IntelliJ IDEA(263个缺陷)执行的局部变量重构所引起的所有缺陷(超过200个)。此外,opportunityAdvisor在推荐提取表达式方面表现优异,实现了307个真正例(TP)和21,121个真正例(TN)。我们的四项 pull 请求(PR ID:66、333、439 和 360)已成功合并到 Eclipse 社区仓库中,这表明了我们的方法在实际应用中的影响力和稳健性,得到了更广泛开发者社区的认可。
相关新闻
生物通微信公众号
微信
新浪微博
  • 搜索
  • 国际
  • 国内
  • 人物
  • 产业
  • 热点
  • 科普
  • 急聘职位
  • 高薪职位

知名企业招聘

热点排行

    今日动态 | 人才市场 | 新技术专栏 | 中国科学人 | 云展台 | BioHot | 云讲堂直播 | 会展中心 | 特价专栏 | 技术快讯 | 免费试用

    版权所有 生物通

    Copyright© eBiotrade.com, All Rights Reserved

    联系信箱:

    粤ICP备09063491号