一种基于结构和词汇分析的精确重命名方法(英文)

作者:骆君鹏; 张静宣*; 黄志球; 徐勇; 孙辰星
来源:Frontiers of Information Technology & Electronic Engineering, 2022, 23(05): 732-749.

摘要

程序中的方法必须准确命名,以便于源代码分析和理解。随着软件的演变,方法名称可能与其实现的方法体不一致,导致方法名称不准确或有缺陷。调试方法名称仍然是文献中的一个重要主题。尽管研究人员已提出一些方法,用于在方法体被修改后给出准确的方法名称建议,但有两个主要不足仍待解决:对方法名称结构未加以分析,且未能有效捕获编程环境上下文信息。为避免上述不足,并给出更准确的方法名称建议,提出一种基于方法名称结构分析和编程上下文信息词法分析的新颖自动化方法。首先,利用深层特征表示,将方法名称和方法体嵌入向量中;然后,通过结构分析从大型方法语料库中获取有用的动词标记,通过词汇分析从方法体中获取名词标记;最后,动态结合这些标记,形成并推荐高质量和特定于项目的方法名称。在2111个Java测试方法上的实验结果表明,所提方法可以达到33.62%的命中率(Hit@5),并且在建议准确方法名称方面比最先进的方法高出14.12%。此外,展示了所提方法对结构和词汇分析的有效性。