Page 199 - 《软件学报》2026年第5期
P. 199
2078 软件学报 2026 年第 37 卷第 5 期
为了更清晰地对比 CDAG 与 iFit 的性能, 我们进一步计算了 CDAG 相比 iFit 的 Win/Tie/Loss 值 (基于
Friedman 检验的结果计算), 结果如表 4 所示. 在表 4 中, Win 值表示 CDAG 优于 iFit 的次数, Tie 值表示两个方法
Recall 值一样的次数, Loss 值表示 CDAG 差于 iFit 的次数, DWM/OWM/EWM 代表 CCN 使用不同的方式为不同
类型的耦合赋权. 从表 4 可知, 在 DWM 赋权方式下, CDAG 在 20 个阈值处优于 iFit 方法, 在 3 个阈值处与 iFit 性
能一样, 在 2 个阈值处劣于 iFit 方法; 在 OWM 赋权方式下, CDAG 在 14 个阈值处优于 iFit 方法, 在 3 个阈值处
与 iFit 性能一样, 在 8 个阈值处劣于 iFit 方法; 在 EWM 赋权方式下, CDAG 在 13 个阈值处优于 iFit 方法, 在 1 个
阈值处与 iFit 性能一样, 在 11 个阈值处劣于 iFit 方法. 因此, 从整体而言, CDAG 在 47 个阈值处优于 iFit 方法, 在
7 个阈值处与 iFit 性能一样, 在 21 个阈值处劣于 iFit 方法; 换言之, CDAG 在 54/75 个阈值处不差于 iFit.
12 12 12
11 11 11
10
9 10 10
9 9
8
Rank 7 6 Rank 8 7 Rank 8 7
5 6 6
4
5 5
3
2 4 4
1 3 3
0 2 2
0 5 10 15 20 25 0 5 10 15 20 25 0 5 10 15 20 25
top-k top-k top-k
(a) DWM (b) OWM (c) EWM
a-index PageRankBR PageRank ICOOK h-index k-core
PageRankIVOL ElementRank Pride MinClass iFit CDAG
图 13 12 种方法在不同赋权方式下的平均排名 (Rank@top-k)
表 4 CDAG 相比 iFit 的 Win/Tie/Loss 值
指标 DWM OWM EWM 合计
Win 20 14 13 47
Tie 3 3 1 7
Loss 2 8 11 21
根据 Friedman 检验的结果和 Win/Tie/Loss 值, 我们可以得出结论: 在检查不超过 top-25 的节点时, CDAG 从
整体而言显著优于其他方法.
RQ3: 动态分析对于关键类识别是否均有效?
如第 1.3 节所述, 本文使用动态分析对基于 CCN 和 GEN 识别的候选关键类 (初步排序结果) 进行优化. 在此
部分, 我们将检验该优化操作是否有效. 为此, 我们将 CDAG 中的“排序结果优化”步骤去掉, 构建了一种新的关键
类识别方法 CG (identifying key classes using gravitational formula), 并通过对比 CDAG 和 CG 在同一个系统、同一
个阈值处的 Recall 值来检验“优化”操作的效果. 与上文类似, 我们分别检验了阈值不超过 15% (前 15%) 和阈值不
超过 25 (top-25) 两种情况下的结果 (结果如图 14 和图 15 所示).
1.0 1.0 1.0
0.8 0.8 0.8
Recall 0.6 Recall 0.6 Recall 0.6
0.4 0.4 0.4
0.2 0.2 0.2
0 0 0
0 2 4 6 8 10 12 14 16 0 2 4 6 8 10 12 14 16 0 2 4 6 8 10 12 14 16
k (%) k (%) k (%)
(a) DWM (b) OWM (c) EWM
CG (argoUML) CDAG (argoUML) CG (jEdit) CDAG (jEdit) CG (jHotDraw) CDAG (jHotDraw) CG (jMeter) CDAG (jMeter)
CG (Mars) CDAG (Mars) CG (Maze) CDAG (Maze) CG (PDFBox) CDAG (PDFBox) CG (wro4j) CDAG (wro4j)
图 14 CDAG vs. CG (Recall@top-k, k 为百分比形式)

