Page 39 - 《软件学报》2021年第12期
P. 39

蒋竞  等:开源社区评审过程度量体系及其实证研究                                                         3703


             •   少改动、少评论、少决策者的比例:TCO≤0.05,RSO≤0.05,ISO≤0.05 的人员比例.
             表 1 中给出了评审过程度量指标的定义和描述,这些度量指标从评审活动和人员分布两方面诠释了软件
         评审过程中的多维属性.
                                        Table 1   Review process metrics
                                           表 1   评审过程度量指标
                                   指标                                描述
                                     评审次数                     一个模块的贡献请求数量
                                    评审信息长度              一个模块里贡献请求的评审信息条数之和
                    评审活动
                                    代码改动行数               一个模块代码增加、删除和修改的行数
                                     评审时间                 一个模块里贡献请求的评审时间之和
                                     改动者数量                   一个模块中的改动者者人数
                                     评论者数量                    一个模块中的评论者人数
                                     决策者数量                    一个模块中的决策者人数
                             多改动、多评论、多决策者的比例          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 的人员的比例
                             少改动、少评论、少决策者的比例          TCO≤0.05,RSO≤0.05,ISO≤0.05 的人员的比例

         4    实证研究

             为了验证度量体系的有效性和实用性,同时为了进一步研究评审过程指标与软件缺陷的相关性,本文采用
         Github 的真实数据来进行实证研究.如图 2 所示,参考 Patanamon 的论文             [23] ,本文把数据分成 3 部分:上一个时间
         段、当前时间段、下一个时间段.每个时间段都是 6 个月.上一个时间段的数据用来计算之前的软件缺陷;当前
         时间段的数据用来计算当前的评审过程指标;下一个时间段的数据用来计算评审后的软件缺陷.然后,基于度量
         评估体系对原始数据进行加工处理,计算得出各种指标,最后使用相关性分析方法研究评审过程度量指标与软
         件缺陷的关系.相关系数的绝对值越大,说明度量指标和软件缺陷数量越相关,度量指标越有效.
             具体来讲,本文从两个方面研究度量指标和软件缺陷的相关性.首先,计算当前时间段的代码评审度量指标
         和下一个时间段软件缺陷数量的关系,来研究当前的评审过程是影响下一个时间段的软件缺陷.比如:当前时间
         的评审时间更长,下一个时间段的软件缺陷是否更少.然后,计算上一个时间段的软件缺陷数量与当前时间段的
         评审过程度量指标的相关性,研究之前存在的软件缺陷是否会对当前的代码评审过程造成影响.比如:上一个时
         间段软件缺陷数量多的模块,是否会在当前代码评审的时间更长.


                  上一个时间段(6 个月)            当前时间段(6 个月)         下一个时间段(6 个月)

               计算上一个时间段模块的缺陷           计算当前时间段模块的缺陷          计算下一个时间段模块的缺陷

                                             Fig.2   Data partition
                                               图 2   数据划分

         4.1   研究过程
         4.1.1    项目选择
             根据 Github 上项目的关注人数和贡献请求数,本文选取 3 个热门项目:xbmc,roslyn,elasticsearch.xbmc
         (https://github.com/xbmc/xbmc)是一款优秀的免费开源媒体中心软件,可以播放几乎所有的音频和视频格式.
         roslyn(https://github.com/dotnet/roslyn) 是微 软开发 的一 个开源 的 .NET 编译器 , 支持 C# 和 Visual Basic.
         elasticsearch(https://github.com/elastic/elasticsearch)是一个基于 Lucene 的搜索服务器,提供了一个分布式的搜索
   34   35   36   37   38   39   40   41   42   43   44