摘 要: 將多模型綜合的思想和“變點”思想相結合,,給出了一種簡單有效且具有普適性的軟件可靠性預測方法——基于模糊隸屬度的軟件可靠性多模型綜合預測方法。首先闡述了多模型綜合預測問題的一般描述,,并介紹了模型評價準則,,然后給出了單個模型權重的確定方法和該方法的一般步驟,最后用實際數據驗證了方法的有效性及普適性,。
關鍵詞: 軟件可靠性,;模糊隸屬度;多模型綜合
軟件的普遍應用促進人們對其可靠性的關注,,到目前為止軟件可靠性的研究取得了很大的成果,,提出了近百種軟件可靠性預測模型,如JM模型,、GO模型,、NHPP模型、LV模型等,,并稱此類模型為經典模型,。但是單個經典模型存在很大的局限性,對于一個軟件可靠性的評估往往很難用一個模型來處理,,而且很多軟件可靠性模型都是建立在概率分布假設的基礎上,,這就造成對一個軟件有很好的適用性而對其他的軟件則效果很差[1]。20世紀90年代以來,,基于知識的方法被越來越多地應用到軟件可靠性預測中,,如神經網絡的方法[2-4]、遺傳算法、支持向量機,、泛函網絡等,。然而這些方法算法復雜、計算性能較低,、其預測結果的精確性取決于神經網絡結構的設計和模型的訓練,。Cai[5]在大量對比實驗的基礎上指出,大多數情況下,,神經網絡方法很難得出滿意的量化預測結果,。
由于單個經典模型的局限性以及基于新理論方法的復雜性和不成熟性,軟件可靠性預測仍然還有很多問題需要解決:一是建立能夠普遍應用的模型,;二是設計一套行之有效的模型選擇方法,,能夠讓工程人員從眾多的軟件可靠性模型中選擇出最適合實施項目的模型。
Littlewood B在對大量軟件項目研究的基礎上提出了“變點”的思想[6],,表明不能期望用某一個模型來描述軟件的失效過程,,而從另一個側面表明可以用多個模型來描述軟件的失效過程。香港中文大學的Lyu Michael提出了多個單一經典模型“綜合”的思想[1],,并提出了四種線性“綜合”的方法,,試圖找到一種能夠普遍適用的軟件可靠性預測方法。
本文將多模型綜合思想和“變點”思想相結合,,提出了一種基于模糊隸屬度的軟件可靠性多模型綜合預測方法,,通過各個經典模型的預測數據和實際數據的模糊等于程度來動態(tài)地改變單個模型的權重,以綜合各個模型的優(yōu)勢,,進而更準確地預測軟件的可靠性,。
2.1.3 單個經典模型權重的計算方法
在進行軟件可靠性線性綜合模型動態(tài)預測時,單個經典模型權重的確定是最重要的,。本文給出動態(tài)計算單個經典模型權重的方法步驟如下:
(1)在二元信息表的基礎上,,選擇前h個時刻作為基礎數據(前h個時刻的實際失效數已知)。
(2)計算前h個時刻每個模型預測失效數和實際失效數的模糊等于程度A(cit),。
(3)計算出各個模型在對h+1時刻軟件失效數預測的重要度(即權值)Wci:
(5)當實際測得t+1時刻的失效數d′t+1后,二元關系表指針下移一位(即t=t+1),,返回第三步,。
3 綜合模型評價
對軟件可靠性模型預測性能進行評價最主要的是模型的有效性,它可以用定量的方法來測量,。本文采用的評價標準如下:
(1)平均誤差AE(Average Error)[7]:在整個測試階段模型預測的誤差均值,,只能針對同一數據進行比較。平均誤差越小,,模型的預測效果越好,。
(2)平均偏差AB(Average Bias error)[7]:在整個測試階段模型預測總的偏差趨勢。平均偏差越接近于零,模型的預測效果越好,。
(3)均方根誤差RMSE(Root Mean Square Error)[1]:在整個測試階段模型預測值和實際值距離,。均方根誤差值越小,模型的擬合度越高,,預測性能越好,。
4 實驗分析
4.1 實驗1
選取UDIMM(University of Denmark Informatics and Mathematical Modeling)提供的數據包[8]中一軟件失效數據作為實例進行預測分析。根據Lyu所提出的幾個經典模型選擇原則,,選用JM,、GO、LV,、YO四個經典模型,。其中,JM模型是馬爾可夫過程模型,,GO模型和YO模型都是經典的非齊次泊松過程模型,,LV模型是貝葉斯模型,它們都有很好的預測效果并且應用比較廣泛,。四個模型預測偏好的綜合正好可以相互抵消,,GO、LV模型的預測結果比較樂觀,,而JM模型和YO模型的預測結果則有悲觀也有樂觀,。
設固定窗口h=4,即采用前4個時刻各個經典模型的預測失效數和實際失效數建立二元關系表,。使用基于模糊隸屬度的軟件可靠性多模型動態(tài)綜合預測方法步驟進行計算,,隸屬函數參數δ=0.25時計算結果如表1所示。
從表1可以看出,,該失效數據存在“變點”的問題,,即在第5~第7個時刻,JM和LV模型比較適用,;從第7個時刻開始一直到第12個時刻,,LV模型比較適用,GO模型次之,,此后都沒有特別合適的模型,。基于模糊隸屬度的軟件可靠性多模型動態(tài)綜合預測方法能夠動態(tài)地對各時刻各分模型的權重進行調整,,使得整個測試過程中對失效數的預測都比較準確,;而且采用固定窗口滑動步長,能夠很好地感知數據的變化,,減小了數據噪聲,。
為了與單個模型的預測性能進行對比,,選用平均誤差(AE)、平均偏差(AB),、均方根誤差(RMSE)作為模型預測性能的評價標準,。各個模型評價標準計算結果如表2所示。表中FD模型即是本文提出的基于模糊隸屬度的軟件可靠性多模型動態(tài)綜合預測方法,。
從表2可以看出,,F(xiàn)D模型的絕大多數評價標準值都比單個模型的好,只有δ=0.5的FD模型預測結果的均方根誤差較大,,說明FD模型比單個經典模型有更好的預測性能,。δ=0.25時,F(xiàn)D模型的三個評價標準取值比δ=0.5時好很多,,也更合理,;說明δ=0.25時隸屬函數能夠更好地描述模糊等于這個概念,更能反映客觀實際情況,,即是把更大的權重分配給預測值更貼近實際失效數的模型,。當δ過于小時,綜合預測時會過于偏重某一個經典模型,,不能夠達到綜合多個模型優(yōu)勢的效果,。
4.2 實驗2
為了與Lyu提出的動態(tài)權重的線性綜合模型(DLC)進行比較,選取Musa發(fā)表的DACS數據集合中的一組失效數據(SYS1)[8]和Lyu提供的一組軟件項目失效數據(LDATA)[9]進行試驗,。同樣選用Lyu選擇的三個經典模型:GO模型,、MO模型、LV模型,,固定窗口h=4,,隸屬函數參數取0.25。分別用兩種方法對兩組數據進行預測,,并對模型預測性能進行評價,。兩種方法的評價標準計算結果如表3所示。
從表3可以看出,,本文的FD模型在各個標準下都優(yōu)于DLC模型,。這主要是因為DLC模型是根據模型的累積預測精確度來動態(tài)確定權重,這樣平滑了預測時刻以前所有的基礎數據,,不能很好地反映“變點”的思想,;而FD模型采用固定窗口滑動步長來動態(tài)確定權重,能夠敏銳地感知數據的變化,,及時調整權重,又不至于平滑過量的基礎數據,,從而取得更好的預測效果,。
本文提出的基于模糊隸屬度的軟件可靠性多模型動態(tài)綜合預測方法結合“變點”思想,采用模糊隸屬的方法來動態(tài)確定單個模型在綜合預測時的權重,以期獲得更準確的預測效果,。從實驗可以看出,,該方法不但比單個經典模型有更高的預測精度和更好的預測效果,而且比Lyu提出的線性綜合模型更能反映動態(tài)反應軟件失效數據中“變點”的問題,,有更高的預測精度和更好的預測效果,。該方法對多個軟件項目具有普適性,而且簡單有效,,在一定程度上解決了一個模型只對某個軟件工程項目或者其中某一段時間能夠達到較高的預測水平的問題,。
參考文獻
[1] LYU M R, NIKORA A. Applying reliability models more effectively[J]. IEEE Software,, 1992,, 9(4):43-52.
[2] KARUNANITHI N, WHITLEY D,, MALAIYA Y K. Using neural networks in reliability prediction[J]. IEEE Software,, 1992, 9(4):53-59.
[3] SITTE R. Compareson of software-reliability-growth predictions: neural networks vs parametric-recalibration[J]. IEEE Trasactions on Reliability,, 1999,, 48(3):285-291.
[4] Su Yushen, Huang Chinyu. Neural-network-based approaches for software reliability estimation using dynamic weighted combinational models[J]. Journal of Systems and Software,, 2007,, 80(4):606-615.
[5] CAI K Y, CAI L,, Wang Weidong,, et al. On the neural network approach in software reliability modeling[J]. The Journal of Systems and Software, 2001,, 58(1):47-62.
[6] PHAME H. Reliability handbook[S]. NewYork: Springer Verlag,, 2002.
[7] MALAIYA Y K, KARUNANITHI N. Predictability measures for software reliability models[C]. Fourteenth Annual International Computer Software and Applications Conference,,
1990COMPSAC 90. 1990,, 1:7-12.
[8] VLADICESCU F P. Performance evaluation of computers courses technical, University of Denmark Informatics and Mathematical Modeling. http://www.imm.dut.dk/popentiu/pec/pec.html.(2009-04-06).
[9] LYU M R,, NIKORA A. CASRE-A computer-aided software reliability estimation tool[C]. Computer-Aided Software Engineering Proceedings. 1992:264-275.