Page 160 - 《软件学报》2025年第5期
P. 160

2060                                                       软件学报  2025  年第  36  卷第  5  期


                 特性等, 或者未考虑到对不同深度学习模型或者参数的调优, 可能导致了模型选择不当或未充分挖掘模型的性能.

                 5.2   外部效度
                    外部效度指的是研究结果在其他情境或领域的适用性. 尽管本研究所选择的数据集涵盖了不同规模和应用范
                 围的项目, 这在一定程度上有助于展现出             LGCGT  方法的泛化性和适用性. 实验结果显示, 本文方法在特定项目和
                 场景下表现出显著效果, 为软件交互关系预测提供了有力支持. 然而, 考虑到开源语言和操作系统涵盖了众多不同
                 类型的软件系统, 因此, 本文方法可能在某些特定领域或类型的软件系统上表现不佳. 此外, 数据集的大小和领域
                 不同可能导致模型无法完全适应某些特殊情况, 从而影响预测结果的准确性和泛化能力.
                    本文在软件网络建模的前期没有使用带方向和权重的有向图, 有意减小模型的复杂度, 以减轻过拟合的风险.
                 此外, 在实验过程中将      dropout 参数设置为   0.1, 已在相关研究中得到验证, 选择这个数值能在保留节点信息的同时
                 引入足够的噪声, 以提高模型的鲁棒性            [33] . 而对于本研究中参数较多和存在过多的特征学习等因素, 使得模型在
                 训练集上过分拟合训练数据的特定特征, 导致出现在测试集上表现不佳的情况. 在未来的工作中预计将采取以下
                 几点措施来降低过拟合的风险: (1) 权重正则化. 在损失函数中添加权重正则项, 例如                       L1  或  L2  正则化, 以限制模
                 型的权重. (2) 数据增强. 对训练数据进行一些随机变换, 例如旋转、缩放、平移等, 以增加训练样本的多样性, 从
                 而减少过拟合的风险. (3) 模型简化. 考虑减少模型的复杂性, 可以通过减少层数、神经元数量等方式. 更简单的模
                 型通常更不容易过拟合. (4) 集成学习. 使用集成学习方法, 如              Bagging 或  Boosting, 可以降低单个模型  (如  node2vec
                 或  Graph Transformer) 产生过拟合的风险.
                    综上所述, 本文方法在一定程度上仍然存在外部效度威胁的可能性.

                 5.3   构造效度
                    构造效度涉及所使用的工具、测量或操作是否确实反映了所要测量的概念. 在本文中, 软件网络的构建和特
                 征提取可能会影响交互关系预测的准确性. 网络的构建方式不准确或特征提取方法不恰当, 可能会导致对软件系
                 统交互关系的不完整理解. 当前方法在解析软件后, 未充分考虑包、类和函数这                         3  种粒度间的联系, 使得信息片段
                 化和孤立化. 而更全面的网络建模方式, 应该将元素间的联系关系融合到一个综合的网络中, 更准确地表示不同粒
                 度元素之间的依赖关系, 并且考虑方向和权重的影响. 因此, 我们认为这种威胁是存在的.

                 5.4   可靠性
                    这项研究可以被复现, 原因有三: (1) 本研究使用            PROMISE  软件工程库中的数据集, 它已经被证明符合软件
                 工程领域的相关研究. (2) 本文的数据清洗、特征提取都是可以较容易实现的. (3) 本文的                       Graph Transformer 模型
                 已经开源, 并且已在诸多领域广泛使用. 因此, 本文的实验结果是可以很容易复现的.

                 6   结 论

                    本研究针对软件系统中交互关系预测问题, 通过构建软件网络模型并结合局部和全局特征, 加入                            Graph Transformer
                 模型进一步优化特征, 提出一种分析和预测多粒度软件系统交互关系预测任务的方法                             LGCGT. 研究在   3  个  Java
                 开源项目上进行了广泛的实验验证, 包括版本内和跨版本的交互关系预测任务, 与基准图神经网络模型的对比分
                 析, 验证了所提方法的有效性. 实验结果表明, 在版本内的预测任务中, 平均                      AUC  和  AP  值分别提升了   8.2%  和
                 8.5%; 而在跨版本预测任务中, 平均       AUC  和  AP  值分别提升了   3.5%  和  2.4%.
                    针对本研究的贡献点, 讨论了本研究在实际软件工程中的应用场景和实用价值. (1) 关于版本内和跨版本的研
                 究, 我们的方法在版本内和跨版本的交互关系预测任务中都取得了不错的效果. 在实际应用中, 这意味着开发者可
                 以更准确地预测不同版本之间的代码交互关系变化. 例如, 在进行版本迭代时, 开发者可以利用我们的方法提前识
                 别潜在的兼容性问题, 有针对性地进行修改和测试, 从而降低版本升级的风险和成本. (2) 针对多粒度的软件网络
                 模型构建, 我们考虑了包间、类间和函数间的关系, 为开发者提供了更全面的交互关系信息. 在实践中, 开发者可
                 以根据不同的粒度需求, 选择性地优化模块之间的依赖、代码库的可维护性, 或者定位和解决具体函数间的逻辑
                 错误. 这种多粒度的分析有助于更精确地指导软件开发和维护过程. (3) 实验结果表明我们的方法在                             AUC  和  AP  值
   155   156   157   158   159   160   161   162   163   164   165