王二威,崔春生,田艷
(1.北京理工大學(xué)珠海學(xué)院管理與經(jīng)濟(jì)學(xué)院,廣東珠海519085;2.河南財(cái)經(jīng)政法大學(xué)計(jì)算機(jī)學(xué)院,河南鄭州450002)
隨著計(jì)算機(jī)軟件進(jìn)入越來(lái)越多的領(lǐng)域,軟件可靠性問(wèn)題已經(jīng)引起了人們的普遍重視,軟件可靠性的研究也成為人們關(guān)注的焦點(diǎn)。到目前為止軟件可靠性模型的研究取得了很大的成果,提出了近百種軟件可靠性模型,如JM模型、GO模型等,這里稱此類模型為經(jīng)典模型。由于這些模型在對(duì)軟件可靠性進(jìn)行評(píng)估時(shí)根據(jù)開(kāi)發(fā)環(huán)境等做了很多的假設(shè),而軟件在實(shí)際運(yùn)行時(shí)卻受到各種隨機(jī)因素的綜合作用,使得軟件的故障多種多樣,情況比較復(fù)雜。用一些固定的假設(shè)去套用各種各樣的軟件環(huán)境,顯然是不合適的;而針對(duì)每一種情況都去開(kāi)發(fā)一個(gè)新的模型既費(fèi)時(shí)又費(fèi)力[1]。
軟件可靠性研究發(fā)展到90年代,人們?cè)诮?jīng)典模型的基礎(chǔ)上將更新的理論如:神經(jīng)網(wǎng)絡(luò)、貝葉斯網(wǎng)絡(luò)、遺傳算法、支持向量機(jī)、混沌理論、泛函網(wǎng)絡(luò)等應(yīng)用于軟件可靠性建模和優(yōu)化,產(chǎn)生了許多新的預(yù)測(cè)方法。由于神經(jīng)網(wǎng)絡(luò)能夠從背景不清楚和不完全的數(shù)據(jù)中自動(dòng)提取反映事物內(nèi)在規(guī)律和特點(diǎn)的知識(shí),并能夠應(yīng)用通過(guò)學(xué)習(xí)所獲取的知識(shí)來(lái)進(jìn)行問(wèn)題的求解,比較多的研究者關(guān)注于基于神經(jīng)網(wǎng)絡(luò)的方法[2-6]。基于神經(jīng)網(wǎng)絡(luò)的軟件可靠性模型可以對(duì)不同數(shù)據(jù)不同復(fù)雜情況有針對(duì)性地構(gòu)建模型,通過(guò)訓(xùn)練確定參數(shù);但它不能很直觀的去解釋網(wǎng)絡(luò)權(quán)重[2],且網(wǎng)絡(luò)結(jié)構(gòu)、歸一化方法、激勵(lì)函數(shù)都會(huì)對(duì)模型預(yù)測(cè)性能產(chǎn)生很大的影響,Cai[6]就在大量對(duì)比實(shí)驗(yàn)的基礎(chǔ)上指出,大多數(shù)情況下基于神經(jīng)網(wǎng)絡(luò)的方法很難得出滿意的量化預(yù)測(cè)結(jié)果。
由于單個(gè)經(jīng)典模型的局限性以及基于新理論方法的復(fù)雜性和不成熟性,軟件可靠性預(yù)測(cè)仍然還有很多問(wèn)題需要解決:一是建立能夠普遍應(yīng)用的模型,二是設(shè)計(jì)一套行之有效的模型選擇方法,能夠讓工程人員從眾多的軟件可靠性模型中選擇出最適合實(shí)施項(xiàng)目的模型。
Bev Littlewood在對(duì)大量軟件項(xiàng)目研究的基礎(chǔ)上提出了“變點(diǎn)”的思想[7],表明不能期望用某一個(gè)模型來(lái)描述軟件的失效過(guò)程,而從另一個(gè)側(cè)面表明可以用多個(gè)模型來(lái)描述軟件的失效過(guò)程。香港中文大學(xué)的Michael Lyu首先提出多模型綜合預(yù)測(cè)的思想[8],即:專注于將已有的經(jīng)典軟件可靠性模型充分有效的利用起來(lái),將多個(gè)單一的經(jīng)典模型的預(yù)測(cè)優(yōu)勢(shì)“綜合”起來(lái)。他在實(shí)驗(yàn)的基礎(chǔ)上提出多模型綜合一般比單個(gè)經(jīng)典模型的預(yù)測(cè)效果更好,精度更高,而且抗數(shù)據(jù)“噪聲”能力強(qiáng),不但對(duì)短期預(yù)測(cè)有效,長(zhǎng)期預(yù)測(cè)效果更為明顯。而這正是現(xiàn)實(shí)軟件工程所需要的,也是發(fā)展的一個(gè)趨勢(shì)。
從文獻(xiàn)分析中可以看出,從Lyu首次提出多模型綜合的思想以后,先后出現(xiàn)了十多種綜合預(yù)測(cè)模型,大致分為3類:Lyu的線性綜合模型,基于神經(jīng)網(wǎng)絡(luò)的預(yù)測(cè)模型以及其他。
Lyu在其文章[8]中首先提出了更有效地利用現(xiàn)有的經(jīng)典模型,將多個(gè)模型綜合起來(lái)進(jìn)行軟件可靠性的分析。首先根據(jù)軟件測(cè)試運(yùn)行環(huán)境從經(jīng)典模型中確定一個(gè)基本的模型集;然后從模型集中選擇那些預(yù)測(cè)的偏好可以相互抵消的模型,并分別用選定的單個(gè)模型進(jìn)行軟件可靠性的預(yù)測(cè);最后確定一些準(zhǔn)則對(duì)選定的模型分別賦予不同的權(quán)重從而形成一個(gè)線性的綜合模型。Lyu給出了綜合模型的一般表達(dá)式:
Lyu的線性綜合模型具有很重要的意義,它提供了研究軟件可靠性的一種新的思路,即是每個(gè)單一經(jīng)典模型都有很大的局限而且精度也不夠高,那么就把這些經(jīng)典模型綜合起來(lái),以更有效的應(yīng)用這些經(jīng)典模型,進(jìn)而取得更好的預(yù)測(cè)效果。試驗(yàn)證明這種方法有很好的預(yù)測(cè)效果,有很光明的應(yīng)用前景。
此類預(yù)測(cè)模型[9-14]充分利用神經(jīng)網(wǎng)絡(luò)的自適應(yīng)、自學(xué)習(xí)能力,以幾個(gè)經(jīng)典模型的預(yù)測(cè)值作為神經(jīng)網(wǎng)絡(luò)的輸入,以實(shí)際值作為輸出,構(gòu)建網(wǎng)絡(luò)結(jié)構(gòu),然后利用歷史數(shù)據(jù)對(duì)網(wǎng)絡(luò)進(jìn)行訓(xùn)練以確定網(wǎng)絡(luò)權(quán)重,建立預(yù)測(cè)模型。
基于神經(jīng)網(wǎng)絡(luò)的預(yù)測(cè)模型有3個(gè)明顯的問(wèn)題:1)神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)的確定往往需要大量訓(xùn)練,每一個(gè)軟件項(xiàng)目可能會(huì)需要不同結(jié)構(gòu)的神經(jīng)網(wǎng)絡(luò),而直接確定網(wǎng)絡(luò)的結(jié)構(gòu)則太主觀;2)神經(jīng)網(wǎng)絡(luò)權(quán)重缺乏解釋性;3)經(jīng)典模型的選擇比較主觀。
鄒豐忠等人提出用貝葉斯方法[15-17]實(shí)現(xiàn)多模型的自動(dòng)混合、自動(dòng)選擇,用貝葉斯理論進(jìn)行權(quán)值的計(jì)算,將權(quán)值作為貝葉斯超參數(shù),根據(jù)實(shí)際數(shù)據(jù)進(jìn)行超參數(shù)更新,實(shí)現(xiàn)多模型的綜合預(yù)測(cè)。馬颯颯等人提出了基于模型聚類的多模型綜合預(yù)測(cè)方法[18],其基本思想是:具有相似性的失效數(shù)據(jù)適用于同一軟件可靠性模型。原菊梅[19]等運(yùn)用包含度理論動(dòng)態(tài)確定權(quán)重來(lái)進(jìn)行預(yù)測(cè)。各類綜合模型的比較分析如表1所示。
軟件可靠性多模型綜合預(yù)測(cè)研究框架如圖1所示。
首先是經(jīng)典模型的選擇,找到科學(xué)合理的選擇準(zhǔn)則體系是該階段的關(guān)鍵。其次是單個(gè)經(jīng)典模型權(quán)重的確定,即是找到在不同時(shí)期哪些經(jīng)典模型有更好的預(yù)測(cè)效果,對(duì)整個(gè)綜合模型的貢獻(xiàn)最大,該階段是多模型綜合的核心。文獻(xiàn)中出現(xiàn)的綜合模型的核心和不同之處皆在于此,通過(guò)各種理論、工具和算法來(lái)精確有效的確定權(quán)重。再次是將選擇的單個(gè)經(jīng)典模型組合起來(lái)建立綜合模型,包括線性綜合和非線性的綜合。線性綜合模型構(gòu)建簡(jiǎn)單快速,而且預(yù)測(cè)精度比單個(gè)經(jīng)典模型要好;非線性綜合模型構(gòu)建復(fù)雜,需要進(jìn)行大量訓(xùn)練,但是可能獲得較高的預(yù)測(cè)精度??梢愿鶕?jù)軟件工程的實(shí)際需求,對(duì)于預(yù)測(cè)精度要求不是很高的可以采用線性綜合模型,對(duì)于預(yù)測(cè)精度要求較高的可以采用線性和非線性綜合相結(jié)合的方式進(jìn)行預(yù)測(cè)。最后是建立合理的評(píng)價(jià)準(zhǔn)則對(duì)綜合模型的預(yù)測(cè)性能進(jìn)行評(píng)價(jià)。現(xiàn)有的評(píng)價(jià)準(zhǔn)則比較單一,如平均誤差(AE:average error)[20]、平均偏差(AB:average bias error)[20]、均方根誤差(RMSE:root mean square error)[8]等,有待形成一套評(píng)價(jià)體系以便從各個(gè)方面考察綜合模型的預(yù)測(cè)性能。
表1 各類綜合模型的比較分析Tab.1Comparison of different combational models
圖1 軟件可靠性多模型綜合預(yù)測(cè)研究框架Fig.1Research framework of multi-model for software reliability prediction
從現(xiàn)有文獻(xiàn)分析可以看出,已有的研究比較注重采用各種方法來(lái)確定單個(gè)模型的權(quán)重[8-19],多模型綜合多為線性綜合[8-9,15-19],對(duì)非線性綜合研究的比較少[11-13];另外對(duì)經(jīng)典模型的選擇準(zhǔn)則和綜合模型的評(píng)價(jià)準(zhǔn)則只是進(jìn)行了一些簡(jiǎn)單的說(shuō)明,缺乏比較系統(tǒng)的研究;實(shí)際上,經(jīng)典模型是多模型綜合的基礎(chǔ),經(jīng)典模型的選擇在構(gòu)建綜合模型過(guò)程中是至關(guān)重要的,需要進(jìn)行比較深入、系統(tǒng)的探討和研究。
基于“綜合”的思想,對(duì)文獻(xiàn)中軟件可靠性多模型綜合預(yù)測(cè)方法進(jìn)行了梳理,大致分為3類:Lyu的線性綜合模型簡(jiǎn)單有效且具有普適性,但是單個(gè)經(jīng)典模型權(quán)重的確定比較主觀;基于神經(jīng)網(wǎng)絡(luò)的模型,網(wǎng)絡(luò)結(jié)構(gòu)的構(gòu)建比較主觀,網(wǎng)絡(luò)權(quán)重缺乏解釋性,普適性較差;其他模型中或者理論性較強(qiáng),缺乏數(shù)據(jù)論證,或基于一定的假設(shè)條件。在對(duì)比分析的基礎(chǔ)上提出了軟件可靠性多模型“綜合”預(yù)測(cè)的研究框架,包括模型選擇、單個(gè)經(jīng)典模型權(quán)重確定、多模型綜合、模型評(píng)價(jià)4個(gè)階段,其中單個(gè)經(jīng)典模型權(quán)重的確定和線性綜合是當(dāng)前研究的熱點(diǎn),非線性綜合以及經(jīng)典模型的選擇準(zhǔn)則有待進(jìn)一步深入系統(tǒng)的研究。
[1]徐仁佐.軟件可靠性工程[M].北京:清華大學(xué)出版社,2007.
[2]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.
[3]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.
[4]Sherer S A.Software fault prediction[J].Journal of System and Software,1995,29(2):97-105.
[5]Sitte R.Compareson of software-reliability-growth predictions:neural networks vs parametric-recalibration[J].IEEE Trasactions on Reliability,1999,48(3):285-291.
[6]Cai K Y,CAI Lin,WANG Wei-dong,et al.On the neural network approach in software reliability modeling[J].The Journal of Systems and Software,2001,58(1):47-62.
[7]Phame H.Reliability handbook[S].NewYork:Springer Verlag,2002.
[8]Lyu M R,Nikora A.Applying reliability models more effectively[J].IEEE Software,1992,9(4):43-52.
[9]吳勤,侯朝楨,原梅菊.軟件可靠性多模型綜合的預(yù)測(cè)方法[J],計(jì)算機(jī)工程,2006,32(23):214-215.WU Qin,HOU Chao-zhen,YUAN Mei-ju.Multi-model prediction method for software reliability[J].Computer Engineering,2006,32(23):214-215.
[10]張雪松,郭平.基于組合神經(jīng)網(wǎng)絡(luò)的軟件可靠性預(yù)測(cè)研究[J].北京師范大學(xué)學(xué)報(bào):自然科學(xué)版,2005,41(6):599-603.ZHANG Xue-song,GUO Ping.A study on software reliability prediction based on ensemble neural network[J].Journal of Beijing Normal University:Natural Science,2005,41(6):599-603.
[11]尹乾.基于神經(jīng)網(wǎng)絡(luò)的軟件可靠性模型研究[D].北京:北京師范大學(xué),2006.
[12]SU Yu-shen,HUANG Chin-yu,CHEN Yi-shin,et al.An artificial neural-network-based approach to software reliability assessment[J].Tencon 2005 IEEE,2005(10):1-6.
[13]SU Yu-shen,HUANG Chin-yu.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īng)網(wǎng)絡(luò)組合模型的軟件可靠性評(píng)估研究[J].計(jì)算機(jī)仿真,2010,27(8):176-180.WANG Gao-zu,LI Wei-hua,XU Yan-ling.Research of softwarereliabilityassessmentbasedonneuralnet combinational model[J].Computer Simulation,2010,27(8):176-180.
[15]鄒豐忠,徐仁佐.軟件可靠性多模型綜合評(píng)估[J].同濟(jì)大學(xué)學(xué)報(bào),2002,30(10):1183-1185.ZOU Feng-zhong,XU Ren-zuo.Multi-model assessment of software reliability[J].Journal of Tongji University,2002,30(10):1183-1185.
[16]鄒豐忠,劉海青,王林.軟件可靠性綜合模型[J].武漢大學(xué)學(xué)報(bào):工學(xué)版,2003,36(1):86-88.ZOU Feng-zhong,LIU Hai-qing,WANG Lin.Integrated model of software reliability[J].Journal of Wuhan University of Hydraulic and Electric Engineering,2003,36(1):86-88.
[17]馬颯颯,寧如云.基于貝葉斯估計(jì)的軟件可靠性綜合評(píng)估模型[J],兵工學(xué)報(bào),2008,29(4):440-445.MA Sa-sa,NING Ru-yun.Software reliability integrated evaluation model based on Bayesian estimation[J].Acta Armamentarili,2008,29(4):440-445.
[18]馬颯颯,陳自力,趙守偉.軟件可靠性及可靠性多模型綜合研究[J],微計(jì)算機(jī)信息,2006,22(6-3):263-265.MASa-sa,CHENZi-li,ZHAOShou-wei.Integrated research on software reliability and reliability multi-models[J].Contral and Automation,2006,22(6-3):263-265.
[19]原菊梅,侯朝楨,王小藝,等.基于包含度理論的軟件可靠性多模型綜合動(dòng)態(tài)預(yù)計(jì)[J].計(jì)算機(jī)應(yīng)用,2007,27(2):387-393.YUAN Ju-mei,HOU Chao-zhen,WANG Xiao-yi,et al.Multi-modelsynthesisdynamicpredictionofsoftware reliability based in inclusion degree theory[J].Journal of Computer Applications,2007,27(2):387-393.
[20]Malaiya Y K,Karunanithi N.Predictability measures for softwarereliabilitymodels[C]//FourteenthAnnualInternational ComputerSoftwareandApplicationsCoference,Chicago1990:7-12.