Page 169 - 《软件学报》2025年第10期
P. 169

4566                                                      软件学报  2025  年第  36  卷第  10  期


                  2   数据集构建

                  2.1   数据集
                    本文使用的     17  个移动  APP  项目均来自  GitHub, 其中  12  个项目来自先前的研究     [17] , 其余来自  GitHub  中知名
                 度较高、规模较大的移动项目. 表           2  给出了每个移动    APP  的项目信息、起止日期、变更数量和使用               RA-SZZ  算
                 法标注的缺陷比例. 以上       17  个项目完整开发周期的历史数据全部基于             Git 版本控制系统.

                                                  表 2 移动   APP  数据集概要

                        项目                项目描述               起止日期          变更数量       缺陷比例 (RA-SZZ) (%)
                       Afwall           安卓系统防火墙            2012/12–2022/7   1 815            35
                       Alfresco          企业内容管理             2012/8–2022/4   1 528            11
                     Android sync         同步适配器            2011/10–2015/7   3 220            43
                    Android walpaper      壁纸引擎              2014/4–2021/1    796             38
                    AnySoftKeyboard    安卓系统键盘APP            2009/5–2022/8   7 088            18
                      Atmosphere       网络事件驱动框架             2010/4–2022/5   6 074            34
                   Chat secure Android   加密通讯APP            2010/3–2018/1   2 910            30
                    Facebook Android      社交APP             2010/5–2022/8   2 718            16
                        Kiwix         离线维基百科阅读器             2012/2–2022/8   6 312            14
                      Own cloud       文件存储及共享APP            2011/8–2022/8   10 261           16
                      Page turner      多设备同步阅读器            2011/12–2021/10  1 265            18
                      Notify reddit    手表Reddit消息提醒         2014/7–2016/6    232             26
                     Conversations       即时通讯APP            2014/1–2022/8   6 879            25
                      AntennaPod        播客播放器APP           2011/12–2022/8   8 222            22
                      AndroidAPS     糖尿病患者血糖监测APP           2016/6–2022/8   14 053           13
                         k-9            电子邮件客户端            2008/10–2023/5   12 062           16
                      SeriesGuide    影视作品跟踪及管理APP           2011/7–2023/3   12 289           14

                  2.2   软件度量元的提取
                    本节对数据集中的变更度量元进行详细介绍. 本文使用                  Kamei 等人  [9] 提出的  14  个变更度量元, 这些度量元已
                 经被证明在即时缺陷预测模型上表现较好. 表              3  对  14  个度量元进行了描述, 将其分为      5  个维度, 分别为代码分布、
                 规模、目的、历史和开发者经验.

                                                    表 3 软件度量元概要

                       维度           度量元                                  描述
                                      ns                   变更修改的子系统数量 (number of subsystems)
                                      nd                    变更修改的目录数量 (number of directories)
                     代码分布
                                      nf                      变更修改的文件数量 (number of files)
                                    entropy                变更修改的代码在相关文件中的分布 (信息熵)
                                      la                    变更增加的代码行数 (lines of code added)
                       规模             ld                    变更删除的代码行数 (lines of code deleted)
                                      lt             变更之前的代码行数 (lines of code of files touched by the change)
                       目的             fix                          变更是否修复了缺陷
                                     ndev          对该变更相关的文件进行过修改的开发者数量 (number of developers)
                       历史            age              该变更相关文件的最近一次修改与该变更的平均时间间隔
                                     nuc           对该变更相关文件进行过修改的变更数量 (number of unique changes)
                                     exp                      开发者已提交变更数量 (experience)
                    开发者经验            rexp                  开发者近期提交变更数量 (recent experience)
                                     sexp       开发者已提交变更中影响到该变更相关子系统的数量 (subsystem experience)
   164   165   166   167   168   169   170   171   172   173   174