符興安
(楚雄師范學院數學與統計學院,云南 楚雄 675000)
基于小波神經網絡對軟件可靠性模型的研究*1
符興安
(楚雄師范學院數學與統計學院,云南 楚雄 675000)
軟件可靠性是軟件工程的一個重要的研究課題。軟件可靠性模型可以預測軟件產品的缺陷達到率。針對軟件的缺陷達到率,利用小波神經網絡對軟件可靠性進行建模。通過理論分析和預測實驗表明,該方法比Elman神經網絡收斂速度快,逼近效果好,拓寬了軟件可靠性模型的研究方法。
小波;神經網絡;軟件可靠性;缺陷達到率
隨著人們在軟件產業發展中對所需要的軟件質量的重視,作為軟件質量最重要的內容之—的軟件可靠性研究已經成為軟件工程學科的一個重點,對軟件可靠性的研究顯得越來越重要。一個好的可靠性模型可以準確評估和預測軟件可靠性行為,這對于軟件資源分配、軟件市場決策有著重要意義[1]。在過去的二十多年,軟件可靠性模型是軟件工程領域中最為活躍的領域之一,有關軟件可靠性模型與定量評估的研究也已經取得顯著成果。目前已經有不少軟件可靠性模型,當前常用的軟件可靠性模型有Jelinski-Moranda(J-M)模型、Littlewood模型、Goel-Okumoto(GO)模型、Musa-Okumoto模型、Schneidewind(SM)模型、延遲S模型和變形S模型等[2]。這些軟件可靠性模型一般都是基于演繹的建立在經典的概率統計基礎之上的。人們為建立演繹模型不得不作出一些精確、無歧義的假設,以便將軟件可靠性增長行為這個復雜的物理過程進行抽象和簡化,從而最終建立預測模型[3]。這些軟件可靠性模型從實際軟件開發的觀點來看,每一個可靠性模型都基于自己的假設,有一定的實用性和局限性。局限性主要表現在有些模型數據采集的成本昂貴,有些模型難以讓人理解。人工智能技術和信息技術的飛速發展,為可靠性建模提供了眾多的新方法。神經網絡作為揭示軟件可靠性模型的工具,可以用來預測未來的可靠性指標的走向。神經網絡在軟件可靠性建模中的運用得到了廣泛研究。如使用BP神經網絡方法預測了軟件模塊的缺陷數[3];應用RBF網絡模型和AR模型混合方法進行軟件故障的預測[4];運用kohonen網絡進行軟件可靠性模型的選擇[5]等。這些模型由于傳統的算法存在收斂速度慢和易于陷入局部極小問題,限制了神經網絡的應用。為了克服傳統神經網絡算法的不足,本文提出了一種利用小波Elman神經網絡對軟件的缺陷達到率建立預測模型,經驗證該模型能夠快速、準確地預測軟件的缺陷達到率。
軟件可靠性模型是過去二十多年軟件工程中一個活躍的領域。人們提出了許多模型,這些模型都基于一定的假設,存在著一定的局限性。根據模型的相關變量,軟件可靠性模型可以分為故障間隔時間模型和故障數目模型。
故障間隔時間模型是軟件可靠性評價提出的最早的一類模型。故障間隔時間模型的變量為故障之間的時間間隔。這種模型通常假設第 (i-1)個缺陷和第i個缺陷模型的時間遵循著一種數學分布。在這種分布中,參數與第 (i-1)個故障后遺留在產品中的潛伏缺陷數目有關。分布的參數可以從故障之間觀察到的時間間隔來進行預測。下一個故障出現的平均時間通常是模型中要預測的參數。
對于故障數目模型,變量是在一個特定時間間隔內的故障或失效數目。時間可以是CPU執行時間或日歷時間。時間間隔預先設定,且在間隔內觀察到的缺陷或故障數目作為隨機變量。當缺陷被檢測和從軟件中移除時,通常希望單位時間所觀察到的故障數目將會減少。保留下來的缺陷或故障數目是這類模型中估算的關鍵參數。
2.1小波的基本概念
小波分析是近20年來發展起來的一個新興數學分支,是一種多分辨的信號分析方法。有關概念簡要復述如下[6]:
定義1設φ(t)∈L2(R),如果
則稱φ(t)為一個小波。也常稱為母小波或基本小波。
定義2對小波φ(t)進行伸縮和平移,可得到一族函數

則稱φu,s(t)為小波φ(t)的小波函數。(2)式中,s稱為尺度參數,u稱為平移參數。
定義3設f(t)∈L2(R),f(t)的連續小波定義為

定理1如果小波φ(t)滿足

則對任意f(t),g(t)∈L2(R)有

并且,f(t)可以通過(4)式進行重構

小波變換實質就是通過一個基本小波函數φ(x)平移或伸縮構成一族小波函數系去表達或逼近一個函數。
2.2Elman神經網絡模型
Elman神經網絡是Elman于1990提出的.Elman神經網絡是一種4層的遞歸網絡。Elman神經網絡包括輸入層、中間層 (隱含層)、承接層和輸出層。輸入層單元起到信號傳輸作用,輸出層單元起線性加權作用。隱藏層單元的傳遞函數采用線性或非線性函數,承接層用來記憶隱含層單元前一時刻的輸出值并返回給輸入。Elman神經網絡在前饋網絡的隱含層中增加一個承接層,使系統具有適應時變特性的能力,能夠直接反映動態過程系統的特性。
Elman神經網絡的非線性狀態空間表達式為[7]:

式(5)中,y、x、u、xc分別表示m維輸出結點向量、n維中間層結點單元向量、r維輸入結點向量和n維反饋狀態向量。ω3、ω2、ω1分別表示中間層到輸出層、輸入層到中間層、承接層到中間層的連接權值。g(·)為輸出神經元的傳遞函數,是中間層輸出的線性組合。f(·)為中間層神經元的傳遞函數。Elman神經網絡采用BP算法進行權值修正,學習指標函數使用誤差平方和函數。
2.3小波Elman神經網絡模型
小波神經網絡是小波分析理論與神經網絡理論相結合的產物。它綜合了小波分析多尺度分析和神經網絡自學習的優點,廣泛應用于數據挖掘、模式識別等領域。小波分析理論與神經網絡理論有兩種結合途徑[8]:
1)松散型結合,即采用小波分析作為神經網絡的預處理手段。
2)緊致型結合,將小波分析和神經網絡兩者直接融合,即用小波基函數和尺度函數形成神經元。
本文的小波Elman神經網絡是一種小波分析和神經網絡緊致型結合的模型,這種小波網絡結構上類似于Elman網絡,也是一種四層回歸神經網絡。小波Elman神經網絡將式 (5)中的中間層神經元的傳遞函數f(·)用小波函數代替。本文選取的Morlet小波基函數,其形式為:

3.1模型仿真
本文選取文獻[9]中的每周缺陷到達率的數據作為實例進行分析。利用前4個時序的數據模擬第5個時序的數據,樣本采用滑動窗方法處理[10]。取第1~15周的缺陷到達率數據作為神經網絡的訓練樣本,第16~20周的缺陷到達率數據為檢驗數據。網絡的輸入節點為3,輸出節點為1,訓練步驟設為15000;均方誤差為0.0006。網絡的訓練和測試在MATLAB7.0環境中進行。圖1為小波Elman神經網絡用了454步訓練達到預測目標。利用Elman神經網絡進行預測,除神經元傳遞函數外,其余條件均不變。圖2為Elman神經網絡用了11667步訓練達到預測目標。

圖1 小波Elman神經網絡454訓練得到的均方誤差

圖2 Elman神經網絡11667步訓練得到的均方誤差
表1給出小波Elman神經網絡和Elman神經網絡的模擬數據及預測數據。

表1 小波Elman神經網絡和Elman神經網絡的模擬數據及預測數據
由圖1和圖2可見小波Elman神經網絡的收斂速度明顯快于Elman神經網絡。由表1可知,小波Elman神經網絡的最大誤差為0.0116,小波函數具有逐步精細的描述特性,使得小波Elman神經網絡的逼近效果更好。從而大大提高網絡模型的建模能力,精度有所提高。
本文將小波Elman神經網絡應用到軟件的可靠性模型研究中,為軟件可靠性模型建模提供了一種新的思路。相對于傳統的可靠性模型,該軟件可靠性模型具有非線性,預測準確性高,方法靈活的特點。從實例來分析是可行的,對預測結果有較好的適用性。同時,本文提出的模型也具有一定的局限性,它只適用于有一定樣本規模的模型,無法仿真較少數據的模型。總之,神經網絡理論作為軟件可靠性模型建立的一種新的應用方法,對軟件可靠性理論研究的完善起到了十分積極的作用,在軟件可靠性模型的研究中具有廣泛的發展前景。
[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].微計算機信息. 2006(6):263.
[3]張家海,胡恒章.組合導航系統軟件可靠性的神經網絡靜態預測[J].哈爾濱工業大學學報.2002(10):698—699.
[4]馬颯颯,王光平,趙守偉.基于時間序列的軟件可靠性預測模型研究[J].計算機工程與設計.2007(6):2520—2523.
[5]吳勤,侯朝楨,原菊梅.基于kohonen網絡的軟件可靠性模型選擇[J].計算機應用. 2005(10):2332—2333.
[6]徐宗本,柳重堪.信息工程概論[M].北京:科學出版社.2002:97—98.
[7]葛哲學,孫志強.神經網絡理論與MATLAB R2007實現 [M].北京:電子工業出版社.2007:136—141.
[8]余健,郭平.基于改進小波神經網絡的網絡流量預測研究 [J].計算機應用.2007 (10):2986—2988.
[9]Stephen H.kan著,王振宇,陳利,余揚等譯.軟件質量工程的度量與模型[M].北京:機械工業出版社,2003:147—148.
[10]姚萌,劉淵,周剛.小波神經網絡相結合的網絡流量預測模型[J].計算機工程與設計.2007(11):5135—5159.
(責任編輯李艷梅)
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—),男,副教授,研究方向:神經網絡。