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)

