Page 340 - 《软件学报》2025年第8期
P. 340

赵衔麟 等: 面向代码注释生成任务的注释质量评价研究                                                      3763


                 进行了质量评价和分析, 可能影响其研究结论有效性的主要因素可能来自度量指标、度量数据两个方面.
                    首先在评价维度和评价指标的选择上, 代码注释质量的评价有多种维度, 评价方法也较为多样, 本文通过大量
                 文献的阅读和整理, 选取了目前研究工作中普遍关注的                  4  个维度, 并借鉴现有工作定义了可量化的度量指标. 在本
                 文工作中, 这些指标上的度量结果相互印证, 揭示了代码注释生成任务中的若干注释质量问题, 也间接证实了这些
                 指标的有效性. 在调研分析过程中, 本文也发现部分评价指标的有效性尚待提升, 譬如准确性的评价通常是基于特
                 定规则计算代码与注释的文本相似度, 可能无法检测出一些明显的错误. 而且, 在实际情况中, 不同场景可能会导
                 致开发者对代码注释质量的不同关注点. 因此未来的工作可以考虑根据代码注释的语言特点和应用需求, 针对性
                 地改进评价指标和调整评价方法, 以更准确地评估代码注释质量.
                    其次在度量数据上, 代码注释数据集和注释生成方法的选择也可能会影响研究结论的有效性. 本文选取了                                   3
                 个主流的代码注释开放数据集, 其编程语言均为               Java, 因此研究结果可能不能适用于所有的编程语言和数据集. 然
                 而, 本文使用的评价指标都是独立于编程语言的, 而且                3  个数据集都是代码注释生成任务上主流的数据集, 因此所
                 得到的结论具有一定的代表性. 此外, 本文只使用了               CodeT5  一种典型的注释生成方法对         CSN  数据集的测试集生
                 成注释, 但原始论文表明, 该模型在包括注释生成在内的多个下游任务上取得了优异的效果. 未来考虑尝试更多的
                 注释生成方法, 并在更多的注释数据集上开展实验, 以更加全面地研究自动生成注释的质量.

                 8   总结与未来研究

                    代码注释的质量问题当前已经引起了学术界和产业界的广泛重视                        [10] . 由于缺乏直接有效的代码注释质量评
                 价方法的支撑, 当前主流的基于深度学习的注释生成方法在数据集的质量和生成注释的质量评价方面都存在巨大
                 挑战. 本文梳理了现有工作在评价代码注释质量时考虑的维度和方法. 在此基础上, 使用一系列自动化的评价指
                 标, 度量了常用的开放数据集中的注释和自动生成的注释质量, 给出了一些对未来研究有参考价值的发现和建议.
                 基于这些研究发现, 本文总结和提出了若干未来有价值的研究方向, 以期能够更好地促进代码注释的相关研究.
                    (1) 建立面向场景的代码注释质量评价模型
                    当前注释质量评价考虑的维度定义较为宽泛, 部分维度难以量化, 一些评价指标间甚至存在隐含的冲突. 由于
                 开发者在不同场景下对代码注释可能有不同的需求, 因此相应的评价方法也需要有所不同. 譬如, 在需要注释能够
                 准确传达代码功能的场景中, 可以采取间接的评价方式, 根据是否可以利用代码注释生成代码的方式来度量注释
                 的质量. 为此, 需要更多关注面向场景的多维度代码注释质量评价模型                     [9] , 以促进对注释质量更准确、更有针对性
                 的评价.
                    (2) 构建高质量的代码注释开放数据集
                    现有主流开放数据集中的代码注释普遍存在不准确、缺乏有用信息等问题. 这不仅会对注释生成模型的训练
                 和评价产生影响, 而且不便于后续方法的比较和提升. 未来在代码注释质量评价模型的支撑下, 还需要继续探讨如
                 何构建高质量的人工注释数据集来提高并检验代码注释生成的效果.
                    (3) 探索基于大语言模型的注释生成与注释质量评价
                    传统的代码注释生成方法普遍关注生成一句较为简短的注释, 而大语言模型                          (例如  ChatGPT) 生成的注释内
                 容十分丰富但较为冗长、不便阅读. 因此, 如何针对具体的场景提示大语言模型生成更满足开发者需要的、精简
                 的注释, 以及如何利用大语言模型评价生成注释的质量, 都是未来研究值得探索的课题.

                 References:
                  [1]  Woodfield SN, Dunsmore HE, Shen VY. The effect of modularization and comments on program comprehension. In: Proc. of the 5th Int’l
                     Conf. on Software Engineering. San Diego: IEEE, 1981. 215–223.
                  [2]  He H. Understanding source code comments at large-scale. In: Proc. of the 27th ACM Joint Meeting on European Software Engineering
                     Conf. and Symp. on the Foundations of Software Engineering. Tallinn: ACM, 2019. 1217–1219. [doi: 10.1145/3338906.3342494]
                  [3]  de  Souza  SCB,  Anquetil  N,  de  Oliveira  KM.  A  study  of  the  documentation  essential  to  software  maintenance.  In:  Proc.  of  the  23rd
                     Annual Int’l Conf. on Design of communication: Documenting & Designing for Pervasive Information. Coventry: ACM, 2005. 68–75.
   335   336   337   338   339   340   341   342   343   344   345