張丹 宋曉秋



【摘要】 針對軟件質量評價的問題,提出了一種基于遺傳算法和BP人工神經網絡的軟件質量評價方法,建立了軟件質量評價模型,提高軟件質量評價的準確性。利用遺傳算法的全局隨機搜索能力彌補了網絡容易陷入局部最優解的問題。最后通過實驗得到的數據結果,證明了該方法能夠更加準確的評估軟件質量。
【關鍵詞】 遺傳算法 BP神經網絡 軟件質量評價
隨著云計算、大數據等新理念、新技術被應用到了軟件當中,人們對軟件質量的要求變得越來越高。對于軟件產品來說,越早的獲得軟件產品的質量水平,就能夠越早的減少軟件產品開發維護的失敗因素。而軟件質量評價[1]也漸漸成為保證軟件質量的一個重要手段。軟件質量評價是一個復雜的系統工程,如何深入研究軟件質量評價的模型和方法,尋找一個準確性高的軟件質量評價方法是十分重要的,也是對軟件質量進行更深理解和更好控制的重要手段之一,是控制軟件開發、提高軟件質量的有效保證。
軟件質量要求的提高增加了軟件評價技術研究的重要性,因為只有能夠被定性評價的軟件才是可被控制的。目前對軟件質量評價的方法過于主觀性,如層次分析法、模糊綜合評價法,或通過簡單的數學運算來評價軟件質量,忽略了各度量元和軟件質量之間的非線性的關系,這樣會有很大的主觀因素的干擾,所得到的結果也難以真正的反應軟件的質量的好壞。在傳統的軟件質量度量方法中,當度量的數據量很大時,無法得到精確地評價結果且計算過程復雜,求解繁瑣,這些方法也缺乏自學習的能力。
人工神經網絡具有自學習自適應的能力,可以解決傳統方法無法解決的問題,但由于神經網絡自身存在很多的限制和不足,如網絡的訓練時間較長、易收斂于局部極小值等。本文將用遺傳算法[3]對神經網絡進行改進[4],將改進后的BP人工神經網絡應用到軟件質量的評價中,通過研究軟件質量評價的特征,建立了基于遺傳算法和BP神經網絡的軟件質量評價系統[5] [6],先通過遺傳算法對神經網絡的初始權值閾值進行訓練確定,然后再利用BP神經網絡進行精確的訓練,最后獲得結果。實驗證明該方法能夠科學準確的對軟件的質量進行定量的評估,也能夠克服BP神經網絡收斂速度慢、易陷入局部最小值的缺陷。
一、軟件質量評價指標體系
軟件質量評價是為了揭示當前狀態的軟件質量[7] [8],為軟件質量的管理提供有力的手段。軟件質量評價是使用合適的技術對被評價軟件的質量特性、子特性等進行度量并對度量的結果進行評估,從而給出軟件產品能否滿足特定需求的評價結果。軟件質量評價可以定量的給出軟件的質量水平,可以根據軟件質量的評價結果數據對軟件進行相應的管理和質量改進。
BP神經網絡具有很強的非線性映射和自適應的學習能力,但由于BP神經網絡是基于梯度的算法,收斂速度慢,因此將遺傳算法與BP神經網絡相結合,解決BP神經網絡訓練時間長和易陷入局部最優的缺點,有效地克服傳統軟件質量度量方法的不足之處[9]。
軟件質量的評價是一個復雜的過程,評價指標涉及面廣、不確定性因素多、難以量化,因此至今沒有一個統一的標準。作為軟件質量評價模型,需要通過對一組軟件質量度量元指標進行監測分析,以此來綜合反映軟件質量的情況,因此建立科學地軟件質量評價指標是建立軟件質量評價模型的重要環節。
本文在設計軟件質量評價指標體系時,綜合考慮了基于設計分析、軟件測試和軟件內部結構等多方面的部分對軟件可靠性與安全性進行評價技術的研究。在參考《軍用軟件安全性設計指南》、《C/C++語言編程安全子集》、軟件代碼結構的指標及軟件測試相關信息的基礎上,初步構建了航天系統軟件質量評價指標體系,如圖1所示。
針對航天系統軟件質量評價指標體系,將各個因素自上而下劃分為三個層次,最高層即目標層為軟件質量綜合評價,作為神經網絡的輸出層;中間層為基于設計分析的評價、基于軟件內部結構的評價和基于軟件測試的評價;準則層為圖中的評價指標,作為神經網絡的輸入。
創建一個三層的BP神經網絡,神經網絡的輸入變量是上述指標體系中的所有指標,網絡的輸出層結點數為1。采用樣本數據對神經網絡進行訓練,訓練完畢后得到滿足訓練精度的權重系數矩陣,便可通過所得到的權重系數矩陣,利用待測軟件的數據信息對軟件進行質量評價,得到的軟件質量評價結果減少了主觀隨意性和思維上的不確定性,結果更加科學、準確。
二、人工神經網絡
人工神經網絡是人工智能領域的一個重要分支,是由大量稱為神經元的信息單元連接組成的復雜網絡,可以模擬人腦神經網絡對信息處理機制的智能式的計算模式。它有著很強的自適應性和自組織能力。對軟件質量評價模型的構造主要是根據已知的軟件數據,對軟件質量評價模型中的各種因素之間的相互關系進行分析研究。
BP網絡[10]是使用最多的一種神經網絡。BP神經網絡由D.Ruvmelhar和McClelland于1985年提出,是一種基于誤差反向傳遞算法的前向多層神經網絡。 BP神經網絡通常由一個輸入層、一層或多層隱含層和一個輸出層構成,各層神經元間由連接權重相連接在一起。每一層內神經元的輸出均傳送到下一層,這種傳送由連接權來達到增強、減弱或抑制這些輸出地作用,除了輸入層的神經元之外,隱蔽層和輸出層神經元的凈輸入是前一層神經元輸出地加權和。
在設計BP網絡時,一般考慮設計一個隱層,當一個隱層節點很多仍不能改善網絡性能時,才考慮再增加一層。BP神經網絡每次學習訓練過程都是由每一階段對權重和閾值的更新組成,其目的就是將目標輸出與實際輸出所得到的輸出誤差的平方和最小化。
BP神經網絡是一種梯度下降算法[11],在實際的應用中還存在很多不足:①BP神經網絡的誤差函數是一種沿梯度下降方向的單點搜索算法,很容易陷入局部極小值;②BP神經網絡初始參數的隨機性會導致網絡收斂速度慢,訓練容易陷入癱瘓狀態;③BP神經網絡的初始結構參數隨機,對權值學習的結構也會存在一定的隨機性。

基于上述原因,將遺傳算法引入到BP神經網絡中,利用遺傳算法高效的自動過程設計輔助神經網絡。
三、基于遺傳算法的BP神經網絡軟件質量度量
3.1算法的簡介
遺傳算法是一種基于自然選擇和群體遺傳進行尋優的算法,它模擬了自然選擇和遺傳過程中的繁殖、雜交和突變的現象,將遺傳算法與神經網絡結合,利用遺傳算法的多點搜索性可使其具有全局搜索型,從而可使搜索結果免于收斂于局部最優解,獲得全局最優解。利用遺傳算法改進BP神經網絡,可彌補BP神經網絡容易陷入局部極小值和收斂速度慢等缺陷[12]。
編碼方法:將要構建的神經網絡中的所有權值作為一組染色體。編碼長度為N,基為1-N的實數按順序排列,如N=5,則一個染色體可表示為:[5.2,2.11,4.435,1.598,2.456]。
交叉算法:將交叉算子作用于群體,以某概率相互交換某個個體之間的部分染色體,采用單點交叉的方法進行隨機配對。在染色體上隨機產生兩個點,將兩個染色體的兩個位點之間的基因片段進行交換。
變異算法:變異算法是針對個體的某個或某些基因位上的基因值按某較小的概率進行改變,從而產生新的個體。
精英保留:選取m個最優的染色體作為精英庫,每次迭代當代種群中的最優染色體,如果比精英庫中的染色體更優,則將其存入庫中替代精英庫中最差的染色體,然后隨機選擇一個染色體替代為當代種群中的最差染色體,實現精英保留。
自適應:采用線性遞增公式計算變異率,采用線性遞減公式計算交叉率。
其中Pm1,Pm2為變異率最小值和最大值。Pc1,Pc2為交叉率最小值和最大值。gen為當前迭代次數,maxgen為最大迭代次數。
3.2 算法的設計與實現
該算法的主要思想是將遺傳算法與神經網絡相結合,通過遺傳算法對神經網絡的初始權重和閾值進行求解,在求解過程中采用自適應算法計算變異率和交叉率,并在神經網絡的訓練過程中采用精英保留的方法進行訓練。具體算法過程如下:
步驟1:讀取算例數據。
步驟2:設置遺傳算法的參數。
步驟3:初始化染色體,令i=1。
步驟4:執行第i次迭代。
步驟5:采用自適應算法計算變異率和交叉率。
步驟6:對染色體進行變異操作。
步驟7:對染色體進行交叉操作。
步驟8:對染色體進行解碼。
步驟9:用染色體基因對BP神經網絡的初始權重和閾值進行賦值。
步驟10:訓練BP神經網絡。
步驟11:計算訓練誤差,并以此為目標函數。
步驟12:以目標函數為評價準則,更新精英庫并保留精英。
步驟13:如果i<迭代次數,那么i=i+1,,轉4,否則轉14。
步驟14:輸出結果,算法結束。
算法的流程圖如圖2所示:
四、 實驗
通過以上研究及理論分析,我們將通過一些實際的實驗來驗證研究的結論。利用Matlab工具箱函數設計改進的BP神經網絡模型,對軟件的質量數據進行學習,誤差基本上能達到0.01的精度,BP網絡輸入層到隱含層的傳遞函數采用transig函數,隱含層到輸出層的傳遞函數采用purelin函數,網絡的精度為0.000000001,訓練次數為1000,訓練誤差小于目標誤差訓練結束。遺傳算法的運行參數為:遺傳算法種群規模為50,迭代次數為200,交叉概率范圍0.5~0.85,變異概率范圍為0.05~0.15。
首先從3個不同的航天系統軟件中選擇140個樣本作為仿真的數據,其中測試樣本40,訓練樣本100個,導入建立的評價模型中,然后初始化BP網絡,并設置訓練的各項參數,接著進行樣本學習,進行測試并輸出評估結果。
將未結合遺傳算法的神經網絡作為對比模型,對于未引入遺傳算法的BP神經網絡的預測結果和將遺傳算法與神經網絡相結合改進后的軟件質量的預測結果如圖3所示。
對于對于未引入遺傳算法的BP神經網絡和將遺傳算法與神經網絡相結合改進后的軟件質量的相對誤差和絕對誤差結果如圖4所示。
從實際的評價結果來看,建立的基于遺傳算法和神經網絡的軟件質量評價系統的評價結果精度較單純的BP神經網絡的預測結果更為準確可信在可接受范圍內,是一個合理可行的軟件質量預測方法。
五、結束語
本文將BP神經網絡與遺傳算法相結合建立了軟件質量評價模型,充分發揮了二者的優勢,克服了BP神經網絡中局部極小的缺陷,評價結果相對準確、客觀、科學、有一定的研究價值。利用MATLAB對實際的數據進行實證分析,結果表明所建立的評價模型誤差小,評估更加準確,具有較好的實際應用效果。

參 考 文 獻
[1]廖錦舜,何锫.基于模糊神經網絡的軟件質量評價方法[D].計算機技術與發展,2006,2
[2] 袁曾任.人工神經網絡及其應用[M].北京:清華大13 學出版社,2000.
[3]王小平,曹立明.遺傳算法——理論、應用于軟件設計實現[M].西安:西安交通大學出版社,2002
[4]蚩志鋒,閏珍珠,黃彪.基于遺傳算法與BP算法的水質評價模型[J].重慶科技學院學報:自然科學版,2009,11(1):122—124.
[5]盧雯嘉,童杰等.基于遺傳算法和BP神經網絡的大電力客戶信用評價模型[J].重慶大學學報,2009,34(8).
[6]蚩志鋒。閏珍珠,黃彪.基于遺傳算法與BP算法的水質評價模型[J].重慶科技學院學報:自然科學版,2009,11(1):122—124.
[7]楊愛民,張文祥.軟件質量及其量化評價方法[J].計算機工程與設計,2006,27(21):39-88.
[8]黃錫滋.軟件可靠性安全性與質量保證[M].北京:電子工業出版社,2002:32-65.
[9]王李進,吳保國,鄭德祥.基于人工神經網絡的軟件質量評價[J].計算機應用與軟件,2008,25(12):134-150.
[10] 肖國榮.BP神經網絡在基金價格預測中的應用研究[J].計算機仿真,2011,28(3):120—123.
[11]李建珍.基于遺傳算法的人工神經網絡學習算法[J].西北師范大學學報,2002,38(2).
[12]周明,李樹棟.遺傳算法原理及應用[M].北京:國防工業出版社,1999.