摘 要:本文對軟件可靠性經(jīng)典模型、模型選擇、普適模型的研究進行了歸納和述評,提出了軟件可靠性綜合預測框架,給出了軟件可靠性綜合預測進一步的研究方向。
關鍵詞:軟件可靠性;經(jīng)典模型;綜合預測;框架研究
中圖分類號:TP311 文獻標識碼:A
1 引言(Introduction)
軟件已經(jīng)成為影響國民經(jīng)濟、軍事、政治乃至社會生活的重要因素。自20世紀60年代“軟件危機”出現(xiàn)之后,越來越多的學者開始關注軟件可靠性的定量評估和預測。軟件可靠性覆蓋整個軟件開發(fā)過程,與軟件工程密切相關,它源于工程,又服務于工程。在新技術、新應用(如web軟件、移動APP等等)不斷涌現(xiàn)的當前,重新審視軟件開發(fā)和應用環(huán)境,開展軟件可靠性預測研究,有助于推動軟件工程項目的實踐,降低軟件錯誤率,提升軟件質量,從而保障軟件所支撐的工程項目的高效完成,推動我國軟件產(chǎn)業(yè)的持續(xù)發(fā)展。
本文對軟件可靠性模型研究的相關文獻進行了梳理,對前人的研究成果進行了歸納,構建了新計算范式下軟件可靠性綜合預測框架,提出了軟件可靠性綜合預測的研究方向。
2 經(jīng)典軟件可靠性模型(Classical software reliability
model)
軟件可靠性建模的基本方法是:以歷史失效數(shù)據(jù)為基礎,對軟件失效規(guī)律進行趨勢擬合,進而預測未來的失效可能。早期軟件可靠性的研究是基于概率統(tǒng)計的思想,將軟件失效過程看作一個隨機過程,從Hudson的工作開始,到1971年J-M模型的發(fā)表,再到今天,已公開發(fā)表了幾百種模型[1](此類模型稱之為“經(jīng)典模型”)。
經(jīng)典模型存在兩個明顯的缺陷:第一,在對軟件可靠性進行評估預測時都有些固定不變的假設,而這些假設無從證明;第二,模型只考慮輸入的隨機性,而軟件在實際運行時卻可能受到各種隨機因素影響,使得軟件失效出現(xiàn)的情況比較復雜多變。而用某一個固定的失效模式去解釋復雜多變的情況,顯然是不合適的。實踐證明,經(jīng)典模型的應用存在不一致性的問題,對一個軟件有很好的適用性而對其他的軟件則效果很差[2,3],此外預測精度也不夠理想。
針對經(jīng)典模型的不一致性問題,研究者們從兩個方面開展了進一步的研究:一是設計一套行之有效的模型選擇方法,能夠讓工程人員從眾多的軟件可靠性經(jīng)典模型中選擇出最適合實施項目的模型,二是建立一個普適模型。
3 模型選擇的研究(Research on model selection)
模型選擇策略基本可以歸納為兩類:一類是基于模型假設與軟件環(huán)境的相似性,一類是基于對歷史失效數(shù)據(jù)預測性能的評價。
(1)基于模型假設與軟件環(huán)境的相似性的模型選擇。Andersson、Goel、Sharma等人分別提出了模型假設相似性來選擇合適模型的方法[4],基于假設矩陣的模型選擇技術實踐結果也并不理想[5]。
(2)基于對歷史失效數(shù)據(jù)預測性能的評價。該類策略的模型選擇技術依賴于對模型預測性能的評價,1983年,Musa等人提出了“預測有效性、模型能力、假設質量、模型適用性、簡單性”等五個軟件可靠性模型評價準則,在學術界獲得了較大范圍的認可。之后的研究人員不斷拓展軟件可靠性的影響變量范圍,提出了模型擬合性、模型偏差、模型偏差趨勢、覆蓋度、預測數(shù)量、模型噪聲等等眾多的評價準則,力圖從多個角度對軟件可靠性模型進行評價。
關于采用何種評價方法來選擇模型,一是基于數(shù)據(jù)挖掘、機器學習的方法[6],汪浩等人提出了基于聚類思想的軟件可靠性模型選擇,吳勤、吳晨、朱磊等人采用Kohonen網(wǎng)絡、BP神經(jīng)網(wǎng)絡、決策樹等方法對汪浩等人的研究成果進行了改進,在一定程度上提高了分類系統(tǒng)的準確性,李克文等人提出了基于時間序列的模型選擇方法[6];二是基于多屬性決策理論的方法[4],張永強等人根據(jù)可測空間中未確知集合理論來綜合評價準則,Asad等人提出基于軟件開發(fā)的生命周期,不同的階段采用不同的評價準則進行模型選擇,還需要考慮各個評價準則的相對重要程度;田濤等人采用模糊綜合評判法來綜合主觀權重集和客觀因素集,馬颯颯等人則采用熵權法對評價準則客觀值和專家主觀偏好權重進行綜合。
模型選擇的研究能夠針對某一項目選擇合適的預測模型,一定程度上解決了經(jīng)典模型的不一致性問題。然而,依靠模型選擇來進行軟件可靠性預測有較大局限,即其預測能局限于候選模型的預測性能,而且,Littlewood Bev通過研究提出了“變點”的思想,認為(在一個失效數(shù)據(jù)集中)從失效1至失效20大致可以用一個模型來描述,從失效21至失效60大致可以用另一個模型來描述。這表明不能期望用某一個或兩個經(jīng)典模型來描述軟件的整個失效過程。
4 普適模型的研究(Research on universal model)
進入21世紀,越來越多的學者將最新的理論研究成果,如:神經(jīng)網(wǎng)絡、支持向量機、灰色理論、混沌理論、粒子群等,應用于軟件可靠性的建模和優(yōu)化,產(chǎn)生了許多新的預測方法。尤其是基于神經(jīng)網(wǎng)絡和支持向量機的方法,取得較好的成果和預測效果[7-12]。該類方法模型多聚焦于短期預測(next-step),對于長期預測(long-term)仍需更進一步的研究。
香港中文大學的Michael Lyu在大量數(shù)據(jù)實驗的基礎上得出:將多個經(jīng)典模型進行綜合預測一般比單個經(jīng)典模型的預測效果更好,且抗數(shù)據(jù)“噪聲”能力強,不但對短期預測有效,長期預測效果尤為明顯。所以多模型綜合精度更高,穩(wěn)健性更好。研究者先后提出用貝葉斯方法、聚類方法、神經(jīng)網(wǎng)絡、時間序列、模糊數(shù)學、泛函網(wǎng)絡等用于軟件可靠性綜合預測,取得良好的效果[13-16]。
5 綜合預測框架及進一步研究方向(Comprehensive
prediction framework and further research
direction)
綜合多個經(jīng)典模型的預測性能是解決經(jīng)典模型不一致性問題的一個很好的思路。但存在如下問題:(1)待綜合的單個經(jīng)典模型多數(shù)是根據(jù)主觀經(jīng)驗確定或直接指定,對于選擇哪些經(jīng)典模型進行綜合缺乏深入的研究。(2)在對多個經(jīng)典模型進行綜合預測過程中賦權是一次性,導致仍然存在“變點”影響預測精度,缺乏對動態(tài)賦權策略的研究。(3)對多個經(jīng)典模型進行綜合預測的策略多數(shù)是線性的,對于非線性綜合有待進一步的研究。
可以將軟件故障過程看作一個不確定系統(tǒng),利用不確定理論、技術和方法對此不確定系統(tǒng)進行分析,構建軟件可靠性綜合預測框架:包括經(jīng)典模型的評價準則及方法、待綜合的經(jīng)典模型選擇的方法、經(jīng)典模型綜合的方法、綜合模型的驗證與應用,如圖1所示。
圖1 軟件可靠性綜合預測框架
Fig.1 The framework of software reliability
comprehensive prediction
經(jīng)典模型評價:通過對已有軟件可靠性模型評價準則的梳理,建立準則庫,分析不同準則之間的相關程度,并根據(jù)實際需要建立準則集,不同準則集保持相對獨立。
模型選擇策略:主要采取數(shù)據(jù)驅動式模型選擇。將經(jīng)典模型劃分成樂觀預測模型集和悲觀預測模型集,根據(jù)一定的評價準則,采用決策樹、集團序等方法分別從樂觀預測模型集和悲觀預測模型集中選擇排序最靠前的模型參與綜合預測。
綜合策略與方法:根據(jù)預測時間要求,分為短期預測(next-step)和長期預測(long-term)兩種綜合策略;根據(jù)算法性質,分為線性綜合和非線性綜合兩種策略。這兩種策略基本可以滿足不同軟件不同環(huán)境的要求。線性綜合涉及不同方法下的賦權問題,靜態(tài)權重適合長期預測,動態(tài)權重通過不斷感知軟件環(huán)境的變化更新權重信息,能夠很好解決“變點”問題,提高短期預測的精度。非線性綜合可采用神經(jīng)網(wǎng)絡、遺傳算法、泛函網(wǎng)絡等基于知識的方法在軟件可靠性預測中的應用,但這些方法存在“過度學習”的風險,不適合長期預測。
6 結論(Conclusion)
結合不確定理論、技術和方法,為軟件可靠性預測研究提供了新的思路。本文對經(jīng)典隨機過程模型進行了梳理,對解決經(jīng)典模型不一致性問題的模型選擇和普適模型研究進行了述評,指出了綜合預測仍存在的問題,提出了綜合預測研究框架和進一步的研究方向,為軟件可靠性研究提供新的路徑。
參考文獻(References)
[1] 徐仁佐.軟件可靠性工程[M].北京:清華大學出版社,2007:1-3.
[2] Amin,A.,Grunske,L.,Colman,A..An approach to software
reliability prediction based on time series modeling[J].Syst.
Softw,2013,86:1923-1932.
[3] Raj Kiran,N.,Ravi,V..Software reliability prediction by soft
computing techniques[J].Syst.Softw,2008,81:576-583.
[4] Sharma,K.,Garg,R.,Nagpal,C.K.,Garg,R.K..Selection of
optimal software reliability growth models using a distance based
approach[J].IEEE Trans.Reliab,2010,59:266-276.
[5] Dharmasena,L.S.,Zeephongsekul,P.,Jayasinghe,C.L..Software
reliability growth models based on local polynomial modeling
with kernel smoothing[C].2011IEEE 22nd International
Symposium on Software Reliability Engineering,2011:220-229.
[6] 李克文,劉洪太.基于時序數(shù)據(jù)的軟件可靠性模型組合新方
法[J].計算機應用,2014,34(S2):208-210;249.
[7] Hu,Q.,Xie,M.,Ng,S.,Levitin,G..Robust recurrent neural
network modeling for software fault detection and correction
prediction[J].Reliab.Eng.Syst.Saf,2007,92:332-340.
[8] 崔正斌,湯光明,樂峰.遺傳優(yōu)化支持向量機的軟件可靠性預
測模型[J].計算機工程與應用,2009,45(36):71-74.
[9] 靳昂,等.基于灰色模型的軟件可靠性建模[J].計算機應用,
2009,29(3):690-694.
[10] 張柯,張德平,汪帥.軟件可靠性混沌神經(jīng)網(wǎng)絡模型[J].計算機
科學,2014,V41(4):172-177.
[11] 侯雪梅,等.基于量子粒子群的軟件模糊可靠性分配模型[J].
信息工程大學學報,2013,14(1):124-128.
[12] Kumar,P.,Singh,Y..An empirical study of software reliability
prediction using machine learning techniques.Int.J.Syst.Assur.
Eng.Manag,2012,3:194-208.
[13] Yu-Shen Su,Chin-Yu Huang.Neural-network-based
approaches for software reliability estimation using dynamic
weighted combinational models[J].Journal of Systems and
Software,2007,80(4):606-615.
[14] 滕云龍,師奕兵,康榮雷.軟件可靠性組合預測模型研究[J].
計算機應用,2008,28(2):3092-3094.
[15] 王二威,侯福均,鄭述招.基于隸屬度的軟件可靠性綜合預
測方法[J].微型機與應用,2011,30(15):4-7.
[16] 王二威,吳祈宗.基于泛函網(wǎng)絡的軟件可靠性多模型綜合預
測方法[J].計算機科學,2015,42(10):175-179.
作者簡介:
王二威(1985-),男,碩士,講師.研究領域:決策理論與方
法,軟件工程.