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 的人员比例;
   33   34   35   36   37   38   39   40   41   42   43