论文部分内容阅读
摘 要:随着人们对高可靠和高质量软件需求的日益增长,这种需求迫使软件开发人员不断提高软件的可靠性。本文提出了一种基于自回归模型的软件可靠性预测方法,并利用最小二乘估计方法对模型中的参数进行估计。使用开源软件Firefox的真实故障数据,利用SPSS软件对可靠性模型进行验证分析,实验结果表明本文提出的模型是有效的。
关键词:自回归模型;软件可靠性;最小二乘估计;SPSS
中图分类号:TP183 文献标识码:A 文章编号:1003-5168(2021)24-0023-04
Research on Software Reliability Prediction Method Based on Autoregressive Model
CHEN Jing
(College of Information Engineering, Guizhou University of Traditional Chinese Medicine, Guiyang Guizhou 550025)
Abstract: With the increasing demand for the people’s pursuit of the high reliability and high-quality software, this demand forces software developers to continuously improve the reliability of software. This paper put forwards a software reliability prediction method based on an autoregressive model, and uses the least square estimation method to estimate the parameters in the model. The real failure data of the open source software Firefox and SPSS software were used to verify and analyze the reliability model,and the experimental results show that the model proposed in this paper is effective.
Keywords: autoregressive model;software reliability; least square estimation; SPSS
對系统软件故障的管理研究主要是对一些有严重故障或容易表现出错的软件模块进行分析识别,并为其创建软件故障管理预测系统模型,为其提供软件维护使用指南。通过对整个软件系统可靠性进行测试,找出对整个软件系统可靠性具有重大影响的软件错误。近年来,随着信息技术的飞速发展和广泛普及,计算机软件可靠性技术已经将相关软件设备存在的运行状态故障情况作为研究依据。人们对使用软件的迫切需求也不断提高,从而直接推动了我国软件技术的不断进步。随着软件结构的设计复杂性的日益增加,直接导致了各种软件维护系统故障的结构复杂性也随之增加,随之而来的是软件开发和安装维护软件过程中的成本也相应加大。因此,利用软件测试过程中产生的故障数据,对软件可靠性进行分析预测是当前研究的一个重要问题。
自回归模型是一种在社会统计学中已经得到广泛研究运用的时间序列分析方法,目前已经广泛应用在经济学、信息学、自然科学等现象的分析预测上,是在20世纪70年代由美国现代统计学中的学者博克思(Box)和詹金斯(Jenkins)联合提出的一种预测和分析三维时间序列的计算方法。马飒飒等人将软件可靠性测试阶段获得的失效数据作为时间序列进行多尺度分解,对分解到不同尺度上的数据分别利用不同的时序预测模型进行分析,提出了软件可靠性多尺度预测模型[1]。贾治宇等人对基于求和自回归滑动平均模型(ARIMA模型)的软件可靠性预测方法进行了研究,提出了利用ARIMA(p,d,q)模型来对软件可靠性进行预测[2]。吴烨清介绍了时间序列理论的基本知识,研究了随机时间序列方法在软件可靠性建模中的应用[3]。Cao等人提出了一种结合ARIMA和分形模型的混合方法,以利用ARIMA和分形模型在建模中的独特优势,提出了一种基于ARIMA和分形的混合软件可靠性模型,提出了软件失效机理研究的新思路[4]。Chatterjee等人建立了一种ARIMA模型来预测软件的可靠性,所提出的模型已使用一些实际的软件故障数据进行了验证,结果显示较好[5]。Choudhary等人提出了一种基于Cuckoo搜索算法、集合经验模态分解和ARIMA时间序列的混合软件可靠性模型,该模型提供了更准确的故障预测[6]。自回归综合移动平均模型(ARIMA或Box-Jenkins技术)和人工神经网络(ANN)都是传统可靠性分析方法(如Weibull分析、泊松过程、非均匀泊松过程和马尔可夫方法)的可行替代方案。通过ARIMA或ANN进行故障间隔时间(TBF)的时间序列分析没有传统方法的局限性,如先验假设的要求/假设或TBF的统计独立且分布均匀的观测值。Dindarlo等人通过对TBF的分析研究了LHD装置的可靠性。季节性自回归综合移动平均值(SARIMA)用于建模和预测故障,并将结果与基于ANN的模型进行比较,最优ARIMA模型在预测LHD的TBF方面优于人工神经网络[7]。Kumaresan等人提出了一种时间序列SARIMA方法,用于开发能够提供显著改善的可靠性预测模型。使用实时的公共可用软件故障集,将其与以前的可靠性模型进行比较,时间序列SARIMA方法较好[8]。 1 软件可靠性自回归模型
1.1 自回归模型
自回归模型(Autoregressive Model,簡称AR模型),是统计上一种处理时间序列的方法,根据同一个变量之前各个不同时期的统计数值变化情况,预测该同一变量在未来一段时间内的数值变化。该模型用同一变量如x的之前各期,即x1至xt-1来预测本期xt的表现,并假设它们为线性关系。因为这是从回归分析中的线性回归发展而来,只是不用x预测y,而是用x预测x(自己),所以叫作自回归。自回归模型被广泛运用在信息学、经济学、自然现象的预测上。自回归模型的数学表达式如式(1)所示[9]。
[Xt=c+i=1φφiXt-1+εt] (1)
式中:c是常数项;[εt]被假设为平均数等于0,标准差等于[δ]的随机误差值;[δ]被假设为对于任何t都不变。
软件的故障数据也是一个时间序列数据,表现为在某一个具体的时间段内观测到的故障数据。根据式(1),在软件测试过程中,可以假设在[tj-1,tj](j=1,2…,n)时间里观测到的故障次数为Xt,因此,可以利用自回归模型对软件将来发生的故障数进行预测。在单位时间里,软件的故障数越少,说明软件越可靠,质量越高。
1.2 最小二乘估计方法
最小二乘法(又可称为最小平方法),是一种基于数学的最优化计算技术。应用最小二乘法可以简单直接地获取一些未知数据,并且可以使通过这些乘法获得的已知数据与通过最小二乘法获得的实际数据之间的数值误差的最小平方和达到最小。公式如下。
[L=Xt-Xt2] (2)
式中:[Xt]为实际故障数据值,[Xt]为估计的故障数。通过计算上式的最小值,可以得到未知参数的最小二乘估计。
2 案例分析
2.1 故障数据
故障数据来自火狐浏览器的故障数据(Mozilla Firefox),一共127组,即127周的故障次数。如表1所示。
2.2 模型结果分析
通过ACF和PACF可以确定自回归模型的阶数,如表2所示。此序列并没有显著的非平稳特征,表中检验统计量的p值都小于0.05,白噪声所检验的结果显示两个序列值之间含有相关关系,因此序列为非白噪声序列。
图1给出了ACF自相关图,从图中可以看出,只有阶数为1到4阶的自相关系数在2倍标准差的范围之外,其他阶数的自相关系数都在2倍标准差的范围之内,根据自相关系数的特点,可以看出序列平稳。
图2给出了ACF偏自相关图,从图中可以看出,PACF图所显示的是偏自相关系数的衰减过程,图中只有1到2阶的偏自相关系数在2倍标准差的范围之外,其他阶数的偏自相关系数都在2倍标准差的范围内上下波动,可以判为偏自相关系数2阶截尾的典型特征。根据自相关系数拖尾特征,偏自相关系数2阶截尾属性(指的是PACF在某一阶后均为0),认为可以初步确定拟合模型为AR(2)。
下面来对模型进行设计,通过以上数据描述,建立二阶自回归模型AR(2),通过spss22.0进行模型拟合,因为spss22.0没有单独的自回归模块,通过对ARIMA(p,d,q)(p是自回归项数,d是差分,q是移动平均项数)模型中参数设定为p=2,d=0,q=0,从而生成模型ARIMA(2,0,0),即AR(2)。
从表3模型统计量得出p值大于0.05,残差不存在相关性,这就表明了变量完全把残差中数据的信息最大限度地提取出来了,模型拟合很好。表4给出了模型参数的估计值。
根据表4,可以得到如下的自回归方程:
[Yt=1.208+0.244yt-1-1.208+0.308yt-2-1.208] (3)
图3给出了自回归模型的软件故障拟合图。从图可以看出,模型的拟合效果较好。图4给出了自回归模型的软件故障预测图,从图中可以看出,在127周之后,软件故障次数波动平稳,维持在一周1次故障。
3 结语
本文提出了一种基于自回归模型的软件可靠性预测方法,并利用最小二乘估计方法对模型中的参数进行估计。使用127周的开源软件Firefox真实故障数据,利用SPSS软件对可靠性模型进行验证分析,实验结果表明在127周之后,软件故障次数波动平稳,维持在一周1次故障,体现了软件的可靠性趋于稳定。
参考文献:
[1] 马飒飒,王光平,赵守伟.基于时间序列的软件可靠性预测模型研究[J].计算机工程与设计,2007(11):2520-2523.
[2] 贾治宇,康锐.软件可靠性预测的ARIMA方法研究[J].计算机工程与应用,2008(35):17-19,27.
[3] 吴烨清.时间序列理论在软件可靠性建模中的应用和研究[D].武汉:华中农业大学,2009.
[4] CAO Y,ZHU Q. The Software Reliability Model Using Hybrid Model of Fractals and ARIMA [J]. Ieice Transactions on Information & Systems, 2010,93-D(11): 3116-3119.
[5] CHATTERJEE, SINGH, NIGAM, et al. Best Subset Selection of ARMA and ARIMA Models for Software Reliability Estimation [J]. International Journal of Modelling and Simulation, 2011(2): 120-125.
[6] CHOUDHARY A, BAGHEL A S. Software Reliability Prediction Using Cuckoo Search Optimization,Empirical Mode Decomposition and ARIMA Model: CS-EEMD-ARIMA Based SRGM [J]. International Journal of Open Source Software and Processes (IJOSSP), 2016(4): 39-54.
[7] DINDARLOO S. Reliability Forecasting of a Load-Haul-Dump Machine: A Comparative Study of ARIMA and Neural Networks [J]. Quality and Reliability Engineering International, 2016(4): 1545-1552.
[8] KUMARESAN K, GANESHKUMAR P. Software reliability prediction model with realistic assumption using time series (S)ARIMA model [J]. Journal of Ambient Intelligence and Humanized Computing, 2020(11): 5561-5568.
[9] 潘雄锋,彭晓雪.时间序列分析[M].北京:清华大学出版社,2016.
关键词:自回归模型;软件可靠性;最小二乘估计;SPSS
中图分类号:TP183 文献标识码:A 文章编号:1003-5168(2021)24-0023-04
Research on Software Reliability Prediction Method Based on Autoregressive Model
CHEN Jing
(College of Information Engineering, Guizhou University of Traditional Chinese Medicine, Guiyang Guizhou 550025)
Abstract: With the increasing demand for the people’s pursuit of the high reliability and high-quality software, this demand forces software developers to continuously improve the reliability of software. This paper put forwards a software reliability prediction method based on an autoregressive model, and uses the least square estimation method to estimate the parameters in the model. The real failure data of the open source software Firefox and SPSS software were used to verify and analyze the reliability model,and the experimental results show that the model proposed in this paper is effective.
Keywords: autoregressive model;software reliability; least square estimation; SPSS
對系统软件故障的管理研究主要是对一些有严重故障或容易表现出错的软件模块进行分析识别,并为其创建软件故障管理预测系统模型,为其提供软件维护使用指南。通过对整个软件系统可靠性进行测试,找出对整个软件系统可靠性具有重大影响的软件错误。近年来,随着信息技术的飞速发展和广泛普及,计算机软件可靠性技术已经将相关软件设备存在的运行状态故障情况作为研究依据。人们对使用软件的迫切需求也不断提高,从而直接推动了我国软件技术的不断进步。随着软件结构的设计复杂性的日益增加,直接导致了各种软件维护系统故障的结构复杂性也随之增加,随之而来的是软件开发和安装维护软件过程中的成本也相应加大。因此,利用软件测试过程中产生的故障数据,对软件可靠性进行分析预测是当前研究的一个重要问题。
自回归模型是一种在社会统计学中已经得到广泛研究运用的时间序列分析方法,目前已经广泛应用在经济学、信息学、自然科学等现象的分析预测上,是在20世纪70年代由美国现代统计学中的学者博克思(Box)和詹金斯(Jenkins)联合提出的一种预测和分析三维时间序列的计算方法。马飒飒等人将软件可靠性测试阶段获得的失效数据作为时间序列进行多尺度分解,对分解到不同尺度上的数据分别利用不同的时序预测模型进行分析,提出了软件可靠性多尺度预测模型[1]。贾治宇等人对基于求和自回归滑动平均模型(ARIMA模型)的软件可靠性预测方法进行了研究,提出了利用ARIMA(p,d,q)模型来对软件可靠性进行预测[2]。吴烨清介绍了时间序列理论的基本知识,研究了随机时间序列方法在软件可靠性建模中的应用[3]。Cao等人提出了一种结合ARIMA和分形模型的混合方法,以利用ARIMA和分形模型在建模中的独特优势,提出了一种基于ARIMA和分形的混合软件可靠性模型,提出了软件失效机理研究的新思路[4]。Chatterjee等人建立了一种ARIMA模型来预测软件的可靠性,所提出的模型已使用一些实际的软件故障数据进行了验证,结果显示较好[5]。Choudhary等人提出了一种基于Cuckoo搜索算法、集合经验模态分解和ARIMA时间序列的混合软件可靠性模型,该模型提供了更准确的故障预测[6]。自回归综合移动平均模型(ARIMA或Box-Jenkins技术)和人工神经网络(ANN)都是传统可靠性分析方法(如Weibull分析、泊松过程、非均匀泊松过程和马尔可夫方法)的可行替代方案。通过ARIMA或ANN进行故障间隔时间(TBF)的时间序列分析没有传统方法的局限性,如先验假设的要求/假设或TBF的统计独立且分布均匀的观测值。Dindarlo等人通过对TBF的分析研究了LHD装置的可靠性。季节性自回归综合移动平均值(SARIMA)用于建模和预测故障,并将结果与基于ANN的模型进行比较,最优ARIMA模型在预测LHD的TBF方面优于人工神经网络[7]。Kumaresan等人提出了一种时间序列SARIMA方法,用于开发能够提供显著改善的可靠性预测模型。使用实时的公共可用软件故障集,将其与以前的可靠性模型进行比较,时间序列SARIMA方法较好[8]。 1 软件可靠性自回归模型
1.1 自回归模型
自回归模型(Autoregressive Model,簡称AR模型),是统计上一种处理时间序列的方法,根据同一个变量之前各个不同时期的统计数值变化情况,预测该同一变量在未来一段时间内的数值变化。该模型用同一变量如x的之前各期,即x1至xt-1来预测本期xt的表现,并假设它们为线性关系。因为这是从回归分析中的线性回归发展而来,只是不用x预测y,而是用x预测x(自己),所以叫作自回归。自回归模型被广泛运用在信息学、经济学、自然现象的预测上。自回归模型的数学表达式如式(1)所示[9]。
[Xt=c+i=1φφiXt-1+εt] (1)
式中:c是常数项;[εt]被假设为平均数等于0,标准差等于[δ]的随机误差值;[δ]被假设为对于任何t都不变。
软件的故障数据也是一个时间序列数据,表现为在某一个具体的时间段内观测到的故障数据。根据式(1),在软件测试过程中,可以假设在[tj-1,tj](j=1,2…,n)时间里观测到的故障次数为Xt,因此,可以利用自回归模型对软件将来发生的故障数进行预测。在单位时间里,软件的故障数越少,说明软件越可靠,质量越高。
1.2 最小二乘估计方法
最小二乘法(又可称为最小平方法),是一种基于数学的最优化计算技术。应用最小二乘法可以简单直接地获取一些未知数据,并且可以使通过这些乘法获得的已知数据与通过最小二乘法获得的实际数据之间的数值误差的最小平方和达到最小。公式如下。
[L=Xt-Xt2] (2)
式中:[Xt]为实际故障数据值,[Xt]为估计的故障数。通过计算上式的最小值,可以得到未知参数的最小二乘估计。
2 案例分析
2.1 故障数据
故障数据来自火狐浏览器的故障数据(Mozilla Firefox),一共127组,即127周的故障次数。如表1所示。
2.2 模型结果分析
通过ACF和PACF可以确定自回归模型的阶数,如表2所示。此序列并没有显著的非平稳特征,表中检验统计量的p值都小于0.05,白噪声所检验的结果显示两个序列值之间含有相关关系,因此序列为非白噪声序列。
图1给出了ACF自相关图,从图中可以看出,只有阶数为1到4阶的自相关系数在2倍标准差的范围之外,其他阶数的自相关系数都在2倍标准差的范围之内,根据自相关系数的特点,可以看出序列平稳。
图2给出了ACF偏自相关图,从图中可以看出,PACF图所显示的是偏自相关系数的衰减过程,图中只有1到2阶的偏自相关系数在2倍标准差的范围之外,其他阶数的偏自相关系数都在2倍标准差的范围内上下波动,可以判为偏自相关系数2阶截尾的典型特征。根据自相关系数拖尾特征,偏自相关系数2阶截尾属性(指的是PACF在某一阶后均为0),认为可以初步确定拟合模型为AR(2)。
下面来对模型进行设计,通过以上数据描述,建立二阶自回归模型AR(2),通过spss22.0进行模型拟合,因为spss22.0没有单独的自回归模块,通过对ARIMA(p,d,q)(p是自回归项数,d是差分,q是移动平均项数)模型中参数设定为p=2,d=0,q=0,从而生成模型ARIMA(2,0,0),即AR(2)。
从表3模型统计量得出p值大于0.05,残差不存在相关性,这就表明了变量完全把残差中数据的信息最大限度地提取出来了,模型拟合很好。表4给出了模型参数的估计值。
根据表4,可以得到如下的自回归方程:
[Yt=1.208+0.244yt-1-1.208+0.308yt-2-1.208] (3)
图3给出了自回归模型的软件故障拟合图。从图可以看出,模型的拟合效果较好。图4给出了自回归模型的软件故障预测图,从图中可以看出,在127周之后,软件故障次数波动平稳,维持在一周1次故障。
3 结语
本文提出了一种基于自回归模型的软件可靠性预测方法,并利用最小二乘估计方法对模型中的参数进行估计。使用127周的开源软件Firefox真实故障数据,利用SPSS软件对可靠性模型进行验证分析,实验结果表明在127周之后,软件故障次数波动平稳,维持在一周1次故障,体现了软件的可靠性趋于稳定。
参考文献:
[1] 马飒飒,王光平,赵守伟.基于时间序列的软件可靠性预测模型研究[J].计算机工程与设计,2007(11):2520-2523.
[2] 贾治宇,康锐.软件可靠性预测的ARIMA方法研究[J].计算机工程与应用,2008(35):17-19,27.
[3] 吴烨清.时间序列理论在软件可靠性建模中的应用和研究[D].武汉:华中农业大学,2009.
[4] CAO Y,ZHU Q. The Software Reliability Model Using Hybrid Model of Fractals and ARIMA [J]. Ieice Transactions on Information & Systems, 2010,93-D(11): 3116-3119.
[5] CHATTERJEE, SINGH, NIGAM, et al. Best Subset Selection of ARMA and ARIMA Models for Software Reliability Estimation [J]. International Journal of Modelling and Simulation, 2011(2): 120-125.
[6] CHOUDHARY A, BAGHEL A S. Software Reliability Prediction Using Cuckoo Search Optimization,Empirical Mode Decomposition and ARIMA Model: CS-EEMD-ARIMA Based SRGM [J]. International Journal of Open Source Software and Processes (IJOSSP), 2016(4): 39-54.
[7] DINDARLOO S. Reliability Forecasting of a Load-Haul-Dump Machine: A Comparative Study of ARIMA and Neural Networks [J]. Quality and Reliability Engineering International, 2016(4): 1545-1552.
[8] KUMARESAN K, GANESHKUMAR P. Software reliability prediction model with realistic assumption using time series (S)ARIMA model [J]. Journal of Ambient Intelligence and Humanized Computing, 2020(11): 5561-5568.
[9] 潘雄锋,彭晓雪.时间序列分析[M].北京:清华大学出版社,2016.