软件系统通常是为长期运行而设计的,旨在提供稳定可靠的服务。然而,这样的长期运行的软件常常会面临软件老化的挑战(Huang等人,1995年)。通常认为,软件复兴是一种有效的策略,可以减轻软件老化的不利影响(Huang等人,1995年;Dohi等人,2020年;Castelli等人,2001年;Trivedi和Vaidyanathan,2007年),但它无法从根本上消除导致软件老化的老化相关错误(ARBs)。ARBs预测通过在软件开发的早期阶段提取指标,并利用机器学习技术构建预测器,能够及早识别出容易出错的区域,从而帮助消除ARBs,从根本上解决问题(Chouhan和Rathore,2021年;Zhang等人,2024年;Tian等人,2025年;Qin等人,2018年;Wan等人,2019年;Jia等人,2023年)。自Cotroneo等人于2013年首次开展ARBs预测研究以来(Cotroneo等人,2013b),ARBs预测已成为一个日益重要的研究热点。
然而,进行传统的项目内部ARBs预测(即使用目标项目的训练数据构建预测模型)是一项困难的任务。首先,由于长期错误积累导致的老化相关故障,收集相关数据集非常具有挑战性(Cotroneo等人,2014年;Grottke等人,2010年;Grottke等人,2008年)。其次,ARBs在总错误中所占比例很小(Cotroneo等人,2013a;Grottke等人,2010年;Grottke等人,2008年),需要分析大量的错误才能获得足够的老化相关训练样本。第三,对于处于初始开发阶段或没有历史错误数据的项目来说,进行预测更加困难。为了解决这些问题,研究人员提出了跨项目ARBs预测方法,即在目标项目中使用来自不同但相关项目的训练数据来完成ARBs预测任务。
尽管如此,跨项目ARBs预测仍然面临两个主要挑战。一方面,源项目和目标项目之间的分布差异对假设训练集和测试集具有相同分布的机器学习分类器的适应性构成了威胁。另一方面,ARBs易发样本和ARBs免费样本之间的严重类别不平衡会对分类器的性能产生负面影响。为了克服这两个挑战,研究人员结合了迁移学习和类别不平衡缓解技术提出了多种方法,例如TLAP与迁移组件分析(TCA)和随机过采样(Qin等人,2015年;Qin等人,2018年)、SRLA与自动编码器和随机过采样(ROS)(Wan等人,2019年)、JDA-ISDA与联合分布适应(JDA)和改进的子类判别分析(ISDA)(Xu等人,2020年)、JPKS与联合概率域适应(JPDA)和k均值SMOTE(KS)(Li等人,2021年)、KDK与核主成分分析(KPCA)、双重边缘化去噪自动编码器(DMDA)和K均值聚类清洗集成(KCE)(Xie等人,2023年)、BISP与平衡分布适应(BDA)和自适应采样集成(SPE)(Xu等人,2025年)。
虽然现有的跨项目ARBs预测方法在预测性能上取得了显著提升,但它们都是独立处理样本中的输入指标的。也就是说,没有考虑指标之间的潜在相关性。例如,较高的CountLineCode指标值通常伴随着较高的SumCyclomatic值。这种忽视相关性的做法可能导致高度相关指标之间的信息重叠,以及低估或高估某些指标的重要性,从而可能对预测模型的性能产生负面影响(Jiarpakdee等人,2018年;Tashtoush等人,2014年;Mamun等人,2017年)。表1使用Spearman等级相关测试(Spearman,1961年)列出了ARBs预测数据集中52个指标(1326个指标对)之间的相关性。从表中可以看出,三个数据集中91.86%、90.57%和83.94%的指标对显示出显著相关性(|ρ|?>?0.3,p?.05),表明大多数指标并不是相互独立的。
此外,为了在模型训练期间缓解类别不平衡,以往的研究通常依赖于基本的采样策略,如随机过采样(Zhang等人,2024年)、SMOTE(Kumar和Sureka,2017年)、k均值SMOTE(Xie等人,2023年)、弱监督过采样(Zhou等人,2022年)和随机欠采样(Xu等人,2020年)来平衡ARBs易发样本和ARBs免费样本的数量。虽然这些技术有助于缓解类别不平衡,但它们可能不够充分,因为它们只能增加分类器对ARBs易发样本的关注。使用的标准交叉熵损失为同一类别的所有样本分配了相同的损失权重,而没有区分样本的难分类特性(Lin等人,2017年;Shrivastava等人,2016年;Wang等人,2019年)。结果,在同一类别中,大量容易分类的样本对总体损失贡献较大。由于ARBs预测中ARBs免费样本的数量较多,它们累积的损失往往主导了训练过程,从而抑制了对稀疏ARBs易发样本的学习。
在本文中,我们提出了ARFT-Transformer,这是一种基于FT-Transformer(Gorishniy等人,2021年)和焦点损失(Lin等人,2017年)的跨项目ARBs预测方法,考虑了指标相关性和样本分类难度。具体来说,ARFT-Transformer引入了基于FT-Transformer(Gorishniy等人,2021年)的指标级别多头注意力机制,动态捕捉指标之间的关系特征。每个指标都被转换为一个独特的表示向量,并使用最大均值差异(MMD)损失(Long等人,2015年)来对齐源数据和目标数据集之间的学习表示分布。为了应对模型训练期间类别不平衡的不利影响,同时使用ROS方法随机增加ARBs易发样本的数量,ARFT-Transformer设计了焦点损失函数(Lin等人,2017年)来处理难以分类的样本。
为了评估所提出方法的有效性,我们在ARB预测领域三个常见且广泛使用的数据集上进行了单源和多源实验,其中单源设置是指使用一个项目作为源项目来训练预测模型,多源设置是指结合多个项目作为源集来完成训练任务。我们将ARFT-Transformer在每种设置下的预测性能与几种最先进的方法进行了比较。此外,我们还设计了消融研究,以评估多头注意力(Vaswani等人,2017年)和焦点损失(Lin等人,2017年)作为ARFT-Transformer的两个关键组件的贡献。另外,我们还讨论了模型训练期间超参数选择的影响。
本文的贡献如下:
•我们提出了一种名为ARFT-Transformer的方法,这是一种通过多头注意力增强的神经网络框架,用于跨项目ARBs预测任务。据我们所知,这是第一个对ARB预测中的代码指标相关性进行建模的方法。
•我们引入了焦点损失(Focal Loss)和ROS,不仅更关注ARBs易发样本,还关注难以分类的样本,从而在模型训练期间缓解类别不平衡问题。
•我们在三个广泛使用的ARB预测项目中进行了单源和多源跨项目ARBs预测,以验证其有效性。结果表明,ARFT-Transformer在两种预测情况下都表现出良好的预测能力。
本文的其余部分组织如下。第2节介绍背景。第3节介绍所提出的模型,第4节描述实验设置,第5节报告实验结果,第6节讨论超参数选择对模型性能的影响,第7节探讨了论文有效性的威胁,第8节介绍相关工作。