- 简介开发人员通常通过进行内部更改来演进现有的软件系统,这种过程被称为迁移。例如,迁移到新的框架、改变实现以提高效率,或者将依赖项升级到其最新版本,都属于迁移的范畴。 迁移是一项常见且通常是持续性的维护任务,可以手动完成或借助工具实现。然而,某些迁移工作量大、成本高,开发人员往往觉得这些任务缺乏成就感,并且可能需要数年才能完成。因此,对于这类迁移,自动化是更优的选择。 在本文中,我们讨论了谷歌的一项大规模、高成本且传统上依赖手工操作的迁移项目,提出了一种新颖的自动化算法,该算法结合变更位置发现技术和大型语言模型(LLM),帮助开发人员完成迁移任务。我们还报告了一项大规模案例研究的结果,并分享了从中获得的经验教训。 我们的案例研究分析了三名开发人员在十二个月内完成的39次不同迁移任务,总计提交了595次代码变更,涉及93,574处编辑。其中,74.45%的代码变更和69.46%的编辑是由LLM生成的。开发人员对自动化工具表示高度满意,并估计相比之前的纯手工迁移,总耗时减少了50%。 我们的研究结果表明,我们的自动化、LLM辅助的工作流程可以作为类似项目的参考模型。
- 图表
- 解决问题论文试图解决大规模、高成本且通常手动完成的软件迁移问题,特别是谷歌内部的一个具体迁移项目。这是一个常见但耗时的问题,需要探索自动化方法以减少人工负担和时间成本。
- 关键思路论文提出了一种结合变更位置发现算法与大型语言模型(LLM)的自动化工具来辅助开发者完成迁移任务。相比传统手动迁移,这种方法利用了LLM生成代码的能力,并通过算法定位需要修改的代码区域,显著提高了效率和开发者的满意度。
- 其它亮点实验设计涉及39个独立迁移任务,持续12个月,由3名开发者完成。结果显示74.45%的代码更改和69.46%的编辑由LLM生成,开发者报告总时间减少了50%。此外,该研究展示了LLM在实际工业场景中的应用潜力,且可能推动更多类似项目的自动化探索。论文未提及是否开源代码,但其结果为后续研究提供了明确方向,例如优化LLM生成精度和改进变更检测算法。
- 相关研究包括:1) 使用机器学习进行代码自动重构的研究,如《Automated Code Refactoring using Machine Learning》;2) LLM在软件工程中的应用,如《Large Language Models for Software Engineering: A Systematic Mapping Study》;3) 自动化代码生成工具,如《Evaluating the Effectiveness of Neural Models in Code Completion》。这些工作共同构成了当前利用AI技术提升软件开发效率的研究背景。
沙发等你来抢
去评论
评论
沙发等你来抢