Page 204 - 《软件学报》2024年第6期
P. 204
2780 软件学报 2024 年第 35 卷第 6 期
3.1 方法形式化
本文旨在提出一个可解释的、自动化的评价方法 G . 该方法属于混合方法, 形式化表达如公式 (1) 所示:
G = F ◦Z (1)
F 表示目标函数, 如公式 Y .
其中, (2) 所示, 旨在使用自动化模型从评审意见 X 中学习若干个质量属性
F = Φ(X,Y) (2)
Z 表示映射, 如公式 (3) 所示, 旨在基于启发式规则/人工经验建立起质量属性与质量等级 Q 之间的关联.
Z : F → Q (3)
3.2 方法具体化: 质量属性和映射
质量属性和映射关系是本文提出的方法实现“可解释的和具有指导性的评价”的目标的支持要素. 质量属性也
是构建和优化模型以实现“自动化评价”的目标的指导依据. 关于质量属性和映射关系的详细介绍如下.
3.2.1 质量属性
为了识别和总结用于评价代码评审意见质量的属性 (即评价标准), 本文使用了社会科学研究领域中经典的
(4) 提升团队协作意识; (5) 探索替代方法. 主要的挑战包括: (1) 推荐评审者; (2) 时间/精力开销; (3) 理解代码意图
“三角论证 (triangulation)”方法 [32] . 三角论证又被称作“三角互证”, 是质性研究领域中一种典型的研究方法, 其旨在
使用多种方法、数据源、理论交互证实, 从而保证研究发现的有效性和可信度. 三角论证主要有 3 种实施形式. 其
中, 方法三角论证 (method triangulation) 强调使用多种方法 (如访谈、问卷调查等) 来收集与研究问题相关的证据;
数据三角论证 (data source triangulation, source 一词常被省略) 强调从多种数据源收集证据; 理论三角论证 (theory
triangulation) 强调使用多种理论来分析和解释数据. 本文使用的是“数据三角论证”, 3 种数据源分别是: (1) 正式文
件; (2) 学术文献; (3) 实例分析结果.
● 数据源 1: 正式文件
本文首先回顾了两份重要的文件. 其中一份 [1] 是 Fagan 在 IBM 公司首次正式提出“代码审查”概念的文章; 另
一份 [33] 是 IEEE 计算机协会发布的关于“软件评审和审计标准”的文件. 总结发现, 尽管软件评审存在若干种变体,
如“technical reviews”“inspections”和“walk-throughs”等, 但都需要评审代码, 并且评审的核心目标是发现和识别编
码缺陷.
● 数据源 2: 学术文献
尽管本文尝试在 IEEE Xplore Digital Library、ACM Digital Library 和 Google Scholar 等知名的电子数据库检
索研究代码评审意见的文献, 使用的检索字符串为: ((“code review” OR “code inspection”) AND (“comment” OR
“feedback”)). 但返回的与代码评审意见直接相关的文献数量极少. 于是本文使用快速文献综述 (rapid reviews) [34] 方
法寻找研究代码评审的文献. 具体地, 本文选择了两篇最新的、研究主题为代码评审的高质量系统文献综述
(systematic literature reviews) [35,36] . 两篇文献综述均于 2021 年发表在国际知名的软件工程期刊《Journal of Systems
and Software》上, 分别包含了 139、112 篇原始研究 (primary studies). 经过汇总和去重后, 还剩下 182 篇.
本文的两位作者独立地阅读每一篇原始研究的至少摘要和引言部分, 从中识别代码评审的获益和挑战. 另一
位作者在最后的集体讨论中加入进来解决前两位作者的分歧. 本文期望通过评价和提升代码评审意见质量, 在最
大化代码评审的获益的同时, 在一定程度上克服代码评审的挑战. 经过数据抽取和合成, 本文识别出了代码评审
的 22 项获益和 35 项挑战. 主要的获益包括: (1) 发现与修复缺陷; (2) 保证与提高软件 (代码) 质量; (3) 传播知识;
和实现; (4) 公平/争执; (5) 未能发现缺陷; (6) 增加工作负担; (7) 缺少工具支持.
本文首先移除了与代码评审意见文本无关的数据项, 如推荐评审者、时间/精力开销、增加工作负担和缺少
工具支持等. 然后将提升团队协作意识、公平/争执等合成为“情绪”; 将发现与修复缺陷、保证与提高软件 (代码)
质量、传播知识、探索替代方法和未能发现缺陷等合成为“质量保证”. 此外, 仍有一些数据项未在该阶段的集体
讨论中达成一致, 如理解代码意图和实现. 本文期望提出的质量属性不仅是可解释的, 而且是完备的, 即能够覆盖
尽可能多的情形. 为此, 本文设计了“数据三角论证”的第 3 部分 (实例分析结果), 即通过分析评审意见实例来进一