Page 216 - 《软件学报》2021年第7期
P. 216

2134                                     Journal of Software  软件学报 Vol.32, No.7,  July 2021

                    不难看出,BLEU、METOR和 ROUGE指标的取值范围介于 0~1之间,并经常以百分比的形式给出.而 CIDER
                 指标对的取值范围并不在 0~1 之间,因此经常以实数的形式给出.
                    我们按照不同年份,将上述评测指标在基于深度学习的方法中的使用情况进行了统计,最终如图 4 所示.















                                Fig.4    Statistics on the usage of performance measures for different years
                                           图 4   评测指标在不同年份的使用情况统计
                    不难看出,在 2016 年和 2017 年,研究人员主要使用 BLEU 和 METOR 指标.但从 2018 年开始,研究人员逐
                 渐开始使用 ROUGE 和 CIDER 指标.除此之外,我们还发现基本上所有的基于深度学习的方法均使用了 BLEU
                 评测指标,近些年来,研究人员更倾向于同时使用 BLEU、METOR 和 ROUGE 指标.
                                                     [6]
                    在最近的一个研究工作中,Stapleton 等人 通过调研高校学生和经验丰富的开发人员后,发现与自动生成
                 代码注释相比,人工编写的代码注释可以更好地协助开发人员进行代码理解.同时,基于 BLUE 和 ROGUE 的评
                 分与代码理解并不存在相关性,即开发人员在代码理解时,并不一定能从评分较高的代码注释中受益.因此,在
                 后续研究中,需要设计更为有效的评测指标来评估生成的代码注释的质量.

                 7    总结与展望

                    高质量的代码注释有助于减少开发人员花费在程序理解上的代价.但开发人员由于项目开发时间紧、编程
                 经验不足或者对代码注释的重视程度不够,经常会造成代码注释的缺失、不足或者与代码实际内容不匹配等问
                 题.因此,代码注释自动生成是缓解上述问题的一种有效手段,也是当前程序理解研究领域的一个重要应用场
                 景.同时,针对该问题的研究具有丰富的理论研究价值和工业应用前景,目前,该问题在程序理解领域仍是一个
                 开放性研究问题.本文针对该主题进行了系统的综述,以方便研究人员更好地了解这一主题的最新研究进展.具
                 体来说,首先将已有方法细分为 3 类:基于模板的方法、基于信息检索的方法和基于深度学习的方法.对每一类
                 方法均深入分析了方法的核心思想并对经典工作进行了深入的评点.随后对常用的语料库和代码注释生成质
                 量评估方法进行了总结,以方便研究人员对后续提出的新方法进行更加全面和合理的评估.虽然研究人员针对
                 代码注释自动问题已经取得了一系列高质量的研究成果,但该问题仍有很多研究点值得研究人员进一步关注.
                    (1)  搭建统一的实验平台以集成更多的语料库、评测指标和基准方法等.通过第 5 节的分析,我们发现虽然
                 研究人员陆续共享了多个代码注释语料库,其中一些语料库                     [13,46,81] 被使用的次数也较多,但目前还没有一个大
                 家都普遍认可的统一语料库.通过对已有研究工作的分析我们发现,本文实证研究中的语料库选择与研究人员
                 所在的研究小组密不可分,因此会对已有研究结论的一般性产生重要的影响.在后续研究工作中,亟需搭建一个
                 统一的实验平台,以支持基于更多编程语言的语料库.同时需要进一步提出有效的方法识别出语料库内的噪音,
                 也进一步提高语料库的质量.除此之外,希望基于该实验平台,使用统一的深度学习框架来实现已有的经典方法
                 和目前主流的评测指标,从而避免不同的深度学习框架由于编程细节的不同对实证研究结论有效性的影响.
                 不难看出,基于该实验平台,有助于将研究人员新提出的方法与已有经典基准方法进行更公平和全面的评估.
                    (2)  从挖掘众包知识网站、分析相关软件制品和学习优秀注释风格等角度,进一步地提升生成的代码注释
                 质量.进一步提升生成的代码注释质量仍然是该综述主题的一个重要研究点,首先,一方面需要充分利用来自
   211   212   213   214   215   216   217   218   219   220   221