基于信息熵的软件可靠性多模型动态预测方法

2016-11-24 06:08王二威吴祈宗
桂林理工大学学报 2016年3期
关键词:软件可靠性信息熵步长

王二威,瞿 英,吴祈宗,3

(1.北京理工大学珠海学院,广东  珠海 519088;2.河北科技大学经济管理学院,石家庄 050018;3.北京理工大学  管理与经济学院,北京 100081)

基于信息熵的软件可靠性多模型动态预测方法

王二威1,瞿 英2,吴祈宗1,3

(1.北京理工大学珠海学院,广东珠海 519088;2.河北科技大学经济管理学院,石家庄 050018;3.北京理工大学管理与经济学院,北京 100081)

针对经典软件可靠性预测模型中的不一致问题和“变点”问题,研究了一种基于信息熵的软件可靠性多模型动态预测方法,采用固定步长滑动窗口的动态赋权策略,运用信息熵对多个经典模型预测性能进行动态融合,实现了软件可靠性的综合预测。试验结果表明,在一定步长情况下,基于信息熵的软件可靠性多模型动态预测方法比单个经典模型有更好的预测性能。

软件可靠性预测;动态赋权;多模型综合;信息熵

0 引 言

软件日益成为影响社会生活、经济、军事、政治的重要因素:一方面,计算机软件的应用日益广泛,人们对计算机软件的依赖性日益增强;另一方面,软件的规模、复杂程度、关键程度日益提高,尤其体现在那些关系国计民生的大型工程以及高精尖工程中(如银行系统、医护检测系统、水利工程、核工程、航天工程等)。这就对软件的可靠性要求越来越高,因为一旦计算机软件发生故障,将会因产生连锁反应而带来灾难性的后果。在美国航天史上发生了很多次事故,事后调查,多数是由于软件问题造成的[1]。软件可靠性的研究开始于20世纪60年代“软件危机”出现之后,其量化评估和预测日渐成为研究者们关注的焦点。

软件可靠性的研究是伴随着“软件危机”的出现,于20世纪60年代兴起的,软件可靠性模型是软件可靠性研究中备受关注、成果最多、最活跃的一个领域[1]。软件可靠性建模的基本方法是:以软件的历史失效数据为依据,通过对其失效规律的拟合,进而预测软件的未来行为。

早期的研究者们多是采用概率统计的理论和方法,将软件失效过程看作一个随机过程,自第一个软件可靠性模型发表以来,公开发表的软件可靠性模型已达数百种之多(文中将基于随机过程的模型称为“经典模型”)。但经典模型存在两个非常明显的缺陷:一是采用经典模型对软件可靠性进行评估和预测时存在假设条件,这些假设条件是固定不变的,而且无从证明;二是经典模型仅仅考虑了输入的随机性,对于软件实际运行时存在的各种随机因素(如测试工具、测试人员、计算机环境等)未予考虑。实践证明:经典模型在软件可靠性评估和预测时存在不一致的问题,即对某一个软件有较高的预测准确性而对其他的软件则预测效果很差[2],此外预测精度也不够理想。

随着软件可靠性研究的深入,更多的研究者将新的理论和方法(如模糊理论[3]、神经网络、支持向量机[4]、遗传算法、灰色理论[5]、混沌理论[6-7]、未确知理论[8]等)应用于软件可靠性的建模和优化,产生了许多新的预测方法:Karunanith等最早将神经网络系统理论应用到软件的可靠性预测,取得了良好的效果[9-12];Khoshgoftaar等将神经网络理论运用到软件测试中以预测软件失效[13-14];Sitte在比较了传统的回归参数模型和基于神经网络的软件可靠性预测模型的预测性能后,发现基于神经网络的软件可靠性模型不仅更简单,而且具有更好的预测效果[15]。基于神经网络的软件可靠性模型可以对不同软件环境、不同失效数据、不同复杂情况有针对性地构建模型,但也存在3个缺陷:①网络权重解释难[8],神经网络的结构、采用的归一化方法、选择的激励函数等都会对模型预测性能产生较大的影响;②计算复杂性会随着神经元个数的增长而快速增长;③容易出现过度拟合。Cai等在大量对比实验的基础上指出:大多数情况下,神经网络方法很难得出满意的量化预测结果[16]。

Lyu等在进行了多轮次实验的基础上得出:通过综合多个经典模型进行的预测,较单个经典模型预测的效果更好,而且抗数据“噪声”能力强,不但对短期预测有效,长期预测效果更为明显[2,17]。多模型综合预测具有更高的预测精度,且稳健性好。之后的研究人员先后采用聚类方法[18-19]、贝叶斯方法[20]、神经网络[21-24]、时间序列[25-26]、组合评价[27-28]等用于软件可靠性多模型综合预测,取得了良好的效果。然而以上方法均是静态赋权,将多个经典模型的预测性能进行综合,缺乏动态考虑。Bev Littlewood通过研究发现了软件可靠性预测中“变点”的存在,即在一个失效数据集中从失效时刻1至失效时刻20大致可以用一个模型来描述,从失效时刻21至失效时刻60则可以用另一个模型来描述[29],因此不同的经典模型在不同的时期预测效果不一样,需要动态的赋权来综合经典模型的预测性能,以消除数据噪声、提高预测算法的稳定性和鲁棒性。

本文提出了一种基于信息熵的软件可靠性多模型动态预测方法,采用固定步长滑动窗口的策略,运用信息熵的方法动态地对各经典模型的预测结果进行信息融合,更准确地预测软件的可靠性。

1 综合预测问题的一般描述

软件可靠性多模型综合预测问题可描述为

针对该组合预测问题,首先确定参与预测的经典模型,然后确定各单个经典模型的权重,即可计算出多模型综合预测值。因此,如何计算各经典模型的权重是解决问题的关键。

2 单个经典模型权重的确定

2.1权重确定的方法

软件可靠性综合预测最关键的环节之一是各单个经典模型权重的计算,目前关于权重确定的方法可以归纳为静态赋权方法和动态赋权方法。Bev Littlewood的研究表明,不能期望用某一个模型来描述软件的失效过程,并提出了“变点”的思想。因此,对于软件可靠性综合预测,采用动态赋权法能够取得更理想的预测效果。本文采用固定步长滑动窗口的动态赋权方法。

2.2基于信息熵的权重计算

若用m个单一经典模型进行预测,对每个单一经典模型采用n个指标进行评价,得评价矩阵

式中:A为m个单一模型,n个指标的评价矩阵;aij为第i个经典模型的第j个指标的评价值。

对评价矩阵中所有元素进行归一化,得归一化评价矩阵

其中

则由信息熵定义知,第i个经典模型的信息熵为

其中:Si为第i个经典模型的信息熵;bij是第i个经典模型第j个指标的评价值在m个模型中所占的比重。

信息熵用来测度系统紊乱程度,因此经典模型在综合预测中的扰动程度可以用该模型的信息熵来衡量:信息熵越大,带来的扰动就越大,则该模型获得的综合预测权重应该越小。因此,第i个经典模型在综合预测中的权重为

3 基于信息熵的软件可靠性多模型动态预测

3.1一般步骤

基于信息熵的软件可靠性多模型动态预测是在Lyu提出的软件可靠性多模型综合预测思想的基础上,融入“变点”的思想,采用信息熵的方法动态地对经典模型的预测结果进行信息融合,其步骤如下:

Step1:选择经典模型;

Step2:确定固定步长h,令t=h;

Step3:选择模型预测效果的评价指标;

Step4:采用各单个经典模型,分别计算得出0~T时刻预测软件失效数序列(T是一个给定的较长时间,t为某个时刻,t包含于[0,T]);

Step5:根据各单个经典模型t-h+1到t时刻预测软件失效数和实际失效数,采用信息熵的方法计算预测t+1时刻软件失效数时各单个经典模型的权重wi,t+1;

Step6:利用Step5确定的权重对t+1时刻的软件失效数进行综合预测;

Step7:令t=t+1,返回Step5。

3.2模型预测效果评价指标

对软件可靠性模型预测效果进行评价最主要的是看模型的有效性,它可以用定量的方法来测量。本文采用的评价指标如下。

①平均绝对误差:模型预测的误差均值,只能针对同一数据进行比较。平均绝对误差越小,模型的预测效果越好。

②平均绝对误差百分比:平均绝对误差百分比越小,模型的预测效果越好。

③均方误差:模型预测值和实际值距离,均方误差值越小,模型的拟合度越高,预测性能越好。

④均方误差百分比:均方误差百分比越小,模型的拟合度越高,预测性能越好。

⑤Pearson相关系数:表示实际序列与预测序列曲线相似程度,其值在0~1,Pearson相关系数越大,模型的预测效果越好。

前4项评价指标属于损失性指标,第5项指标属于效益性指标,为了便于进行综合评价,将第5项指标变换为损失性指标R′。

3.3实例分析

试验数据:选取Lyu提供的数据包[30]中一软件失效数据作为实例进行预测分析,这组数据是在实际软件工程中获取的软件可靠性数据。

经典模型选择:选用 JM、GO、LV、YO 4个经典模型。它们都有很好的预测效果,并在工程中有广泛的应用。其中:JM是马尔科夫过程模型,GO和YO是非齐次泊松过程模型,LV是贝叶斯模型,GO、LV模型预测结果比较乐观,JM、YO模型预测结果有悲观也有乐观,4个模型的预测偏好正好可以相互抵消。

单个经典模型预测效果评价指标:采用3.2节确定的5项指标。

采用本文提出的预测方法,分别固定步长为3、4、5进行预测,其预测结果见表1,各模型预测性能评价见表2。

表1 软件失效预测数据Table 1 Predicted results of software failure data

从表1可以看出,该失效数据存在“变点”的问题,在第5~7个时刻,JM和LV模型预测相对误差较小,比较适用;从第8~12个时刻,LV和GO模型预测相对误差较小,比较适用;13个时刻点后没有特别合适的模型。

如表2、图1所示,基于信息熵的软件可靠性多模型动态预测方法,采用固定步长滑动窗口的策略,不断感知数据的变化,减小数据噪声,对各时刻各分模型的权重进行调整,使得整个测试过程中对失效数的预测更为准确,体现出了比单个经典模型更好的预测性能。然而随着固定步长h的增大,带来的数据噪声也越大,预测性能反而有所降低,因此需要确定合适的步长以提高预测效果。

表2 各模型预测性能评价Table 2 Estimated performance evaluation of models

图1 各模型预测性能比较Fig.1 Estimated performance comparison of models

综合以上实例分析可以得出:多模型综合预测方法融合了诸多经典模型的优势,能够提高预测算法的稳定性和鲁棒性,且具备更高的预测精度。

4 结束语

针对软件可靠性预测中的“变点”问题,本文采用固定步长滑动窗口的动态赋权策略,运用信息熵方法将多个经典模型的预测性能进行融合,提出了基于信息熵的软件可靠性多模型动态预测方法。试验分析表明,在步长合适的情况下,该方法预测性能显著地优于单个经典模型的预测性能。

[1]蔡开元.软件可靠性工程基础[M].北京:清华大学出版社,1995.

[2]Lyu M R,Nikora A.Applying reliability models more effectively[J].IEEE Software,1992,9(4):43-52.

[3]王二威,侯福均,郑述招.基于隶属度的软件可靠性综合预测方法[J].微型机与应用,2011,30(15):4-7.

[4]崔正斌,汤光明,乐峰.遗传优化支持向量机的软件可靠性预测模型[J].计算机工程与应用,2009,45(36):71 -74.

[5]靳昂,江建慧,楼俊刚,等.基于灰色模型的软件可靠性建模 [J].计算机应用,2009,29(3):690-694.

[6]邹丰忠,李传湘.软件可靠性混沌模型[J].计算机学报,2001,24(3):281-291.

[7]张柯,张德平,汪帅.软件可靠性混沌神经网络模型[J].计算机科学,2014,41(4):172-177.

[8]张永强,孙胜娟.基于未确知理论的软件可靠性建模[J].软件学报,2006,27(8):1681-1687.

[9]Karunanithi N,Malaiya Y K,Whitley D.Prediction of software reliability using neural networks[C]//1991 IEEE International Symposium on Software Reliability Engineering. IEEE,1991:124-130.

[10]Karunanithi N,Whitley D,Malaiya Y K.Prediction of software reliability using connectionist models[J].IEEE Transactions on Software Engineering,1992,18(7):563-574.

[11]Karunanithi N,Whitley D,Malaiya Y K.Using neural networks in reliability prediction[J].IEEE Software,1992,9(4):53-59.

[12]Karunanithi N,Whitley D.Prediction of software reliability using feedforward recurrent neural nets[C]//1992 International Joint Conference on Neural Networks.IEEE,1992:800-805.

[13]Khoshgoftaar T M,Pandya A S,More H B.A neural network approach for predicting software development faults[C]// Proceedings of the Third International Symposium on Software Reliability Engineering.IEEE,1992:83-89.

[14]Khoshgoftaar T M,Szabo R M.Using neural networks to predict software faults during testing[J].IEEE Trasactions on Reliability,1996,45(3):456-462.

[15]Sitte R.Comparison of software-reliability-growth predictions: Neural networks vs parametric-recalibration[J].IEEE Trasactions on Reliability,1999,48(3):285-291.

[16]Cai K Y,Cai L,Wang W D,et al.On the neural network approach in software reliability modeling[J].The Journal of Systems and Software,2001,58(1):47-62.

[17]Lyu M R,Nikora A.CASRE:A computer-aided software reliability estimation tool[C]//International Workhop on Computer-Aided Software Engineering Proceedings.IEEE,1992:264-275.

[18]马飒飒,陈自力,赵守伟.软件可靠性及可靠性多模型综合研究[J].微计算机信息,2006,22(18):263-265.

[19]缑艳阳.基于模型聚类的软件可靠性混合模型研究[J].甘肃联合大学学报:自然科学版,2013,27(5):89-92.

[20]邹丰忠,徐仁佐.软件可靠性多模型综合评估[J].同济大学学报,2002,30(10):1183-1185.

[21]Su Y S,Huang C Y,Chen Y S,et al.An artificial neuralnetwork-based approach to software reliability assessment[C]//TENCON 2005IEEE,Region 10Conference. IEEE,2005:1-6.

[22]Su Y S,Huang C Y.Neural-network-based approaches for software reliability estimation using dynamic weighted combinational models[J].The Journal of Systems and Software,2007,80(4):606-615.

[23]尹乾.基于神经网络的软件可靠性模型研究[D].北京:北京师范大学,2006.

[24]王高祖,李伟华,徐艳玲.基于神经网络组合模型的软件可靠性评估研究 [J].计算机仿真,2010,27(8):176 -180.

[25]滕云龙,师奕兵,康荣雷.软件可靠性组合预测模型研究[J].计算机应用,2008,28(12):3092-3094.

[26]李克文,刘洪太.基于时序数据的软件可靠性模型组合新方法[J].计算机应用,2014,34(S2):208-210,249.

[27]韩坤,吴纬,曹军海,等.基于组合模型的软件可靠性预计方法[J].系统工程与电子技术,2013,35(12):2661-2664.

[28]林琳,冯喆.空管自动化系统软件可靠性的模糊综合评价 [J].沈阳工业大学学报,2014,36(6):694-700.

[29]Phame H.Reliability Handbook[K].NewYork:Springer Verlag,2002.

[30]Lyu M R.Handbook of software reliability engineering/software reliability tools and data[BD/OL].(2013-11-26). http://www.cse.cuhk.edu.hk/~lyu/book/reliability/.

Multi-model dynamic prediction method of software reliability based on information entropy

WANG Er-wei1,QU Ying2,WU Qi-zong1,3
(1.Zhuhai Campus,Beijing Institute of Technology,Zhuhai 519088,China;2.Department of Economics and Management,Hebei University of Science and Technology,Shijiazhuang 050018,China;3.Department of Management and E-conomics,Beijing Institute of Technology,Beijing 100081,China)

Multi-model dynamic prediction method of software reliability based on information entropy was proposed to solve the inconsistency problem and“change points”of classical prediction models.Based on information entropy theory,using dynamic weighted strategy by fixed step sliding window,the combined prediction method of software reliability was obtained which enhanced the prediction results by fushing the prediction performances of classical models dynamically.Test results show that the multi-model dynamic prediction method of software reliability based on information entropy is better than classical ones under the right step condition.

prediction of software reliability;dynamic weight;combinational models;information entropy

TP311

A

1674-9057(2016)03-0603-06

10.3969/j.issn.1674-9057.2016.03.030

2015-06-30

国家自然科学基金项目(71301044)

王二威 (1985—),男,硕士,讲师,管理科学与工程专业,wodezazhi@126.com。

引文格式:王二威,瞿英,吴祈宗.基于信息熵的软件可靠性多模型动态预测方法[J].桂林理工大学学报,2016,36(3):603-608.

猜你喜欢
软件可靠性信息熵步长
基于信息熵可信度的测试点选择方法研究
基于Armijo搜索步长的BFGS与DFP拟牛顿法的比较研究
基于随机森林回归的智能手机用步长估计模型
基于Armijo搜索步长的几种共轭梯度法的分析对比
软件可靠性工程综合应用建模技术研究
一种基于信息熵的雷达动态自适应选择跟踪方法
软件可靠性设计技术应用研究
数控系统软件可靠性设计与故障分析技术
基于动态步长的无人机三维实时航迹规划
基于信息熵的循环谱分析方法及其在滚动轴承故障诊断中的应用