Page 30 - 《软件学报》2025年第5期
P. 30
1930 软件学报 2025 年第 36 卷第 5 期
轴右侧表示 F2 值分布, 柱状图中下半的部分表示 6 个开源项目上的模型效果分布, 上半部分表示 10 个企业项目
上的 F2 值分布. 不难发现, Baseline(RF) 模型在企业项目上相比于开源项目效果呈现显著下降, 平均 F2 值约只有
30% 左右, 后者的平均 F2 分值则接近 80%. 为进一步分析基于学习式的模型在企业项目可追踪性问题上表现不
佳的潜在原因, 下面总结分析了以下关键挑战.
P10
P9
P8
P7
P6
P5
P4
P3
P2
P1
Pig
Maven
Infinispan
Groovy
Droools
Derby
−250 −230 −210 −190 −170 −150 −130 −110 −90 −70 −50 −30 −10 10 30 50 70 90
不平衡性 (“假”链接/“真”链接) F2 得分
图 5 Baseline(RF) 模型在开源及企业项目上的 F2 分数差异
● 挑战 2. 样本数据不平衡
首先是每个项目中样本不平衡率. 图 5 中横轴左侧表示每个项目样本不平衡性, 统计了每个项目中多类样本
(“假”链接) 和少类样本 (“真”链接) 的比例, 其计算公式如公式 (1) 所示:
N(“假”链接)
ImbalanceRatio = (1)
N(“真”链接)
从表 1 中可以看到, 10 个企业项目数据集不平衡率平均高于 140. 导致企业项目样本不平衡比例高的最直观
的原因在于, 有链接的缺陷和有链接的 commit 比例普遍较低, 平均来看分别只有 36.72% 和 13.26%. 具体而言, 数
据不平衡性由于工业软件项目紧张的研发过程而变得愈加严重. 一方面, 企业项目以业务为导向, 研发周期紧凑,
编码频率密集. 如表 1 所示, 企业项目的源制品和目标制品规模比例存在较大的悬殊, 即大多数企业项目虽然有
N ×100 量级的缺陷, 但 commit 记录则达到数千甚至数万的量级. 这是因为与开源软件项目处于维护期不同, 企业
项目尚处于初期, 项目迭代较为频繁, 产生的软件制品规模较多, 尤其是一些大规模项目 commit 累积量激增, 这无
疑加剧了样本数据集不平衡性的严重程度. 其次, 软件可追踪性天然地假设缺陷会被一次或多次 commit 修复. 而
在企业项目中, commit 提交频率较高, 缺陷生命周期较长 (只有缺陷得到回归测试后才允许关闭), 因此更多的
commit 会被选择与缺陷生成候选跟踪对样本, 这将导致生成的样本链接标记中, 被标记为“真”的链接数量和被标
记为“假”的链接数量存在极大的悬殊.
● 挑战 3. 样本数据稀疏性
从表 1 中不难发现, 由于有链接的制品占比较低, 在企业项目中尤为明显, 这导致总体样本中存在大量的无标
签样本. 这无疑使得用于训练的可学习的样本量是稀疏的. 此外, 值得注意的是, Baseline(RF) 中提取的特征集在企
业项目数据集上呈现了较为严重的特征空间稀疏性问题, 直接影响了采样数据集中可学习样本的信息量. 图 6 中
对比了两类数据集特征矩阵中每列特征的稀疏程度, 其中横轴中 a1–a18 为 Baseline(RF) 中定义的 18 个特征, 纵
轴为特征稀疏比例, 计算公式如公式 (2) 所示:
(
N ai列空值样本数 )
FeatureSparsity(ai) = ( ) (2)
N ai全部样本数