当前位置: 首页 > 专利查询>重庆大学专利>正文

基于深度自编码网络的软件缺陷预测方法技术

技术编号:18783469 阅读:24 留言:0更新日期:2018-08-29 06:51
本发明专利技术涉及基于深度自编码网络的软件缺陷预测方法,包括如下步骤,S1通过版本控制工具收集待预测软件的源代码文件;S2所述S1得到的源代码文件由I个模块组成,从所述源代码文件中提取度量元值,所有度量元值构成一个集合X;S3对S2得到集合X进行预处理;S4通过采样的方式通过度量元值选取模块得到采样结果集;S5深度自编码网络构建预测模型;S6对待预测版本进行预测并输出预测结果。该方法简单有效,实验结果表明在数据维度较大,并且冗余特征较多的数据集中,效果非常明显。

【技术实现步骤摘要】
基于深度自编码网络的软件缺陷预测方法
本专利技术涉及软件安全领域,特别涉及一种基于深度自编码网络的软件缺陷预测方法。
技术介绍
软件缺陷是指计算机软件或程序中存在的某种破坏正常运行能力的问题、错误,或者隐藏的功能缺陷。软件缺陷产生主要是由软件本身的特点和开发过程决定的,如何控制软件缺陷对于生产高质量的软件是非常关键的。软件缺陷预测通过对软件或软件度量相关数据进行统计或数学分析,预测软件中缺陷的分布情况和可能的数量。缺陷预测技术通过找到有出错倾向的实体并给出相应的解决方案,可以帮助管理人员和开发人员重点关注容易出现缺陷的实体,降低了软件开发和维护的成本,提高了软件可靠性。近年来关于缺陷预测的研究主要关注在两个方面,其一是缺陷历史,其二是软件源代码本身。Nagappan等人通过研究发现如果一个实体在过去几个版本中很容易引进缺陷,那么这个实体在未来也很容易出现缺陷。他们将历史缺陷信息作为选择度量元的一个依据,然后用选择的度量元来进行缺陷组件的预测研究。软件度量元(软件特征)是影响软件缺陷预测精度的重要因素。在软件缺陷预测过程中,往往将不同数据源收集到的数据整合成数据集,数据不可避免地存在大本文档来自技高网...

【技术保护点】
1.基于深度自编码网络的软件缺陷预测方法,其特征在于:具体包括如下步骤:S1:通过版本控制工具收集待预测软件的源代码文件;S2:所述S1得到的源代码文件由I个模块组成,从所述源代码文件中提取度量元值,所有度量元值构成一个集合X,X={x1,1,x2,2,...xi,j,...xI,J}  (1);xij表示第j个度量元在第i个模块上的度量元值,I表示待预测软件中源代码文件的总数,J表示提取的度量元的总数;每个模块对应一个度量元向量,定义xi表示第i个模块的度量元向量,xi={xij|i=1,2,3...I,j=1,2,3...J};S3:对步骤S2得到集合X进行预处理,具体步骤如下:遍历集合X...

【技术特征摘要】
1.基于深度自编码网络的软件缺陷预测方法,其特征在于:具体包括如下步骤:S1:通过版本控制工具收集待预测软件的源代码文件;S2:所述S1得到的源代码文件由I个模块组成,从所述源代码文件中提取度量元值,所有度量元值构成一个集合X,X={x1,1,x2,2,...xi,j,...xI,J}(1);xij表示第j个度量元在第i个模块上的度量元值,I表示待预测软件中源代码文件的总数,J表示提取的度量元的总数;每个模块对应一个度量元向量,定义xi表示第i个模块的度量元向量,xi={xij|i=1,2,3...I,j=1,2,3...J};S3:对步骤S2得到集合X进行预处理,具体步骤如下:遍历集合X中的所有度量元值,查找度量元值为缺失状态的进行填充,具体步骤如下:1)令i=1;2)令j=1;3)判断xij是否有值:如没有,则使用第j个度量元在I个模块上的度量元值的平均值进行填充;如有,则令j=j+1,并执行下一步;4)如果j≤J,则返回3);否则令i=i+1,并执行下一步;5)如果i≤I,则返回2);否则执行下一步;6)输出新集合X′:X′={x′1,1,x′2,2,...x′i,j,...x′I,J}(2);x′i,j表示在新集合X′中第j个度量元在第i个模块上的度量元值;S4:采样;S4a:定义Mj为新集合X′中,第j个度量元在I个模块上度量元值的中位数;确定xij>Mj的数量,i=1,2,...I,j=1,2,...J;I)令i=1;II)令j=1;III)令Ki=0;IV)如果xij≥Mj,则Ki=Ki+1,并令j=j+1,执行下一步;否则,令j=j+1,并执行下一步;V)如果j≤J,则返回Ⅳ);否则令i=i+1,并执行下一步;VI)如果i≤I,则返回Ⅱ);否则执行下一步;VII)输出Ki;S4b:Ki值对应第i个模块,i=1,2…I,根据Ki值从大到小的顺序对Ki值对应的模块进行排序;S4c:选取所述步骤S4b排序后,处于前N位置的N个模块构成候选集,再从候选集中随机选取n个模块构成采样结果集,N>n;所述采样结果集X′n表示为:X′n={x′1,1,x′2,2,...x′u,j,...x′n,J}(3);x′u,j表示在采样结果集X′n中第j个度量元在第u个模块上的度量元值;S4d:使用Z-core法对S4c输出的采样结果集X′n中的所有度量元值进行标准化得到标准化后的采样结果集X″n,使的采样结果集X′n中的所有度量元值都分布在0~1之间;所述标准化后的采样结果集X″n记为:X″n={x″1,1,x″2,2,...x″u,j,...x″n,J}(4);x″u,j表示在标准化后的采样结果集X″n中第j个度量元在第u个模块上的度量元值;S5:深度自编码网络构建预测模型:S5a:设深度自编码网络网络层数为Q层,Q为自然数;S5b:令q=1,预设误差阈值D0;S5c:令u=1;预设权重矩阵Wq、偏置向量Bq和B′q的初始值,其中S5d:编码阶段:将x″u,j|j=1,2,...J的值带入如公式(5)所述的编码函数进行编码:其中,f(x)采用sigmoid函数,θ=1,2,3….mq,mq为自然数;S5e:解码阶段:通过解码函数对步骤S5d编码后的数据进行解码重构...

【专利技术属性】
技术研发人员:徐玲周末杨梦宁廖胜平葛永新洪明坚张小洪杨丹
申请(专利权)人:重庆大学
类型:发明
国别省市:重庆,50

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1