劉洪太
中國(guó)石油集團(tuán)安全環(huán)保技術(shù)研究院 (北京 102206)
數(shù)據(jù)驅(qū)動(dòng)的軟件可靠性模型在石油工業(yè)信息系統(tǒng)中的應(yīng)用
劉洪太
中國(guó)石油集團(tuán)安全環(huán)保技術(shù)研究院 (北京 102206)
近年來,石油工業(yè)信息系統(tǒng)不斷發(fā)展,規(guī)模和復(fù)雜度不斷提高,系統(tǒng)的可靠性越來越受到重視。然而,石油工業(yè)信息系統(tǒng)的質(zhì)量控制缺少有效的工具和方法,軟件可靠性模型在石油工業(yè)信息系統(tǒng)中沒有得到很好的應(yīng)用,系統(tǒng)失效數(shù)據(jù)沒有得到充分利用。介紹了3種軟件可靠性模型,并應(yīng)用數(shù)據(jù)驅(qū)動(dòng)的軟件可靠性模型來預(yù)測(cè)石油工業(yè)信息系統(tǒng)中的失效數(shù)據(jù),最后使用SVMr軟件可靠性模型進(jìn)行模擬仿真實(shí)驗(yàn)。結(jié)果表明,數(shù)據(jù)驅(qū)動(dòng)的軟件可靠性模型可以很好地預(yù)測(cè)石油工業(yè)信息系統(tǒng)中的軟件失效數(shù)據(jù),預(yù)測(cè)結(jié)果具有較高的決策價(jià)值。
軟件可靠性模型;數(shù)據(jù)驅(qū)動(dòng);失效數(shù)據(jù);石油工業(yè)信息系統(tǒng)
隨著計(jì)算機(jī)系統(tǒng)的迅速發(fā)展以及工業(yè)化、信息化的不斷推進(jìn),石油工業(yè)信息系統(tǒng)已成為石油行業(yè)不可或缺的工具,石油工業(yè)信息系統(tǒng)的規(guī)模、復(fù)雜性以及重要性也在不斷上升。一旦重要的石油工業(yè)信息系統(tǒng)發(fā)生故障,將會(huì)造成諸多工作上的不便或重大的經(jīng)濟(jì)損失,甚至?xí)C(jī)人身安全,影響到國(guó)家安危。石油工業(yè)信息系統(tǒng)的可靠性已成為企業(yè)領(lǐng)導(dǎo)和公眾關(guān)注的重大問題。
石油信息系統(tǒng)具有其自身的特點(diǎn):①對(duì)系統(tǒng)要求高。因其組織機(jī)構(gòu)龐大,業(yè)務(wù)流程復(fù)雜,石油工業(yè)業(yè)務(wù)種類繁多,這就要求信息系統(tǒng)具有很好的適用性和擴(kuò)展性。②安全性要求高。石油工業(yè)數(shù)據(jù)具有極高的保密性,一旦某些信息系統(tǒng)的數(shù)據(jù)泄露,將會(huì)造成不可預(yù)估的后果。③開發(fā)周期長(zhǎng)。大型石油信息系統(tǒng)的構(gòu)建時(shí)間一般都需要幾年的時(shí)間,耗費(fèi)巨大的人力、物力。近些年,石油工業(yè)信息系統(tǒng)還在不斷地完善和開發(fā)。由于石油工業(yè)信息系統(tǒng)有其自身的特點(diǎn),特別是大型復(fù)雜的石油信息系統(tǒng),導(dǎo)致在開發(fā)和維護(hù)中系統(tǒng)的可靠性很難得到保障,開發(fā)質(zhì)量難以維護(hù),缺少合適的方法和工具保障系統(tǒng)的質(zhì)量,造成了大量數(shù)據(jù)資源的浪費(fèi)。
高效的軟件可靠性模型對(duì)石油工業(yè)信息系統(tǒng)質(zhì)量的改善有著重要的指導(dǎo)意義,也有助于解決信息系統(tǒng)開發(fā)過程中出現(xiàn)的問題。因此,對(duì)于快速發(fā)展的石油工業(yè)信息系統(tǒng),如何充分利用軟件失效數(shù)據(jù),使用好的軟件可靠性模型進(jìn)行預(yù)測(cè),對(duì)石油企業(yè)的發(fā)展具有長(zhǎng)遠(yuǎn)的意義。
到目前為止,軟件可靠性模型有了一定的發(fā)展,并且在數(shù)量上也突破了一百多個(gè)[1]。近些年,通過時(shí)序數(shù)據(jù)預(yù)測(cè)方法建立軟件可靠性模型越來越受到重視,時(shí)序數(shù)據(jù)預(yù)測(cè)領(lǐng)域不僅為軟件可靠性模型提供了理論基礎(chǔ),而且,很多分析與處理技術(shù)在建模數(shù)據(jù)處理上也有很好的應(yīng)用。然而,在石油工業(yè)信息系統(tǒng)開發(fā)和維護(hù)中,使用數(shù)據(jù)驅(qū)動(dòng)的軟件可靠性模型對(duì)系統(tǒng)失效數(shù)據(jù)進(jìn)行預(yù)測(cè)和分析并沒有得到充分的應(yīng)用。因此,筆者將數(shù)據(jù)驅(qū)動(dòng)軟件可靠性模型應(yīng)用于石油工業(yè)信息系統(tǒng),對(duì)軟件失效數(shù)據(jù)進(jìn)行預(yù)測(cè)。
軟件可靠性在很長(zhǎng)一段時(shí)間沒有確切的定義。甚至軟件的可靠性這個(gè)屬性一直都是一個(gè)很受爭(zhēng)議的屬性,有人認(rèn)為軟件不存在這個(gè)屬性,他們把此屬性說成是“理想化”,有些人卻認(rèn)為該屬性本身就存在,即軟件正確性。這兩種觀念都是偏頗的。
通過總結(jié)前人的結(jié)論和經(jīng)驗(yàn),1983年美國(guó)IEEE Computer Society給予了“軟件可靠性”一個(gè)統(tǒng)一且合理的解釋[2]:①在既定的環(huán)境中,軟件運(yùn)行維持穩(wěn)定的概率。此概率為軟件從輸入到輸出出現(xiàn)錯(cuò)誤的函數(shù)表達(dá)。②在既定的環(huán)境中和周期內(nèi),程序所能達(dá)到的預(yù)期功能效果的程度。
軟件可靠性的興起和發(fā)展主要源于3個(gè)方面的因素:一是需求。軟件質(zhì)量問題一直是客戶最關(guān)心的問題,軟件危機(jī)與20世紀(jì)90年代軟件故障引發(fā)了許多重大事故,對(duì)顧客造成了重大的損失,嚴(yán)重影響了客戶滿意度。二是技術(shù)。這幾年,信息產(chǎn)業(yè)遍布全球,各類軟件層出不窮,軟件可靠性以此為載體得到了長(zhǎng)足發(fā)展和動(dòng)力。三是可靠性工程。軟件可靠性工程已經(jīng)研究了多年,并有了相當(dāng)成熟的理論和方法,為軟件可靠性的研究提供了基礎(chǔ)。
軟件失效數(shù)據(jù)在軟件可靠性評(píng)估和軟件可靠性建模領(lǐng)域都起著重要的作用。軟件在測(cè)試或運(yùn)行過程中沒有得到想要的效果,稱為軟件失效。軟件失效數(shù)據(jù)包含2種:一種是軟件累積失效數(shù)據(jù),由于缺陷導(dǎo)致了軟件的失效,也可以稱為軟件累積缺陷數(shù)據(jù);另一種為失效間隔數(shù)據(jù)。軟件累積失效數(shù)據(jù)為軟件從開始到某一時(shí)間點(diǎn)之間軟件失效的次數(shù);失效間隔數(shù)據(jù)為軟件從上一個(gè)時(shí)間點(diǎn)到下一時(shí)間點(diǎn)之間發(fā)生的失效次數(shù)。
正確的搜集和處理軟件失效數(shù)據(jù)是軟件系統(tǒng)質(zhì)量評(píng)估的基礎(chǔ)。在實(shí)際中,大量的軟件失效并不都適合用來進(jìn)行預(yù)測(cè)軟件可靠性,由于硬件錯(cuò)誤或記錄錯(cuò)誤等都有可能造成失效數(shù)據(jù)采集的不準(zhǔn)確。因此失效數(shù)據(jù)預(yù)處理和加工對(duì)于后期軟件質(zhì)量的評(píng)估起著至關(guān)重要的作用。
數(shù)據(jù)驅(qū)動(dòng)的軟件可靠性模型是基于觀測(cè)到的軟件失效數(shù)據(jù),將其視為一個(gè)時(shí)間序列進(jìn)行建模與分析,并對(duì)軟件將來的失效行為進(jìn)行預(yù)測(cè)[3]。數(shù)據(jù)驅(qū)動(dòng)的軟件可靠性模型不需要對(duì)軟件內(nèi)部錯(cuò)誤及失效過程做任何假設(shè),因而其應(yīng)用范圍較廣。數(shù)據(jù)驅(qū)動(dòng)的軟件可靠性模型主要包括基于時(shí)間序列分析的模型[4~5]、基于人工神經(jīng)網(wǎng)絡(luò)的模型和基于支持向量機(jī)的模型[6]等。
自回歸求積移動(dòng)平均模型(Autoregressive Integrated Moving Average Model,ARIMA)用來預(yù)測(cè)不穩(wěn)定時(shí)間序列,在時(shí)間序列之上引入了k次序列和d階差分。ARIMA模型對(duì)時(shí)間序列Xt(t=1,2,3…,N)的表達(dá)式[7]為:
式中,p為自回歸周期數(shù),q為移動(dòng)平均周期數(shù)。
通常,k=1是比較合理的,代表ARIMA(p,d,q)模型,取k=1模型等式為:
ARIMA模型用來研究時(shí)間序列,并通過差分使不穩(wěn)定的數(shù)據(jù)變得穩(wěn)定。通過Eviews軟件可以分析出序列是否為穩(wěn)定序列。序列穩(wěn)定后,p和q的值就確定了。在p和q確定過程中,自相關(guān)函數(shù)和局部自相關(guān)函數(shù)是最重要的。自相關(guān)函數(shù)代表了每個(gè)序列值之間簡(jiǎn)單的關(guān)聯(lián)關(guān)系。自相關(guān)函數(shù)系數(shù)的表達(dá)式見式(5):
對(duì)于時(shí)間序列X1,X2,X3…,Xt,和Xt-k之間的相關(guān)條件稱為偏自相關(guān)函數(shù),表達(dá)式見式(6):
式中,-1<Φkk<1,Φk,j遞推公式見式(7):
在實(shí)際應(yīng)用過程中,時(shí)間序列的自相關(guān)函數(shù)和偏自相關(guān)函數(shù)需要全面被監(jiān)測(cè),通過Eviews軟件,可以得到自相關(guān)和偏自相關(guān)的數(shù)值,從而得到p和q的值。
支持向量機(jī)起初應(yīng)用于分類模型中,Vapnik提出,回歸函數(shù)可以通過訓(xùn)練數(shù)據(jù)集反映輸入與輸出的關(guān)系模型[8],Xi為實(shí)際的輸入,yi為實(shí)際的輸出,1為訓(xùn)練數(shù)據(jù)對(duì)的總數(shù)。支持向量機(jī)回歸模型公式見式(8):
其中Φ(X)是一個(gè)高維特征空間映射函數(shù),將輸入樣本X映射到一個(gè)高維的特征空間,通過等式(8),低維空間中輸入與輸出的非線性關(guān)系可以被轉(zhuǎn)換為高維中的線性形式,“維數(shù)災(zāi)難”的問題也在轉(zhuǎn)換中得到了解決。式(8)中,W為權(quán)向量;b為閾值,對(duì)于給定的訓(xùn)練數(shù)據(jù)集采用ε不敏感損失函數(shù),對(duì)應(yīng)的支持向量機(jī)稱為ε-支持向量機(jī),則W和b的值可由以下約束優(yōu)化問題求得:
其中,C為懲罰因子,C>0,用于控制誤差超出ε的樣本的懲罰程度。式(9)的優(yōu)化問題可通過引入拉格朗日函數(shù)將其轉(zhuǎn)化為對(duì)偶問題,通過解對(duì)偶問題得到式(8)的解:
徑向基(RBF)神經(jīng)網(wǎng)絡(luò)為前向兩層神經(jīng)網(wǎng)絡(luò),并含有單隱含層。RBF神經(jīng)網(wǎng)絡(luò)的思想是模擬人腦局部調(diào)整的網(wǎng)絡(luò)結(jié)構(gòu),會(huì)在核函數(shù)的周圍產(chǎn)生強(qiáng)烈的響應(yīng),RBF神經(jīng)網(wǎng)絡(luò)可以看作控制過程的局部逼近模型,其本質(zhì)上具有非線性特性,處理非線性關(guān)系數(shù)據(jù)有很好的效果。RBF神經(jīng)網(wǎng)絡(luò)不需要樣本數(shù)據(jù)具有特別的分布特性,有很好的泛化能力,并且具有即時(shí)學(xué)習(xí)能力和快速的收斂能力。圖1為一般的RBF神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu)圖。
如圖1所示,RBF神經(jīng)網(wǎng)絡(luò)的輸入向量由n個(gè)輸入數(shù)據(jù)組成,表示為X=[x1,x2,x3…,xn]T,在模型隱含層由m個(gè)元素組成的中間向量H=[h1,h2…,hm]T,hm稱為徑向基函數(shù),操作符‖‖·代表一個(gè)p基,稱為歐氏范數(shù)。本節(jié)使用高斯徑向基函數(shù)來選擇參數(shù)Φ,表示形式為式(11)。
圖1 RBF神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu)圖
式中,Cj=[cj1,cj2,…,cjn]稱為基函數(shù)的中心點(diǎn),σj相應(yīng)地稱為它的徑,即中心點(diǎn)寬度。t網(wǎng)絡(luò)的第三層為綜合輸出-y,見式(12):
實(shí)數(shù)參數(shù)Wj,?j=1,2,…,m為隱含層到輸出層之間的權(quán)重。真實(shí)值和預(yù)測(cè)值之間的誤差(y(k)--y(k))用來調(diào)整RBF神經(jīng)網(wǎng)絡(luò)參數(shù)。對(duì)于RBF輸出權(quán)重的更新迭代算法,使用梯度下降方法進(jìn)行。
本文使用SVMr軟件可靠性模型作為預(yù)測(cè)模型,在SVMr模型中,采用高斯核函數(shù),模型參數(shù)懲罰因子取C=100,高斯核函數(shù)中σ=1,W=0.1。使用Matlab工具進(jìn)行模擬仿真,使用HSE2.0(安全環(huán)保健康2.0)系統(tǒng)在開發(fā)和運(yùn)維積累的系統(tǒng)失效數(shù)據(jù)作為實(shí)驗(yàn)數(shù)據(jù),共選取225對(duì)采樣點(diǎn)數(shù)據(jù)。每對(duì)采樣點(diǎn)由軟件累積執(zhí)行時(shí)間和軟件累積失效數(shù)量組成。數(shù)據(jù)示例見表1。
采用滑動(dòng)窗口機(jī)制和粒子群(PSO)算法[9]在滑動(dòng)窗口內(nèi)選取對(duì)預(yù)測(cè)數(shù)據(jù)具有重要影響的某些失效數(shù)據(jù)作為模型輸入。輸入組合采用二進(jìn)制形式表示,“0”表示未選擇,“1”表示被選擇,例如當(dāng) W=6,“010101”則代表2,4,6位置上的失效數(shù)據(jù)被選擇作為模型輸入。
仿真實(shí)驗(yàn)取前200個(gè)失效數(shù)據(jù)作為訓(xùn)練數(shù)據(jù),后25個(gè)數(shù)據(jù)作為測(cè)試數(shù)據(jù)。通過文獻(xiàn)[9]中給出的方法計(jì)算得到在W=7時(shí),滑動(dòng)窗口內(nèi)得到最優(yōu)的模型輸入為 0111011,表示滑動(dòng)窗口內(nèi) 2、3、4、6、7 位置上的失效數(shù)據(jù)組合作為模型輸入。
表1 HSE2.0系統(tǒng)累積執(zhí)行時(shí)間和軟件累積失效數(shù)量
本實(shí)驗(yàn)選用平均絕對(duì)誤差(MAE)、均方差(MSE)和平均絕對(duì)百分比誤差(MAPE)作為預(yù)測(cè)結(jié)果評(píng)判標(biāo)準(zhǔn):
以下實(shí)驗(yàn)結(jié)果為SVMr軟件可靠性模型對(duì)HSE2.0系統(tǒng)累計(jì)失效數(shù)據(jù)的預(yù)測(cè)結(jié)果,如圖2和表2所示。
圖2 SVMr模型對(duì)HSE2.0系統(tǒng)累計(jì)失效數(shù)據(jù)的預(yù)測(cè)結(jié)果圖
表2 SVMr可靠性模型對(duì)HSE2.0系統(tǒng)累計(jì)失效數(shù)據(jù)預(yù)測(cè)性能
本實(shí)驗(yàn)通過使用SVMr軟件可靠性模型對(duì)HSE2.0系統(tǒng)累計(jì)失效數(shù)據(jù)進(jìn)行預(yù)測(cè),從仿真實(shí)驗(yàn)預(yù)測(cè)結(jié)果誤差可以明顯看出,使用SVMr軟件可靠性模型能夠精確預(yù)測(cè)HSE2.0系統(tǒng)累計(jì)失效數(shù)據(jù),誤差較小,評(píng)價(jià)標(biāo)準(zhǔn)MAE、MSE和MAPE較小。這說明提出的基于數(shù)據(jù)驅(qū)動(dòng)的軟件可靠性模型在石油工業(yè)信息系統(tǒng)中能夠準(zhǔn)確、客觀地預(yù)測(cè)系統(tǒng)失效數(shù)據(jù)。
筆者提出了將數(shù)據(jù)驅(qū)動(dòng)的軟件可靠性模型應(yīng)用于石油工業(yè)信息系統(tǒng),并通過SVMr軟件可靠性模型進(jìn)行仿真實(shí)驗(yàn),證明了數(shù)據(jù)驅(qū)動(dòng)的軟件可靠性模型能夠充分利用系統(tǒng)中產(chǎn)生的失效數(shù)據(jù),獲得精確的預(yù)測(cè)效果,為系統(tǒng)的開發(fā)和維護(hù)提供強(qiáng)有力的支持,為企業(yè)管理者提供決策指導(dǎo)。
[1]Whittaker J A,Voas J.Toward a More Reliable Theory of Software Reliability[J].Computer,2000,33(12):36-42.
[2]蔡開元.軟件可靠性工程基礎(chǔ)[M].北京:清華大學(xué)出版社,1995.
[3]Tian L,Noore A.Dynamic software reliability prediction:an approach based on support vector machines[J].International Journal of Reliability,Quality and Safety Engineering,2005,12(4):309-321.
[4]Burtschy B,Albeanu G,Boros D N,et al.Improving software reliability forecasting[J].Microelectronics and Reliability,1997,37(6):901-907.
[5]Guo J,Liu,H,Yang,X,et al.A software reliability time series growth model with Kalman filter[J].WSEAS Transactions on Computers,2006,5(1):1-7.
[6]賈冀婷.基于PSOABC-SVM的軟件可靠性預(yù)測(cè)模型究[J].計(jì)算機(jī)系統(tǒng)應(yīng)用,2014,23(7):161-164.
[7]Zheng T C,Gong S,Shi H B.The ARIMA prediction model of rain-induced dynamic attenuation characteristics[C].International Symposium on Antennas,Propagation&Em Theory.2012:587-590.
[8]Vapnik VN.The nature of statistical learning theory[M].2nd Edition.New York:SpringerVerlag,1995.
[9]李克文,劉洪太.基于時(shí)序數(shù)據(jù)的軟件可靠性模型組合新方法[J].計(jì)算機(jī)應(yīng)用,2014,34(S2):208-210.
In recent years,the petroleum industry information system has been developing continuously,and the scale and complexity have been continuously improved.The reliability of the system has been paid more and more attention to.However,in the past,the effective tools and methods for controlling the quality of the petroleum industry information system lacked,software reliability model was not well used in the petroleum industry information system,and the system failure data were not fully utilized.For this reason,3 kinds of software reliability models are introduced,the data-driven software reliability models are used for predicting the failure data in the petroleum industry information system,and finally simulation experiment is carried out using SVMr software reliability model.The simulation results show that the data-driven software reliability model can very well predict the software failure data in the petroleum industry information system,and the prediction results have high decision-making value.
software reliability model;data driven;failure data;petroleum industry information system
劉洪太(1988-),男,碩士,主要從事軟件質(zhì)量與可靠性方向的研究工作。
王 梅
2017-09-08