代码注释在促进代码理解和软件维护方面发挥着重要作用。编写代码注释是一项既费力又费时的工作,导致代码演化过程中的注释往往是缺失、不匹配或过时的等问题。代码摘要旨在研究自动化代码注释(或称为摘要)生成方法,已成为软件工程热门研究方向之一。现有的代码摘要技术主要分为抽取式和抽象式方法。抽取式方法使用信息检索技术从代码片段中提取重要语句和关键词的子集,以生成保留事实细节的摘要。当标识符和方法命名不当时,所提取的关键词可能是无意义的单词或缩写,导致生成的摘要的自然性通常很差。与抽取式方法相比,基于深度学习的抽象式方法具有更强的抽象表达能力,可以生成类似人类书写的摘要和注释,但生成的摘要常常会遗漏重要的事实细节。
我院iSE实验室房春荣老师指导博士生孙伟松(6月已毕业)创新性提出一种抽取式与抽象式一体化的代码摘要框架(EACS)。EACS继承抽取式和抽象式方法优点,即抽取模块执行抽取式代码摘要任务,接收代码片段并预测包含关键事实细节的重要语句;抽象模块执行抽象代码摘要任务,同时接收代码片段和抽取模块提取的重要语句作为输入,生成简洁的类似人类书写的自然语言摘要。在涉及六种编程语言的三个数据集上对EACS进行全面的实验,在三种广泛使用的度量指标(包括BLEU、METEOR 和 ROUGH-L)上进行了系统性评估。结果显示EACS均显著优于当前最先进的代码摘要技术。同时,人工对比评估实验表明,EACS生成的摘要具有更高的自然性和信息量,且与给定的代码片段相关性更强。
这项工作不但对基于大模型生成代码摘要的反向策略具有重要意义,同时能启发基于大模型从需求生成代码的正向策略思路,在未来双向逼近的基于大模型软件工程方面值得学术界和工业界的持续关注。相关研究成果形成的论文《An Extractive-and-Abstractive Framework for Source Code Summarization》已被软件工程领域国际顶级期刊ACM Transactions on Software Engineering and Methodology(CCF-A类)全文录用。
孙伟松博士由陈振宇教授和房春荣助理研究员共同指导,其主要研究方向包括智能软件工程和智能模型安全,其研究成果先后全文发表在 ICSE、FSE、ASE、ACL、TSE、TDSC、TOSEM 等 CCF-A 类会议和期刊。孙伟松博士将深入研究可信智能化编程技术研究,形成系统性的学术研究和工业应用。