In programming, the names for the program entities, especially for the methods, are the intuitive characteristic for understanding the functionality of the code. To ensure the readability and maintainability of the programs, method names should be named properly. Specifically, the names should be meaningful and consistent with other names used in related contexts in their codebase. In recent years, many automated approaches are proposed to suggest consistent names for methods, among which neural machine translation (NMT) based models are widely used and have achieved state-of-the-art results. However, these NMT-based models mainly focus on extracting the code-specific features from the method body or the surrounding methods, the project-specific context and documentation of the target method are ignored. We conduct a statistical analysis to explore the relationship between the method names and their contexts. Based on the statistical results, we propose GTNM, a Global Transformer-based Neural Model for method name suggestion, which considers the local context, the project-specific context, and the documentation of the method simultaneously. Experimental results on java methods show that our model can outperform the state-of-the-art results by a large margin on method name suggestion, demonstrating the effectiveness of our proposed model.
翻译:在编程中,程序实体的名称,特别是方法的名称,是理解代码功能的直观特征。为确保程序的可读性和可维护性,应适当命名方法名称。具体地说,名称应当有意义,并与代码库中相关情况下使用的其他名称相一致。近年来,提出了许多自动化方法,为方法提出一致的名称,其中以神经机翻译为基础的模型得到广泛使用,并取得了最新结果。然而,这些基于NMT的模型主要侧重于从方法体或周围方法中提取具体代码特征,忽略了目标方法的项目特定背景和文件。我们进行统计分析,以探讨方法名称及其背景之间的关系。根据统计结果,我们建议GTNMM,一个基于全球转换器的神经模型,用于方法命名建议,该模型考虑到当地情况、项目具体背景和该方法的文件。Java方法的实验结果显示,我们的模型能够超越模型的状态,以大比例的名称显示我们拟议方法名称的建议的有效性。