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

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


                 集在上述两个指标上的评价结果的分布情况. 对于                coefficient 指标, TLC  的结果集中分布于   [0, 0.6] 内, 其中区间
                 [0.2, 0.3] 内的样本比例最高, 对于   mesia  指标, 其取值在区间的分布呈现出先上升、后下降趋势, 整体的分布较为
                 对称. 除了总体情况外, 可以看到当前数据集存在部分                coefficient 值过高  (>0.6), mesia  值过低  (<2) 的注释, 这部分
                 注释的补充信息较少, 对开发者的帮助有限.

                                         表 10 3  个数据集在有用性指标上的均值和中位数

                                                  coefficient                   mesia
                              数据集
                                             均值           中位数            均值           中位数
                               TLC          0.264 2        0.25         4.308 8       4.312 7
                               CSN          0.290 4        0.25         4.136 7       4.098 0
                              Funcom        0.258 6        0.25         4.378 6       4.309 7



                                  27.5%                                            26.1%
                                                                 17 500
                      17 500
                                                                                22.3%
                                                                 15 000
                      15 000   21.2%
                                                                                      19.4%
                                                                 12 500
                      12 500  16.6%
                      Number  10 000  12.5%                     Number  10 000  12.4%
                       7 500                                      7 500
                                           9.2%                                         9.0%
                                        8.5%
                       5 000                                      5 000
                       2 500                                      2 500
                                              1.5% 1.8%
                                                   0.7% 0.4%
                          0                                          0
                            0  0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1.0  0    2    4     6     8    10
                                        coefficient                                 mesia
                                          图 6 TLC  数据集   coefficient 与  mesia  指标分布

                    由于  coefficient 与  mesia  在计算方法上有相似之处, 因此本文分析了它们的斯皮尔曼相关系数, 为−0.867 9, 相
                 关性极强. 同时, 本文也分析了有用性指标与之前的相关性指标的相关系数, 发现                        coefficient 和  mesia  与两个相关
                 性指标都为中等程度相关         (绝对值在   [0.4, 0.6] 区间).
                    图  7  展示了与有用性相关的案例. 例        1  的注释与方法名十分相近, 是对代码功能的直接概括. 然而由于代码本
                 身具有自描述性, 该注释的内容可以直接通过阅读方法的签名而获得, 因此该注释提供的额外信息量较少, coefficient
                 值较高, mesia  值较低. 例  2  的注释同样也描述了代码的功能, 但是其包含了方法签名中不存在的信息, 如“if a
                 consumer is selected”, 因而更有助于对功能的理解, coefficient 值相对较低, mesia  值相对较高. 例    3  的注释传达了
                 无法从代码中直接获得的信息, 它表明该方法可以替代另一个方法. coefficient 值更低, mesia                   值更高. 由此可见,
                 coefficient 指标和 mesia  指标有助于评价注释的信息量. 此外, 本文也发现了例外情况, 譬如例               4  的注释  mesia  值非
                 常高, “too many inout parameters”说明该方法的输入输出参数过多. 但是这是属于开发者之间相互沟通的信息, 不
                 适合作为注释内容, 属于噪音. 因此对          mesia  高的注释, 还需要进一步分析其注释的具体内容以过滤不适合的噪音
                 注释.

                 4.5   发 现
                    本节分析了     TLC、CSN  和  Funcom  这  3  个主流开放数据集的质量, 发现目前数据集中的注释存在不同程度的
                 不准确、可读性差、过于简短等问题, 且注释内容可能补充信息较少, 对开发者的帮助程度不大. 具体如下.
                    相关性: 目前主流数据集存在一定比例不准确注释或与代码不相关的注释. 本文选取的两项相关性指标一定
                 程度上有助于发现数据集中注释不准确/不相关的问题, 但仍存在改进之处.
                    简洁性: 不同数据集在注释长度、代码长度上有显著差异. 当前数据集普遍存在一些低质量的注释样本,
                 包括: 1) 过长的注释. 此类注释提供了过多不必要的信息. 2) 过短的注释. 此类注释过于简单, 没有提供有效信息.
   329   330   331   332   333   334   335   336   337   338   339