Page 236 - 《软件学报》2026年第7期
P. 236

刘子扬 等: 基于个性化联邦学习的跨项目软件缺陷预测方法                                                    2921


                                                    表 1    实验数据集  (续)

                         分组                项目              样本数量            度量数量             缺陷率 (%)
                                           ant-1.3           125                               16
                                          camel-1.6          965                              19.48
                                           ivy-2.0           352                              11.36
                                          jedit-4.1          312                              25.32
                                          log4j-1.2          205                              92.2
                             [54]
                      PROMISE                                                 20
                                           poi-2.0           314                              11.78
                                           prop-6            660                               10
                                         synapse-1.2         269                              31.97
                                           tomcat            858                              8.97
                                          Xalan-2.4          723                              15.21
                                          Software1         1 247                             18.2
                      EnterpriseSDP       Software2         2 063             35              24.7
                                          Software3          856                              13.1

                    为补充工业界实际应用场景的验证, 本文还收集了来自北京某科技公司的企业级软件缺陷数据集                               EnterpriseSDP.
                 该数据集包含     3 个由同一开发工作室开发的企业管理系统软件项目, 分别命名为                   Software1、Software2 和  Software3.
                 这  3  个软件项目均采用    Java 语言开发, 面向企业内部管理和业务流程自动化, 涵盖了人力资源管理、财务管理和
                 项目管理等核心业务模块. 每个项目数据集包含               35  个代码复杂度指标, 涵盖了传统的          Halstead  度量、McCabe 循
                 环复杂度、面向对象设计度量等维度. 与开源数据集相比, 企业数据集具有更严格的代码规范和更完整的测试覆
                 盖, 为验证本文方法在工业环境中的实际效果提供了重要的实证基础.
                  4.2   评价指标
                    在跨项目软件缺陷预测的联邦学习框架中, 由于不同项目的缺陷分布存在显著差异, 且通常呈现类别不平衡
                 特征 (缺陷样本通常远少于非缺陷样本), 传统的单一准确率指标难以全面反映模型的预测性能. 因此, 本文采用多
                 维度评估体系来综合评估联邦学习模型在跨项目软件缺陷预测任务中的性能表现.
                    具体而言, 选择以下      8  个评估指标的原因如下: (1) AUC (area under curve) 作为主要评估指标, 其不受类别分
                 布影响的特性使其特别适用于评估跨项目场景下的模型泛化能力; (2) Precision、Recall 和                   F1-score 构成经典的
                 信息检索评估三角, 分别从查准率、查全率和综合性能角度评估模型对缺陷的识别能力; (3) Specificity 补充评估
                 模型对非缺陷代码的正确识别能力, 与            Recall 共同反映模型的全面性能; (4) G-mean (几何均值) 和        Balance (平衡
                 准确率) 专门针对不平衡数据集设计, 能够平衡考虑正负样本的分类性能; (5) Accuracy 作为基础指标提供整体分
                 类性能的参考基准. 这种多指标评估体系能够从不同维度全面、客观地评估联邦学习模型在跨项目软件缺陷预测
                 任务中的有效性.
                    设真正例为     TP (true positive), 真负例为  TN (true negative), 假正例为  FP (false positive), 假负例为  FN (false
                 negative). 各评估指标的计算公式如下.
                    (1) AUC (曲线下面积)

                                                         ∫  1
                                                    AUC =   TPR d (FPR)                              (15)
                                                          0
                             TP           FP
                 其中,  TPR =      ,  FPR =     .
                           TP+FN        FP+TN
                    (2) Accuracy (准确率)

                                                              TP+TN
                                                 Accuracy =                                          (16)
                                                          TP+TN +FP+FN
                    (3) Precision (精确率)

                                                                TP
                                                     Precision =                                     (17)
                                                              TP+FP
   231   232   233   234   235   236   237   238   239   240   241