软件学报

北大核心,INSPEC,JST,Pж(AJ),EI

国内刊号:11-2560/TP

国际刊号:1000-9825

软件学报杂志2025年第6期:基于大语言模型的长方法分解

发布日期:

作者:徐子懋,姜艳杰,张宇霞,刘辉

单位:徐子懋,北京理工大学 计算机学院, 北京 10008111,姜艳杰,北京大学 计算机学院, 北京 10087102,张宇霞,北京理工大学 计算机学院, 北京 10008103,刘辉,北京理工大学 计算机学院, 北京 10008104

关键词:长方法;重构;大语言模型;分解

基金:国家自然科学基金(62172037, 62232003); 中国博士后科学基金(2023M740078)

长方法及其他类型的代码坏味阻碍了软件应用程序达到最佳的可读性、可重用性和可维护性. 因此, 人们对长方法的自动检测和分解进行了广泛的研究. 虽然这些方法极大地促进了分解, 但其解决方案往往与最优方案存在很大差异. 为此, 调研公开真实长方法数据集中的可自动化部分, 探讨了长方法的分解情况, 并基于调研结果, 提出了一种基于大语言模型的新方法(称为 Lsplitter), 用于自动分解长方法. 对于给定的长方法, Lsplitter会根据启发式规则和大语言模型将该方法分解为一系列短方法. 然而, 大语言模型经常会拆分出相似的方法, 针对大语言模型的分解结果, Lsplitter利用基于位置的算法, 将物理上连续且高度相似的方法合并成一个较长的方法. 最后对这些候选结果进行排序. 对真实Java项目中的2849个长方法进行了实验, 结果表明, 相较传统结合模块化矩阵的方法, Lsplitter的命中率提升了142%, 相较纯基于大语言模型的方法, 命中率提升了7.6%.

来源:2025年第6期

《软件学报》期刊编辑部

查看软件学报杂志2025年第6期

联系我们

  • 地址:北京8718信箱
  • 电话:010-62562563
  • E-mail:jos (a) iscas. ac. cn

咨询工作人员