符興安
(楚雄師范學(xué)院數(shù)學(xué)與統(tǒng)計(jì)學(xué)院,云南 楚雄 675000)
基于小波神經(jīng)網(wǎng)絡(luò)對軟件可靠性模型的研究*1
符興安
(楚雄師范學(xué)院數(shù)學(xué)與統(tǒng)計(jì)學(xué)院,云南 楚雄 675000)
軟件可靠性是軟件工程的一個(gè)重要的研究課題。軟件可靠性模型可以預(yù)測軟件產(chǎn)品的缺陷達(dá)到率。針對軟件的缺陷達(dá)到率,利用小波神經(jīng)網(wǎng)絡(luò)對軟件可靠性進(jìn)行建模。通過理論分析和預(yù)測實(shí)驗(yàn)表明,該方法比Elman神經(jīng)網(wǎng)絡(luò)收斂速度快,逼近效果好,拓寬了軟件可靠性模型的研究方法。
小波;神經(jīng)網(wǎng)絡(luò);軟件可靠性;缺陷達(dá)到率
隨著人們在軟件產(chǎn)業(yè)發(fā)展中對所需要的軟件質(zhì)量的重視,作為軟件質(zhì)量最重要的內(nèi)容之—的軟件可靠性研究已經(jīng)成為軟件工程學(xué)科的一個(gè)重點(diǎn),對軟件可靠性的研究顯得越來越重要。一個(gè)好的可靠性模型可以準(zhǔn)確評估和預(yù)測軟件可靠性行為,這對于軟件資源分配、軟件市場決策有著重要意義[1]。在過去的二十多年,軟件可靠性模型是軟件工程領(lǐng)域中最為活躍的領(lǐng)域之一,有關(guān)軟件可靠性模型與定量評估的研究也已經(jīng)取得顯著成果。目前已經(jīng)有不少軟件可靠性模型,當(dāng)前常用的軟件可靠性模型有Jelinski-Moranda(J-M)模型、Littlewood模型、Goel-Okumoto(GO)模型、Musa-Okumoto模型、Schneidewind(SM)模型、延遲S模型和變形S模型等[2]。這些軟件可靠性模型一般都是基于演繹的建立在經(jīng)典的概率統(tǒng)計(jì)基礎(chǔ)之上的。人們?yōu)榻⒀堇[模型不得不作出一些精確、無歧義的假設(shè),以便將軟件可靠性增長行為這個(gè)復(fù)雜的物理過程進(jìn)行抽象和簡化,從而最終建立預(yù)測模型[3]。這些軟件可靠性模型從實(shí)際軟件開發(fā)的觀點(diǎn)來看,每一個(gè)可靠性模型都基于自己的假設(shè),有一定的實(shí)用性和局限性。局限性主要表現(xiàn)在有些模型數(shù)據(jù)采集的成本昂貴,有些模型難以讓人理解。人工智能技術(shù)和信息技術(shù)的飛速發(fā)展,為可靠性建模提供了眾多的新方法。神經(jīng)網(wǎng)絡(luò)作為揭示軟件可靠性模型的工具,可以用來預(yù)測未來的可靠性指標(biāo)的走向。神經(jīng)網(wǎng)絡(luò)在軟件可靠性建模中的運(yùn)用得到了廣泛研究。如使用BP神經(jīng)網(wǎng)絡(luò)方法預(yù)測了軟件模塊的缺陷數(shù)[3];應(yīng)用RBF網(wǎng)絡(luò)模型和AR模型混合方法進(jìn)行軟件故障的預(yù)測[4];運(yùn)用kohonen網(wǎng)絡(luò)進(jìn)行軟件可靠性模型的選擇[5]等。這些模型由于傳統(tǒng)的算法存在收斂速度慢和易于陷入局部極小問題,限制了神經(jīng)網(wǎng)絡(luò)的應(yīng)用。為了克服傳統(tǒng)神經(jīng)網(wǎng)絡(luò)算法的不足,本文提出了一種利用小波Elman神經(jīng)網(wǎng)絡(luò)對軟件的缺陷達(dá)到率建立預(yù)測模型,經(jīng)驗(yàn)證該模型能夠快速、準(zhǔn)確地預(yù)測軟件的缺陷達(dá)到率。
軟件可靠性模型是過去二十多年軟件工程中一個(gè)活躍的領(lǐng)域。人們提出了許多模型,這些模型都基于一定的假設(shè),存在著一定的局限性。根據(jù)模型的相關(guān)變量,軟件可靠性模型可以分為故障間隔時(shí)間模型和故障數(shù)目模型。
故障間隔時(shí)間模型是軟件可靠性評價(jià)提出的最早的一類模型。故障間隔時(shí)間模型的變量為故障之間的時(shí)間間隔。這種模型通常假設(shè)第 (i-1)個(gè)缺陷和第i個(gè)缺陷模型的時(shí)間遵循著一種數(shù)學(xué)分布。在這種分布中,參數(shù)與第 (i-1)個(gè)故障后遺留在產(chǎn)品中的潛伏缺陷數(shù)目有關(guān)。分布的參數(shù)可以從故障之間觀察到的時(shí)間間隔來進(jìn)行預(yù)測。下一個(gè)故障出現(xiàn)的平均時(shí)間通常是模型中要預(yù)測的參數(shù)。
對于故障數(shù)目模型,變量是在一個(gè)特定時(shí)間間隔內(nèi)的故障或失效數(shù)目。時(shí)間可以是CPU執(zhí)行時(shí)間或日歷時(shí)間。時(shí)間間隔預(yù)先設(shè)定,且在間隔內(nèi)觀察到的缺陷或故障數(shù)目作為隨機(jī)變量。當(dāng)缺陷被檢測和從軟件中移除時(shí),通常希望單位時(shí)間所觀察到的故障數(shù)目將會(huì)減少。保留下來的缺陷或故障數(shù)目是這類模型中估算的關(guān)鍵參數(shù)。
2.1小波的基本概念
小波分析是近20年來發(fā)展起來的一個(gè)新興數(shù)學(xué)分支,是一種多分辨的信號(hào)分析方法。有關(guān)概念簡要復(fù)述如下[6]:
定義1設(shè)φ(t)∈L2(R),如果
則稱φ(t)為一個(gè)小波。也常稱為母小波或基本小波。
定義2對小波φ(t)進(jìn)行伸縮和平移,可得到一族函數(shù)
則稱φu,s(t)為小波φ(t)的小波函數(shù)。(2)式中,s稱為尺度參數(shù),u稱為平移參數(shù)。
定義3設(shè)f(t)∈L2(R),f(t)的連續(xù)小波定義為
定理1如果小波φ(t)滿足
則對任意f(t),g(t)∈L2(R)有
并且,f(t)可以通過(4)式進(jìn)行重構(gòu)
小波變換實(shí)質(zhì)就是通過一個(gè)基本小波函數(shù)φ(x)平移或伸縮構(gòu)成一族小波函數(shù)系去表達(dá)或逼近一個(gè)函數(shù)。
2.2Elman神經(jīng)網(wǎng)絡(luò)模型
Elman神經(jīng)網(wǎng)絡(luò)是Elman于1990提出的.Elman神經(jīng)網(wǎng)絡(luò)是一種4層的遞歸網(wǎng)絡(luò)。Elman神經(jīng)網(wǎng)絡(luò)包括輸入層、中間層 (隱含層)、承接層和輸出層。輸入層單元起到信號(hào)傳輸作用,輸出層單元起線性加權(quán)作用。隱藏層單元的傳遞函數(shù)采用線性或非線性函數(shù),承接層用來記憶隱含層單元前一時(shí)刻的輸出值并返回給輸入。Elman神經(jīng)網(wǎng)絡(luò)在前饋網(wǎng)絡(luò)的隱含層中增加一個(gè)承接層,使系統(tǒng)具有適應(yīng)時(shí)變特性的能力,能夠直接反映動(dòng)態(tài)過程系統(tǒng)的特性。
Elman神經(jīng)網(wǎng)絡(luò)的非線性狀態(tài)空間表達(dá)式為[7]:
式(5)中,y、x、u、xc分別表示m維輸出結(jié)點(diǎn)向量、n維中間層結(jié)點(diǎn)單元向量、r維輸入結(jié)點(diǎn)向量和n維反饋狀態(tài)向量。ω3、ω2、ω1分別表示中間層到輸出層、輸入層到中間層、承接層到中間層的連接權(quán)值。g(·)為輸出神經(jīng)元的傳遞函數(shù),是中間層輸出的線性組合。f(·)為中間層神經(jīng)元的傳遞函數(shù)。Elman神經(jīng)網(wǎng)絡(luò)采用BP算法進(jìn)行權(quán)值修正,學(xué)習(xí)指標(biāo)函數(shù)使用誤差平方和函數(shù)。
2.3小波Elman神經(jīng)網(wǎng)絡(luò)模型
小波神經(jīng)網(wǎng)絡(luò)是小波分析理論與神經(jīng)網(wǎng)絡(luò)理論相結(jié)合的產(chǎn)物。它綜合了小波分析多尺度分析和神經(jīng)網(wǎng)絡(luò)自學(xué)習(xí)的優(yōu)點(diǎn),廣泛應(yīng)用于數(shù)據(jù)挖掘、模式識(shí)別等領(lǐng)域。小波分析理論與神經(jīng)網(wǎng)絡(luò)理論有兩種結(jié)合途徑[8]:
1)松散型結(jié)合,即采用小波分析作為神經(jīng)網(wǎng)絡(luò)的預(yù)處理手段。
2)緊致型結(jié)合,將小波分析和神經(jīng)網(wǎng)絡(luò)兩者直接融合,即用小波基函數(shù)和尺度函數(shù)形成神經(jīng)元。
本文的小波Elman神經(jīng)網(wǎng)絡(luò)是一種小波分析和神經(jīng)網(wǎng)絡(luò)緊致型結(jié)合的模型,這種小波網(wǎng)絡(luò)結(jié)構(gòu)上類似于Elman網(wǎng)絡(luò),也是一種四層回歸神經(jīng)網(wǎng)絡(luò)。小波Elman神經(jīng)網(wǎng)絡(luò)將式 (5)中的中間層神經(jīng)元的傳遞函數(shù)f(·)用小波函數(shù)代替。本文選取的Morlet小波基函數(shù),其形式為:
3.1模型仿真
本文選取文獻(xiàn)[9]中的每周缺陷到達(dá)率的數(shù)據(jù)作為實(shí)例進(jìn)行分析。利用前4個(gè)時(shí)序的數(shù)據(jù)模擬第5個(gè)時(shí)序的數(shù)據(jù),樣本采用滑動(dòng)窗方法處理[10]。取第1~15周的缺陷到達(dá)率數(shù)據(jù)作為神經(jīng)網(wǎng)絡(luò)的訓(xùn)練樣本,第16~20周的缺陷到達(dá)率數(shù)據(jù)為檢驗(yàn)數(shù)據(jù)。網(wǎng)絡(luò)的輸入節(jié)點(diǎn)為3,輸出節(jié)點(diǎn)為1,訓(xùn)練步驟設(shè)為15000;均方誤差為0.0006。網(wǎng)絡(luò)的訓(xùn)練和測試在MATLAB7.0環(huán)境中進(jìn)行。圖1為小波Elman神經(jīng)網(wǎng)絡(luò)用了454步訓(xùn)練達(dá)到預(yù)測目標(biāo)。利用Elman神經(jīng)網(wǎng)絡(luò)進(jìn)行預(yù)測,除神經(jīng)元傳遞函數(shù)外,其余條件均不變。圖2為Elman神經(jīng)網(wǎng)絡(luò)用了11667步訓(xùn)練達(dá)到預(yù)測目標(biāo)。
圖1 小波Elman神經(jīng)網(wǎng)絡(luò)454訓(xùn)練得到的均方誤差
圖2 Elman神經(jīng)網(wǎng)絡(luò)11667步訓(xùn)練得到的均方誤差
表1給出小波Elman神經(jīng)網(wǎng)絡(luò)和Elman神經(jīng)網(wǎng)絡(luò)的模擬數(shù)據(jù)及預(yù)測數(shù)據(jù)。
表1 小波Elman神經(jīng)網(wǎng)絡(luò)和Elman神經(jīng)網(wǎng)絡(luò)的模擬數(shù)據(jù)及預(yù)測數(shù)據(jù)
由圖1和圖2可見小波Elman神經(jīng)網(wǎng)絡(luò)的收斂速度明顯快于Elman神經(jīng)網(wǎng)絡(luò)。由表1可知,小波Elman神經(jīng)網(wǎng)絡(luò)的最大誤差為0.0116,小波函數(shù)具有逐步精細(xì)的描述特性,使得小波Elman神經(jīng)網(wǎng)絡(luò)的逼近效果更好。從而大大提高網(wǎng)絡(luò)模型的建模能力,精度有所提高。
本文將小波Elman神經(jīng)網(wǎng)絡(luò)應(yīng)用到軟件的可靠性模型研究中,為軟件可靠性模型建模提供了一種新的思路。相對于傳統(tǒng)的可靠性模型,該軟件可靠性模型具有非線性,預(yù)測準(zhǔn)確性高,方法靈活的特點(diǎn)。從實(shí)例來分析是可行的,對預(yù)測結(jié)果有較好的適用性。同時(shí),本文提出的模型也具有一定的局限性,它只適用于有一定樣本規(guī)模的模型,無法仿真較少數(shù)據(jù)的模型??傊?,神經(jīng)網(wǎng)絡(luò)理論作為軟件可靠性模型建立的一種新的應(yīng)用方法,對軟件可靠性理論研究的完善起到了十分積極的作用,在軟件可靠性模型的研究中具有廣泛的發(fā)展前景。
[1]Kapur PK,Singh O,Mittal R.Software reliability growth and innovation diffusion models:An interface.Int'1 Journal of Reliability,Quality and Safety Engineering,2004,11(4):339—364.
[2]馬颯颯,陳自力,趙守偉.軟件可靠性及可靠性多模型綜合研究[J].微計(jì)算機(jī)信息. 2006(6):263.
[3]張家海,胡恒章.組合導(dǎo)航系統(tǒng)軟件可靠性的神經(jīng)網(wǎng)絡(luò)靜態(tài)預(yù)測[J].哈爾濱工業(yè)大學(xué)學(xué)報(bào).2002(10):698—699.
[4]馬颯颯,王光平,趙守偉.基于時(shí)間序列的軟件可靠性預(yù)測模型研究[J].計(jì)算機(jī)工程與設(shè)計(jì).2007(6):2520—2523.
[5]吳勤,侯朝楨,原菊梅.基于kohonen網(wǎng)絡(luò)的軟件可靠性模型選擇[J].計(jì)算機(jī)應(yīng)用. 2005(10):2332—2333.
[6]徐宗本,柳重堪.信息工程概論[M].北京:科學(xué)出版社.2002:97—98.
[7]葛哲學(xué),孫志強(qiáng).神經(jīng)網(wǎng)絡(luò)理論與MATLAB R2007實(shí)現(xiàn) [M].北京:電子工業(yè)出版社.2007:136—141.
[8]余健,郭平.基于改進(jìn)小波神經(jīng)網(wǎng)絡(luò)的網(wǎng)絡(luò)流量預(yù)測研究 [J].計(jì)算機(jī)應(yīng)用.2007 (10):2986—2988.
[9]Stephen H.kan著,王振宇,陳利,余揚(yáng)等譯.軟件質(zhì)量工程的度量與模型[M].北京:機(jī)械工業(yè)出版社,2003:147—148.
[10]姚萌,劉淵,周剛.小波神經(jīng)網(wǎng)絡(luò)相結(jié)合的網(wǎng)絡(luò)流量預(yù)測模型[J].計(jì)算機(jī)工程與設(shè)計(jì).2007(11):5135—5159.
(責(zé)任編輯李艷梅)
Research of Software Reliability Model Based on the Wavelet Neural Network
FU Xing'an
(School of Mathematics and Statistics,Chuxiong Normal University,Chuxiong,675000,Yunnan Province)
The software reliability is an important subject of the software engineering field.Software reliabilitymodel can predict defect arrival rate.To predict defect arrival rate,this paper uses the wavelet neural network technology to build software reliability modeling.The demonstration results show that its convergent rate and approaching effectiveness of wavelet neural network is better than Elman neural network.Themethod is feasible to broaden the software reliabilitymodel research methods through theoretical analysis and prediction experiments.
wavelet;;neural network;;software reliability;defect arrival rate
TP183
A
1671-7406(2016)03-0006-05
2016-01-07
符興安 (1964—),男,副教授,研究方向:神經(jīng)網(wǎng)絡(luò)。