Page 38 - 《软件学报》2021年第12期
P. 38
3702 Journal of Software 软件学报 Vol.32, No.12, December 2021
定义 7(决策者数量). 决策者是能够直接决定代码修改是否能整合进源代码库的人员,决策者是直接决定
评审结果的人员.根据模块的贡献请求集合计算所有的决策者数目.决策者数量 I 为
I=card(ISet M ) (7)
[3]
在 Patanamon 的论文 里,他们提出了贡献量这一说法.贡献量就是评估开发人员给项目做的贡献多少,比
如作者的贡献量就是修改代码的多少、评论者贡献量就是评论数目的多少.代码贡献量为大型软件系统中的模
块建立了一系列的责任链.虽然之前的工作揭示了代码贡献量、评论贡献量与软件缺陷之间的联系,但这些启
发式仅依赖于代码更改的作者和评论者.除了编写代码更改和评论之外,还有决策者对模块做出重要贡献.决策
者可以决定代码修改是否能被整合进源代码库中,作为评审活动中重要的一环,将决策者也加入到贡献量计算
中.提出了 3 种贡献量的计算方式.
• 代码贡献量
作者是最基本的一种开发人员,给项目添加代码改动的开发人员就是作者.作者提交的代码改动是评审的
基础和对象.而代码贡献量就是评估作者对项目的贡献.
定义 8(代码贡献量). M 是选定的一个模块,那么用户 D i 在模块 M 中所占的代码贡献量 TCO(D i ,M)为
,
CH (D M )
TCO (D M = i (8)
,
)
∑ CH (D M )
i
,
i
i D ∈ DSet M
• 评论贡献量
评论者虽然不能直接影响评审结果,但是评论者的评论可以作为决策者提供参考.评论数目反映一条代码
修改是否经历了大量的讨论.
定义 9(评论贡献量). M 是选定的一个模块,那么用户 Di 在模块 M 中所占的评论贡献量 RSO(D i ,M)为
RE (D M )
,
RSO (D M = i (9)
)
,
∑ RED i ,M )
i
(
i D ∈ DSet M
• 决策贡献量
决策者是可以把代码修改整合进入源代码库的内部人员.过去的论文都没有讨论过决策者的作用,然而决
策者作为直接评审的人员,肯定是不容忽视的.
定义 10(决策贡献量). M 是我们研究的一个模块,那么用户 D i 在模块 M 中所占的决策贡献量 ISO(D i ,M)为
PR (D M )
,
)
,
ISO (D M = i (10)
∑ PR (D M )
i
,
i
i D ∈ DSet M
各种类型的人员并不是完全独立的,评审过程中的开发人员可能同时扮演几种角色.为了准确地分析评审
过程里的人员组成,需要根据不同的贡献量将人员进行划分,并将模块中不同类型人员的比例作为度量指标.文
献[2,3]以 0.05 为阈值,按照贡献量划分开发人员的角色.类似的,本文也按贡献量来划分主要、次要贡献者.在一
个模块中,如果一个人某个方面的贡献量比例大于等于 0.05,则称他是这个方面的主要贡献者.根据人员在改
动、评论或者决策的贡献量比例来给他们划分角色.例如一个人 TCO≥0.05,RSO≤0.05,ISO≥0.05,那么他是主
要代码改动贡献者、次要评论贡献者、主要决策贡献者.由此可以将用户分为 8 类,并计算这 8 类用户在模块
里的比例作为度量指标.
• 多改动、多评论、多决策者的比例:TCO≥0.05,RSO≥0.05,ISO≥0.05 的人员比例;
• 多改动、少评论、多决策者的比例:TCO≤0.05,RSO≥0.05,ISO≥0.05 的人员比例;
• 少改动、多评论、多决策者的比例:TCO≥0.05,RSO≤0.05,ISO≥0.05 的人员比例;
• 少改动、少评论、多决策者的比例:TCO≤0.05,RSO≤0.05,ISO≥0.05 的人员比例;
• 多改动、多评论、少决策者的比例:TCO≥0.05,RSO≥0.05,ISO≤0.05 的人员比例;
• 多改动、少评论、少决策者的比例:TCO≤0.05,RSO≥0.05,ISO≤0.05 的人员比例;
• 少改动、多评论、少决策者的比例:TCO≥0.05,RSO≤0.05,ISO≤0.05 的人员比例;