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

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


                 测模型的不完备或不准确. (3) 无法适应版本变化. 软件系统的版本演化导致元素之间的交互模式随之变化, 版本
                 间交互关系的差异产生数据不足和概念漂移等新问题, 使得模型泛化能力变差甚至失效.
                    针对上述问题, 本文提出了一种综合考虑局部和全局交互特征的交互关系预测方法                            LGCGT, 融入了具有多头
                 注意力机制的动态归纳式学习模型            Graph Transformer, 并在软件包、类和函数这     3  种粒度上进行了版本内和跨版
                 本的实验验证. 在这项研究中, 本文将重点围绕以下两个问题进行探讨.
                    RQ1: 本文  LGCGT  方法是否能够提高软件系统中版本内多粒度交互关系预测能力?
                    原理: 了解软件系统内部元素之间的交互关系, 有助于理解软件系统的组织架构、快速定位缺陷和减少代码
                 冗余等作用, 从而提高代码的可读性和可维护性. 但是现有特征提取多是基于局部特征, 将全局位置编码和局部特
                 征相结合是否有利于提高多粒度交互关系预测能力还有待验证.
                    RQ2: 对于跨版本多粒度交互关系预测, LGCGT           方法是否优于已有方法?
                    原理: 软件工程领域中, 跨版本缺陷预测研究已被证明有效. 相比之下, 跨版本交互关系预测研究是否可行还
                 没有被探索过. 如果通过比较不同版本间的交互关系, 可以识别出系统变化的规律和模式, 这将有助于优化系统迁
                 移和兼容性, 增强版本管理和引导功能更新. 因此, 本文将测试                 LGCGT  方法是否在不同版本间具有良好的泛化性.

                 2   研究方法

                    本节详细介绍本文的研究方法, 整体架构见图               1. 主要包含   4  部分: 多粒度软件网络建模、局部和全部特征提
                 取、图神经网络表征优化和交互关系预测. 具体来说, 首先从项目源码中逆向抽取不同粒度元素的依赖关系, 分别
                 构建软件包、类和函数粒度网络模型. 其次, 使用               node2vec 嵌入网络节点的局部特征表示, 再同拉普拉斯全局位
                 置信息特征编码相融合, 得到节点高质量初始化属性. 然后, 将该属性输入两层                       Graph Transformer 模型, 每层模型
                 具有  8  头注意力机制, 进一步优化节点属性的特征向量. 最后, 实现交互关系预测的下游任务.

                   网络建模                                                 局部+全局特征融合

                                                                           ...
                                                                                         Node attribute  λ
                              关系抽取                                 节点                   x 11 x 12 x 13 ...  x1(d−1) x 1d
                                                                   采样
                    源文件                                                    ...  Embedding  x 21 x 22 x 23 ...  x2(d−1) x 2d  +
                                                                                            ...
                                                                                        x m1 x m2 x m3 ...  xm(d−1) x md
                                                                           ...

                   特征优化              ×L
                                    layers
                                                               ×H
                                       Add & Norm             heads                         Q  l , k
                       features vector
                                                                             Scaling  Product
                     f 11  f 12  f 13  ...  f 1(d−1) f 1d             Softmax j
                                         FFN  l  O  l  Concat  k
                     f 21  f 22  f 23  ...  f 2(d−1) f 2d  h  h  h                          K  l , k
                          ...
                     f m1 f m2  f m3  ...  f m(d−1) f md
                                       Add & Norm                                             l , k
                                                                Sum j   ·                   V
                  交互关系预测
                                   ±Link     +Label                       Classifier
                                  sampling             Predicted                        交互关系预测
                                                        dataset
                   图注:
                                               x m1 x m2 x m3 ...  x m(d−1) x md  λ  f 11 f 12  f 13  ...  f 1(d−1) f 1d
                       代码文件     包    类    方法  节点局部特征     全局位      优化特征      Graph   数据集    正负采样 分类器
                             (图中用颜色区分不同包下的内容)            置编码               Transformer
                                                   图 1 研究方法整体架构
   141   142   143   144   145   146   147   148   149   150   151