Page 324 - 《软件学报》2025年第8期
P. 324
赵衔麟 等: 面向代码注释生成任务的注释质量评价研究 3747
是其所有生成注释质量的总体状况. 目前, 注释生成方法的评价通常是通过度量生成注释与人工注释的相似度来
进行的. 这种相似度评价建立在人工注释是开发者需要的代码注释的基础上. 而在实际开发中, 开发者需要的注释
往往是多种多样的, 目前并没有一个统一的度量模型或标准. 其关联性主要体现在: 首先, 代码注释质量的评价是
注释生成方法评价的基础. 在评价代码注释生成方法时, 需要对其生成的注释质量进行评价. 例如, A 方法生成注
释的质量比 B 方法更能够满足某些标准, 那么在该标准下, 往往认为 A 方法比 B 方法更有效; 其次, 在评价代码注
释生成方法时, 需要考察其在大量样本下注释的整体生成效果. 例如, A 方法若仅在个别例子上生成的注释质量
比 B 方法好, 而在更多的样本下生成的注释质量不如 B 方法, 那么往往认为 B 方法比 A 方法更有效. 大量样本下
人工评价耗时耗力, 因此需要自动化的代码注释质量评价方法.
1.2 研究问题
从代码的情况来分析, 代码注释有许多种类, 包括类注释、方法级注释、代码片段或者代码行的注释等. 本文
将方法级代码注释的质量作为研究点, 这也是现有自动注释生成研究的主要关注对象. 在后文中, 所提到的代码注
释特指方法级代码注释. 基于此, 本文重点探索以下几个研究问题.
RQ1: 现有研究提出了哪些评价代码注释质量的维度以及可量化的评价方法?
评价代码注释的质量有多种维度, 不同维度采取的评价方法必然有所不同. 为此, 首先需要研究有哪些注释质
量评价维度. 其次, 现有的注释生成工作往往只依靠人工打分的方式对注释的某些维度进行评价, 存在主观性强 [36] 、
效率不高等问题, 只能评价少量数据. 为此, 需要考虑可量化的评价方法, 并据此设计评价指标以客观高效地评价
注释的质量.
RQ2: 现有开放注释数据集中的代码注释存在哪些注释质量问题?
当前代码注释生成方法的训练和评价均是基于已有的开放数据集, 因此数据集的质量是影响注释生成方法的
重要因素 [37] . 训练集中注释的质量问题会影响模型训练的效果, 测试集中人工参考注释的质量问题会影响 BLEU
等相似性指标评价的有效性. 为此, 有必要基于注释质量评价指标对开放数据集中的注释进行系统分析, 筛选出质
量较低的噪音注释, 帮助开发者构造高质量的代码注释数据集.
RQ3: 现有代码注释生成方法自动生成的代码注释存在哪些质量问题?
为了更好地了解目前自动生成的注释质量的实际情况, 需要选取典型的注释生成方法, 将其生成的注释和相
应的人工参考注释分别进行分析和对比, 而非仅考虑它们之间的相似性, 由此才能更好地展现当前注释自动生成
的实际情况并不断改进.
RQ4: 相比传统的注释生成方法, 大语言模型生成的代码注释质量如何?
以 ChatGPT 为代表的大语言模型开始被应用于软件工程领域的任务中. 已有研究对 ChatGPT 在注释生成任
务上的表现进行了初步评估 [38] , 但仍然使用了 BLEU 等相似性指标. 本文尝试使用量化的评价指标来对其生成的
注释进行分析, 并与典型的注释生成方法作对比, 以更好地展现不同模型生成注释的实际效果.
2 研究方法
针对 RQ1, 本文对现有文献中代码注释质量的常用评价维度和方法进行了分析和整理, 并据此设计了一套量
化的注释质量评价指标. 针对 RQ2、RQ3 和 RQ4, 本文进一步将这套指标应用于代码注释生成任务的实践, 并给
出了若干有参考价值的研究发现.
2.1 文献收集
在现有工作中, 代码注释质量问题的研究往往是和代码注释生成工作紧密关联的. 代码注释生成 (code comment
generation) 又常被称为代码摘要 (code summarization); 而代码注释质量研究常用的关键词主要包括“quality”
“evaluation”“assessment”等. 因此, 本文使用“code comment generation”“code summarization”“code summaries”“code
comment”“comment quality”“comment evaluation”“comment assessment”等关键词在 DBLP Computer Science
Bibliography 中检索, 分别得到 50、155、17、329、72、105、47 个搜索结果.

