软件缺陷数据常常又被叫做Bug,即为计算机软件或程序在运行时,所出现的一些破坏其正常运行能力的问题、错误或是隐藏某种功能的缺陷等.缺陷的存在导致软件产品在某种程度上不能满足用户的需要,甚至阻碍了软件应用的正常运行[1-3].这就需要对缺陷数据进行及时提取,保证服务的正常运行,通过对缺陷数据进行提取,可以提高软件的可信度.科技的发展,在带来便利的同时,也对软件带来一定的破坏性.缺陷数据会降低软件可用的能力,使其优势不能得以发挥,甚至造成软件数据泄露.由于缺陷数据的不可避免,使得开发人员只能尽可能减少缺陷数据而无法彻底消除缺陷数据.对缺陷数据进行准确提取,是保证软件正常运行的关键技术[4].
国内外学者对于缺陷数据提取方面进行了研究,张延旭等[5]分析了关联规则与Apriori方法的基本思路,建立了基于关联规则的二次设备缺陷模型,在模型中考虑了二次设备缺陷的几个重要属性:二次设备的生产厂家、设备类型、设备缺陷的原因、发生缺陷的设备部位以及缺陷等级,以一组自动化设备缺陷数据为例,阐述了基于Apriori方法的二次设备缺陷数据提取方法,实现过程简单,然而提取准确度不高.李克文等[6]通过设置不同的隐藏层数、稀疏性约束和加噪方式,直接高效地从软件缺陷数据中提取出分类预测所需的各层次特征,该方法较传统特征提取方法具有更好的性能,但在数据提取过程中对特定缺陷数据提取性能受限,提取时间较长.针对上述问题,本文提出了基于多特征权重分配的软件缺陷数据自适应提取方法.
软件是依据一系列指定顺序的计算机数据和指令组成的,包括计算机程序及有关文档,是机器人系统理科、工业制造系统中必不可少的组件.在工业企业信息系统中,软件缺陷数据是在软件开发和维护的过程中出现的某种错误,或是程序在系统中运行时,违背了需要完成某种功能指令.通过软件缺陷数据自适应提取可以为用户提供缺陷数据采集与分析的服务.软件缺陷数据自适应提取模型如图1所示.
图1 软件缺陷数据自适应提取模型
Fig.1 Adaptive extraction model for software defect data
利用计划执行模块发布的命令进行缺陷数据检测时,需要对系统的环境进行评估,确定环境运行是否存在异常状态,当未出现异常状态时,进行计划执行模块;当出现异常状态时,需要对缺陷数据进行提取,并调整计划执行模块,重新计划执行模块.软件缺陷数据自适应提取是根据系统运行环境调整目标库,并自适应提取数据缺陷的方法.
目标库通过轮询得到内存映像中的数据,构造数据标签完成对数据的分析,同时为计划执行模块提供数据源.得到目标库中的缺陷数据后,自动完成数据保存、报表形成与报警等功能[7-9].
在整体软件数据中,假设n个数据点组成的数据集为X={X1,X2,…,Xi,…,Xn},将该数据集中的数据按照数据类型划分到k类,其中2≤k≤n,在数据集X中随机选择多个数据点作为k类软件样本数据的聚类中心,依据剩余软件样本数据点与多个聚类中心的距离进行相似度比较,并将其划分到最相似的类别中.通过计算各类均值得到不同的聚类中心,再重新分类各软件样本数据点,持续迭代此过程,使其形成各种聚类中心,当准则函数约束平方误差函数使其函数值最小时为止,准则函数可表示为
(1)
式中:Xi为软件数据对象;Cj为聚类中心的均值.在上述分析基础上,通过K均值[10]进行聚类处理,针对多个不同类型的软件数据节点,把不同节点的特征分配于初始聚类中心,进行迭代后获取多特征权重,其表达式为
(2)
式中:λ为聚类参数,为输入数据量;
为权重特征向量的K均值.依据上述权值及准则函数进行聚类处理,获取K均值聚类输出结果,即
(3)
式中:Si为量化融合输出系数;wc为聚类迭代误差.整体的聚类流程如图2所示.
图2 K均值聚类算法流程图
Fig.2 Flow chart of K-means clustering algorithm
按照多特征权重特征分布完成量化融合跟踪,输出的多特征权重类型可表示为
(4)
式中:xi为多特征权重特征状态量;yi为权重特征因子.
把多特征权重特征量输入BP神经网络分类器,完成多特征权重分配,BP神经网络计算公式为
(5)
式中:fx(x,t)、fθ(x,t)、gx(x,t)、gθ(x,t)分别为多特征权重类型、神经元数量、比例神经元数量、积分神经元数量;u(t)为权重分配函数;dx(t)和dθ(t)分别为不同比例和积分下的准则函数.在BP神经网络分类器输出端获取多特征权重分配结果.
软件结构多特征权重信号一般为非平稳宽带信号,通过时频分析法完成对多特征权重特征的分配,获取的多特征权重特征分配模型[11]可表示为
A=Fi(xi,wi)D(xi,q(xi))
(6)
式中:wi为多特征权重特征常数;Fi(*)和D(*)分别为时间域与频率域的联合分布信息;q(*)为频率强度.
对软件多特征权重特征进行分配,为多特征权重提取提供数据基础.
在多特征权重分配模型的基础上,对缺陷数据进行提取.首先构造缺陷数据信号模型,对信号进行检测[12].在实际应用中,通常处于干扰环境下,本文在干扰环境下完成对缺陷数据信号离散数据的解析处理,构造信息网络缺陷数据的多特征权重分配模型,其表达式为
p(t)=v(t)xi+l(t)
(7)
式中:p(t)为缺陷数据信号;v(t)为缺陷数据多特征权重分配模型的实部;l(t)为缺陷数据信号的固有模态函数.经模态分解多特征权重分配模型,将缺陷数据信号分配到不同窄带信号.
通过引用多特征权重分配模型,对软件缺陷数据进行提取.在对软件缺陷数据进行提取的过程中,用T表示多特征权重特征中含四元组的信任关系,数据分配属性为G={G1,G2,…,Gm},则软件缺陷数据提取公式为
(8)
式中:e-jks为软件缺陷数据的指数提取因子;r为权重特征信任误差系数.
根据软件缺陷数据提取结果,获取的软件缺陷信号特征模型为
(9)
式中,n(t)为相位信息.
对缺陷数据进行序列采样与时间更新,获取缺陷数据库非平稳宽带信号z(t)的频谱,通过时频分析实现瞬时频率估测,软件缺陷数据自适应提取函数为
Hi(t)=∑Qk(d(t),z(t))
(10)
式中,Qk为自适应提取因子.通过自适应提取函数实现软件缺陷数据的自适应提取.
为了验证本文提出的基于多特征权重分配的软件缺陷数据自适应提取方法的可行性,在Matlab上进行了实验,实验平台如图3所示.实验数据源于某自适应软件,在进行实验时,将不同缺陷数据应用于该平台,观察不同方法的提取效果.
图3 实验平台
Fig.3 Experimental platform
将本文方法应用于软件中,从软件中采集的数据集共40 GB,其中包含缺陷数据2 GB.对缺陷数据进行精准定位,才能对其进行有效提取,因此,本文对采集的缺陷数据定位准确性进行对比,定位准确度计算公式为
(11)
式中:Sz为检测数据总量;Sq为检测数据中包含的缺陷数据总量;Sj为检测到的缺陷数据总量.根据式(11)计算得出采集的缺陷数据定位准确度,具体结果如图4所示.
由图4可知,文献[5]的缺陷数据定位准确度约为75%,文献[6]的缺陷数据定位准确度约为65%,而本文所提基于多特征权重匹配的缺陷数据定位准确度约为95%,并且较为稳定.由实验结果可知,本文方法应用多权重特征分配模型,能够准确提取缺陷数据的特征权重,进而准确提取曲线数据,该结果充分证明本文方法的优势,具有较高的实用性.
图4 不同方法缺陷数据定位准确度对比
Fig.4 Comparison of defect data location accuracy among different methods
采用不同方法提取40 GB数据中的缺陷数据,并记录提取时间,得到本文方法、文献[5]方法与文献[6]方法提取相同缺陷数据所需的时间比较结果,如图5所示.
图5 三种方法提取时间比较结果
Fig.5 Comparison results for extraction time of three methods
分析图5可以看出,在缺陷数据逐渐增加的情况下,不同方法的提取时间也逐渐增加.文献[5]方法和文献[6]方法的提取时间分别为36.5 s与39 s;而本文方法的提取时间为17.5 s.本文方法采用K均值聚类算法,根据多特征权重特征分布完成量化融合跟踪,提升了缺陷数据提取准确率,同时也提高了提取速度.实验结果表明,本文方法和传统方法相比提取效率大大增加,验证了本文方法的高效性.
图6为不同方法的缺陷数据提取效果.
图6 不同方法的缺陷数据提取效果
Fig.6 Defect data extraction effect of different methods
由图6可以看出,待处理的原始缺陷数据分布较为分散,不同类型的缺陷数据相互混杂,经过不同方法处理后,提取的缺陷数据其聚类中心均较为集中,但文献[5]方法不能完全提取出不同类型的缺陷数据,类间仍混杂着不同类型的缺陷数据;文献[6]方法提取的不同类型的缺陷数据非均匀分布,类间不完整;本文方法提取到的数据效果最佳,可实现分类提取.这是由于本文方法针对多个不同类型软件数据节点的特征分配到初始聚类中心,进行迭代后获取多特征权重,从而使得到的不同类型的缺陷数据轮廓界限清晰,类间距离较小,该结果证明了本文方法比传统方法提取的缺陷数据分类效果更好.
本文提出了一种新的基于多特征权重分配的软件缺陷数据自适应提取方法.利用K均值进行聚类分析,将处理后的缺陷数据特征量输入BP神经网络分类器,完成软件缺陷数据多特征权重分配.建立缺陷数据信号模型,利用时频分析法完成对缺陷数据特征的提取,最终完成软件缺陷数据自适应提取.
实验结果表明,采用所提方法对软件缺陷数据进行自适应提取,有较好的抑制干扰能力,能够完成对缺陷数据的有效提取,说明所提方法准确性高,且所提方法和传统方法相比提取效率大大增加,验证了所提方法的高效性.
[1]熊婷,梅毅.软件运行过程缺陷风险多目标控制仿真 [J].计算机仿真,2018,35(6):313-316.
(XIONG Ting,MEI Yi.Multiobjective control simulation of software running process defect risk [J].Computer Simulation,2018,35(6):313-316.)
[2]李冉,周丽娟,王华.面向类不平衡数据集的软件缺陷预测模型 [J].计算机应用研究,2018,35(9):2806-2810.
(LI Ran,ZHOU Li-juan,WANG Hua.Software defect prediction model based on class imbalanced datasets [J].Application Research of Computers,2018,35(9):2806-2810.)
[3]蔡敏,牛斗.激光遥感信息数据低延时并行采集系统设计 [J].激光杂志,2018,39(12):74-77.
(CAI Min,NIU Dou.Design of low-latency parallel acquisition system for laser remote sensing information data [J].Laser Journal,2018,39(12):74-77.)
[4]周末,徐玲,杨梦宁,等.基于深度自编码网络的软件缺陷预测方法 [J].计算机工程与科学,2018,40(10):1796-1804.
(ZHOU Mo,XU Ling,YANG Meng-ning,et al.Software defect prediction based on deep autoencoder networks [J].Computer Engineering & Science,2018,40(10):1796-1804.)
[5]张延旭,胡春潮,黄曙,等.基于Apriori算法的二次设备缺陷数据挖掘与分析方法 [J].电力系统自动化,2017,41(19):147-151.
(ZHANG Yan-xu,HU Chun-chao,HUANG Shu,et al.Apriori algorithm based data mining and analysis method for secondary device defects [J].Automation of Electric Power Systems,2017,41(19):147-151.)
[6]李克文,邹晶杰.基于改进Adaboost软件缺陷数据特征选择方法 [J].计算机工程与设计,2017,38(11):3018-3022.
(LI Ke-wen,ZOU Jing-jie.Feature selection method based on improved Adaboost for software defect prediction data [J].Computer Engineering and Design,2017,38(11):3018-3022.)
[7]费贤举,李虹,田国忠.基于特征加权理论的数据聚类算法 [J].沈阳工业大学学报,2018,40(1):77-81.
(FEI Xian-ju,LI Hong,TIAN Guo-zhong.Data clustering algorithm based on feature weighting theory [J].Journal of Shenyang University of Technology,2018,40(1):77-81.)
[8]孙俊若,叶波,汪圣利,等.基于缺陷数据的雷达软件失效模式分析与应用 [J].现代雷达,2018,40(6):85-90.
(SUN Jun-ruo,YE Bo,WANG Sheng-li,et al.Analysis and application of radar software FMEA based on defect data [J].Modern Radar,2018,40(6):85-90.)
[9]Barabino B,di Francesco M,Mozzoni S.An offline framework for the diagnosis of time reliability by automatic vehicle location data [J].IEEE Transactions on Intelligent Transportation Systems,2017,18(3):583-594.
[10]朱朝阳,陈相舟,闫龙,等.基于主成分分析法的人工免疫识别软件缺陷预测模型研究 [J].计算机科学,2017,44(增刊1):483-485.
(ZHU Chao-yang,CHEN Xiang-zhou,YAN Long,et al.Research on software defect prediction based on AIRS using PCA [J].Computer Science,2017,44(Sup 1):483-485.)
[11]李阵,钮俊,王奎,等.基于多特征权重分配的源代码搜索优化 [J].计算机应用,2018,38(3):812-817.
(LI Zhen,NIU Jun,WANG Kui,et al.Optimization of source code search based on multi-feature weight assignment [J].Journal of Computer Applications,2018,38(3):812-817.)
[12]邓韬,林建辉,黄晨光,等.基于改进EEMD样本熵的高速列车滚子缺陷AE信号提取 [J].振动与冲击,2017,36(16):148-154.
(DENG Tao,LIN Jian-hui,HUANG Chen-guang,et al.AE signal extraction of a high speed train roller based on modified EEMD and segment sample entropy [J].Journal of Vibration and Shock,2017,36(16):148-154.)