Page 214 - 《软件学报》2024年第6期
P. 214
2790 软件学报 2024 年第 35 卷第 6 期
5.2 标签相关分析
相关分析指的是分析两个或多个可能具备相关性的变量元素, 从而衡量两个变量因素的相关密切程度. 分析
评审意见质量属性标签 (变量) 相关性的重要意义在于: (1) 辅助标签设计、标注与验证; (2) 辅助模型设计、构建
与验证. 如果标签存在相关/依赖关系, 则在标注时可以先标注某一标签, 利用该标签信息指导下一标签的标注; 否
则可以独立标注. 在对多标签学习任务建模时, 同样需要考虑多个标签之间是否存在相关性: 如果不存在, 可使用
“binary relevance”类算法; 如果存在, 可使用“classifier chain”类算法 [23] .
图 5 展示了针对本文实验使用的 17 000 条代码评审意见, 使用“Kendall 秩相关系数 (Kendall-Tau rank correlation
coefficient)”相关性分析方法的结果. 图中每个方块内的数字即两两质量属性的 Kendall 秩相关系数 τ . 如果 小
τ
于 0.2, 表示几乎不存在相关性; 如果 τ 大于 0.2 但是小于 0.4, 表示存在弱相关性; 如果 τ 大于 0.4, 表示至少存在中
等程度的相关性. 从图 5 可以看出, 大多数质量属性的相关性都非常低, 实证了本文提出的方法 (自动化模型) 使
用“binary relevance”一类算法的正确性. 注: 自动化模型中设置了 4 个同步的中间输出节点 (详见第 3.2.2 节), 用于
表示 4 个质量属性的学习任务.
建议 0.1
评价 −0.31 0 −0.1
疑问 −0.43 −0.21 −0.2
−0.3
情绪 0.16 −0.027 −0.15 −0.4
建议 评价 疑问 情绪
图 5 质量属性相关分析
5.3 影响和启示
5.3.1 对管理者的影响和启示
当实施评价, 尤其是在实施本文提出的方法时, 管理者应该首先需要考虑评价结果的呈现形式. 例如, 系统仅
实时地向评审者展示对评审意见的 4 个质量属性的预测结果 (起规范评审意见书写的作用), 评审者需要手动查看
才能知晓质量等级 (减轻对评审过程的干扰). 另一方面, 呈现形式应尽可能友好. 例如, 以卡通动画的表情包的形
式呈现质量属性和质量等级. 其次, 管理者在团队及以上层面公开代码评审的评价结果时, 应该公开代码变更和评
审意见, 而不是项目或个人. 此外, 尽管评审意见是评审的最主要和最重要产出, 管理者需要考虑结合更多方面的
因素 (例如参与评审的频次, 评审的详细程度, 项目背景和成熟度等) 来综合评价代码评审. 总结来说, 评价是方法,
提升才是目标.
5.3.2 对评审者的影响和启示
评审者应该首先关注于提升代码质量, 而不是刻意地追求“高质量”的评审意见. 例如, 对于命名和风格一类的
缺陷, 无需向有经验的开发者提供解释和修改建议. 另一方面, 当评审重要的和紧急的代码变更时, 评审者应该就
功能性和安全性等高优先级的、复杂的缺陷提供解释和修改建议, 从而帮助开发者更好地提升代码质量和编程
水平.
6 效度威胁
内部效度 (internal validity): 实验的内部效度威胁可能来自数据准备环节. 代码评审意见因其可能包含程序语
言文本/代码元素而属于一类特殊的自然语言文本, 具有多样性和复杂性. 本文使用的“三角论证”方法仅能建立起
评审意见质量评价的理论/概念模型, 为了训练和验证可用的自动化模型, 实验需要构建 ground-truth 数据集. 为此,
本文作者首先在超过 2 000 条的意见上进行了“预标注”, 所得经验经过多次整理和验证后形成了正式的“标注检查
表” (详见第 5.1.1 节). 在正式的标注阶段, 3 位作者首先独立地标注数据集中的每一条意见, 然后通过面对面的集
中会议讨论解决所有不一致的意见, 从而能够保证标签标注的正确性和一致性.