DeepDefectNet:基于SMOTE与mRMR的软件缺陷估计

《Array》:DeepDefectNet: Estimating software defects with SMOTE and mRMR

【字体: 大 中 小 】 时间:2026年07月01日 来源:Array 5.3

编辑推荐:

  软件缺陷估计对于提升软件质量与降低开发成本至关重要。本研究提出了一种基于深度学习的框架,通过联合特征选择与数据平衡来改进跨软件系统的缺陷预测。与以往将这些技术分开运行的方法不同,所提出的技术集成了"最小冗余最大相关(Minimum Redundancy Max

  
软件缺陷估计对于提升软件质量与降低开发成本至关重要。本研究提出了一种基于深度学习的框架,通过联合特征选择与数据平衡来改进跨软件系统的缺陷预测。与以往将这些技术分开运行的方法不同,所提出的技术集成了"最小冗余最大相关(Minimum Redundancy Maximum Relevance, mRMR)"以提取相关特征,以及"合成少数过采样技术(Synthetic Minority Over-sampling Technique, SMOTE)"来缓解类别不平衡(缺陷与非缺陷比例高达约1:10)。一种名为"深度神经网络(Deep Neural Network, DNN)"的预测模型被用于建模软件度量中的复杂非线性关系。该框架在来自NASA PROMISE代码库的十个基准数据集上进行了测试,这些数据集包含安全关键型和多样化的软件系统,显示出良好的泛化性能和预测表现。模型的实验结果令人鼓舞,在多个数据集上获得了超过90%的准确率,其中在MC1数据集上最高准确率达到96.2%。研究人员进一步使用多种性能指标对模型进行了评估,包括精确率(Precision)、召回率(Recall)、F1分数(F1-score)和AUC,以确保预测稳健可靠。对比分析确认了该模型相较于现有方法的预测性能提升。研究表明,将特征选择、不平衡处理和深度学习相结合,能够为软件缺陷估计提供一种有效且实用的解决方案。
该研究聚焦于软件缺陷预测领域,旨在解决软件系统规模与复杂性日益增长背景下,如何有效识别开发过程中引入的缺陷或故障这一关键问题。安全关键型系统(如医疗、航空、金融等领域)中的严重故障可能导致灾难性后果,因此早期识别这些缺陷对于避免故障、降低维护成本、缩短开发时间和提升用户满意度具有重要意义。传统的软件缺陷估计方法包括静态代码分析、人工代码审查和单元测试等,这些方法虽然有效但劳动密集、耗时且高度依赖人工经验,难以适应大规模代码库或 subtle 且具有上下文特异性的缺陷检测需求。随着软件快速迭代,研究人员转向基于人工智能和数据驱动的方法,其中机器学习(Machine Learning, ML)与深度学习(Deep Learning, DL)已成为软件缺陷估计的有效手段。

然而,现有研究仍存在若干关键问题:一是特征选择与类不平衡处理通常被分开处理,缺乏协同整合;二是基于深度学习的模型往往缺乏可解释性,形成"黑箱"模型;三是在多样化数据集上的验证不足,跨数据集泛化能力受限。此外,现有方法或牺牲计算效率追求预测精度,或采用图神经网络(Graph Neural Network, GNN)、基于Transformer的模型等复杂架构导致计算开销过高,难以在实际场景中部署。具体而言,特征冗余可能降低模型有效性,类不平衡会使预测偏向非缺陷模块,而软件度量之间复杂的非线性关系又难以被传统方法捕捉。研究团队据此提出将mRMR、SMOTE和DNN整合为统一缺陷预测流水线的方法,以同时解决上述挑战。论文发表于《Array》期刊。

研究所采用的主要关键技术方法包括以下三个方面:首先,采用mRMR算法进行特征选择,该算法基于互信息(mutual information)最大化特征与目标变量之间的相关性,同时最小化特征之间的冗余,从而保留高信息量且非冗余的软件度量;其次,应用SMOTE技术处理类不平衡问题,通过在特征空间中对少数类样本及其k近邻进行线性插值生成合成样本,而非简单复制现有样本;最后,构建深度前馈神经网络作为分类器,该网络包含两个隐藏层(分别为64和32个神经元),使用ReLU激活函数,输出层采用Sigmoid激活函数输出缺陷概率,优化器选用Adam,损失函数为二元交叉熵,并采用L2正则化和Dropout技术防止过拟合。样本队列来源于NASA PROMISE公开代码库的十个基准数据集,包括JM1、KC1、KC3、MC1、MW1以及PC1至PC5,涵盖C、C++、Java等多种编程语言的安全关键型软件系统。

研究结果部分按照以下小标题展开。

特征选择结果。通过mRMR算法进行特征选择后,研究人员发现与代码复杂度和规模相关的度量被一致优先选择。其中,圈复杂度(CYCLOMATIC_COMPLEXITY)、可执行行数(LOC_EXECUTABLE)和Halstead工作量(HALSTEAD_EFFORT)等多个数据集上频繁被选中的特征,表明其对缺陷预测具有重要影响。mRMR的模型无关性使其能够在流水线早期应用,既保证性能又提升可解释性。

类不平衡处理结果。应用SMOTE后,少数类在特征空间中的稀疏区域得到填充,使模型能够学习更通用、更具判别性的类别边界。研究实现了缺陷与非缺陷模块的平衡分布,使分类器能够识别两类数据中的有意义的模式,显著提升了少数类检测能力,稳定了学习过程并减少了算法偏置。

深度神经网络架构结果。所构建的DNN能够有效处理固定长度的输入特征向量,保留软件度量数据的表格格式,同时捕捉特征间的浅层和深层交互。结合mRMR和SMOTE的协同作用,模型泛化能力得到提升,噪声降低,收敛加速。

性能评估结果。在十组NASA PROMISE数据集上的实验表明,模型在多数数据集上准确率超过90%,其中MC1数据集达到最高准确率96.2%。此外,精确率、召回率、F1分数和AUC等指标均表现出均衡性能:平均准确率为92.05%,平均精确率0.913,平均召回率0.904,平均F1分数0.899,平均AUC为0.932。假阴性率(False Negative Rate, FNR)在各数据集中均保持较低水平,最低为MC1的0.05,最高为JM1的0.13。

对比分析结果。与现有方法的比较显示,该模型在多数数据集上实现了更高准确率。与近期IMDAC模型(结合InfoGAN数据增强、多阶段进化算法特征选择和DAE-CNN预测器)相比,所提出框架以相对简单的架构和较低的计算成本,获得了更优的平均F1分数(0.8990 vs. 0.4744)和AUC(0.9320 vs. 0.8176)。

讨论部分,研究人员总结了研究结论。该论文提出了一种综合性的深度学习框架用于软件缺陷预测,集成了基于mRMR的特征选择、SMOTE类平衡处理和DNN分类器。该框架专门设计用于解决该领域的关键挑战:缓解特征冗余、解决类不平衡问题,并利用高容量模型捕捉软件度量中固有的复杂非线性关系。在NASA PROMISE代码库十组基准数据集上进行的实验结果表明,所提出的框架在不同软件系统中达到了良好且一致的性能。除准确率外,提升的精确率、召回率、F1分数和A="">
研究结论指出,mRMR与SMOTE的整合对于高精度缺陷预测至关重要。通过去除冗余特征,mRMR为SMOTE平衡数据集优化了环境,从而导致假阴性 linebacker="/" />减少。与现有基准相比,该框架提供了一种精简而有效的方法,在不增加模型开销的情况下实现了更优的泛化能力。从实践角度看,该模型在标准计算环境中可在合理时间内完成训练(每数据集约3-8分钟,总计不超过1小时),适用于对准确率和效率均有要求的实际软件质量保证场景。

同时,研究人员也指出了研究的局限性:该研究依赖于公开的NASA PROMISE数据集,这些数据集主要代表任务关键型和安全敏感型软件系统,因此在将研究结果推广到非安全关键型领域(如商业、基于Web或移动软件应用)时需谨慎,这些领域可能表现出不同的缺陷特征和开发实践。未来研究将聚焦于整合可解释人工智能(Explainable AI, XAI)以增强模型透明度和可信度,并探索图神经网络或Transformer等先进架构范式,通过捕捉软件度量中更复杂的结构依赖关系来进一步提升性能。总体而言,所提出的方法表明,以结构化方式结合特征选择、数据平衡和深度学习,能够为软件缺陷估计提供一种有效且实用的解决方案。
相关新闻
生物通微信公众号
微信
新浪微博

热点排行

    今日动态 | 人才市场 | 新技术专栏 | 中国科学人 | 云展台 | BioHot | 云讲堂直播 | 会展中心 | 特价专栏 | 技术快讯 | 免费试用

    版权所有 生物通

    Copyright© eBiotrade.com, All Rights Reserved

    联系信箱:

    粤ICP备09063491号