中文

结合全局上下文学习方法名推荐

软件工程 2022-03-09 v2

摘要

在编程中,程序实体(尤其是方法)的命名是理解代码功能的直观特征。为保证程序的可读性与可维护性,方法名应恰当命名。具体而言,名称应有意义且与代码库中相关上下文使用的其他名称一致。近年来,许多自动化方法被提出用于建议一致的方法名,其中基于神经机器翻译(NMT)的模型被广泛使用并取得了最优结果。然而,这些基于 NMT 的模型主要关注从方法体或周围方法中提取代码特定特征,忽略了目标方法的项目特定上下文与文档。我们进行统计分析以探索方法名与其上下文之间的关系。基于统计结果,我们提出 GTNM,一种基于全局 Transformer 的神经模型用于方法名建议,其同时考虑局部上下文、项目特定上下文以及方法的文档。在 Java 方法上的实验结果表明,我们的模型在方法名建议上大幅优于最优结果,证明了所提模型的有效性。

关键词

引用

@article{arxiv.2201.10705,
  title  = {Learning to Recommend Method Names with Global Context},
  author = {Fang Liu and Ge Li and Zhiyi Fu and Shuai Lu and Yiyang Hao and Zhi Jin},
  journal= {arXiv preprint arXiv:2201.10705},
  year   = {2022}
}

备注

Accepted for publication at ICSE 2022