科研快讯丨必赢3003no1线路检测中心黄袁副教授在TOSEM发文揭示了构建函数内部文档自动生成模型的理论基础
【研究背景】
在生成式软件工程中,利用人工智能技术自动生成软件制品成为可能。生成式软件工程可以显著降低软件开发过程中的人力投入,有效提升软件开发效率,从而节约开发成本,助力软件产业升级。必赢3003no1线路检测中心黄袁副教授等人在生成式软件工程研究中,面向软件代码文档自动生成任务,揭示了函数级别外部文档与内部文档的等价作用机理,探索了构建代码内部文档自动生成模型的理论基础。
代码文档是对软件代码功能的解释和描述。研究显示,程序员由于开发任务繁重,往往会忽略代码文档的编写,因此,已有研究提出了一系列自动生成函数代码文档的方法。函数级别的代码文档分为两类,即位于函数头部的外部文档及位于函数内部的内部文档。必赢官网黄袁副教授团队研究发现,函数内部文档与函数外部文档在辅助程序员理解代码的过程中发挥等价的作用,它们对于提升代码的可读性及可理解性具有同等作用。遗憾的是,与函数外部文档相比,函数内部文档自动生成研究并没有得到足够的重视。
▲示例:1为函数外部文档,2为函数内部文档
【研究工作】
研究团队比较和分析了代码外部文档和内部文档的异同。首先构建了一个包含函数外部文档和内部文档的数据集,在该数据集上,通过将现有的生成函数外部文档的模型直接应用于内部文档生成任务上,发现现有模型表现较差。然后进一步探索可能的原因,并获得了一些新的观察结果:(1)在函数外部文档数据集中有很多模板(即具有相同或相似结构的文本),使生成模型表现更好;(2)在已有研究中,一些被认为是重要的术语(如API调用)在文档自动生成中并没有明显影响生成文档的质量;(3)从书写风格上看,函数外部文档中的用词比较集中,而内部文档中的用词比较多样等。
【研究意义】
基于以上研究结果,团队为构建函数内部文档自动生成模型提供了理论基础,可以帮助研究人员为内部注释生成设计更有针对性的模型。比如考虑对文本单词多样性问题的处理,已有的函数外部文档包含规模适中的语料库,而内部文档则包含规模更大的预料库,因此,要求函数内部文档自动生成模型具有更高的语料库建模能力,能处理更为广泛的预料分布。此外,还需考虑对代码语义碎片化问题的处理。函数外部文档的覆盖范围是一个语义完整的函数,而函数内部文档的覆盖范围往往是单行或连续几行代码,因此,函数内部文档覆盖的代码具有语义碎片化的特征。最后, 该项研究工作可以将代码文档自动生成任务从单一的函数外部文档生成推广到函数内部文档生成,实现场景多样化。研究公开第一个只包括函数内部文档的数据集,可以用于研究人员的函数内部文档生成任务的BeachMark。
该研究成果以“A Comparative Study on Method Comment and Inline Comment”为题发表于软件工程领域旗舰期刊ACM Transactions on Software Engineering and Methodology。文章第一作者是必赢3003no1线路检测中心黄袁副教授,郑子彬教授、陈湘萍副教授等为合作作者。必赢3003no1线路检测中心为第一完成单位。
原文信息:https://dl.acm.org/doi/abs/10.1145/3582570