[摘 要] 粗集與神經網絡的集成反映了人類正常的思維機制#65377;它融合了定性和定量的,精確和非確定的,連續和平行的方法#65377;本文建立了粗集(RS)的BP神經網絡并進行屬性約簡的混合模型,對軟件質量特性的關鍵值和軟件系統質量予以評估,并提出了有效的算法#65377;
[關鍵詞] 神經網絡;粗集;IFD;質量特性
[中圖分類號]F273.2[文獻標識碼]A[文章編號]1673-0194(2009)04-0086-03
1 引 言
我國軟件行業起步于20世紀80年代,近年來發展迅速#65377;但是,我國軟件行業仍然存在許多問題,軟件業被軟件項目的高失敗率所困擾#65377;大多數對軟件質量的度量僅僅從軟件的生命周期中去考慮,很少考慮改善管理者對軟件質量決策的能力#65377;先前的發展失誤之處在于僅僅能夠以某種方式降低開發的費用#65377;為了取得高的質量和可靠性,盡快在軟件產品設計階段采用神經網絡的方法,可以減少這種失誤#65377;
本文的中心是基于粗集的人工神經網絡(ANN)技術的高風險軟件質量錯誤識別,在制訂軟件開發計劃時,最大程度地減少質量失誤風險發生的概率,形成對高風險的管理#65377;
神經網絡是從生物學中生物體的神經系統和大腦的學習中得到靈感的計算過程#65377;BP神經網絡系統具有很多優點,它具有大規模并行分布存儲和處理自組織#65380;自適應和自學習能力,特別適用于需要同時考慮許多因素和條件的不精確和模糊的信息處理問題#65377;神經網絡從理論上可以相當高的精度逼近任意復雜的工程項目系統#65377;但該系統輸入信息的表達空間維數大,計算復雜#65377;因此,目前將粗集理論和神經網絡結合,不失為一個更有效率的算法#65377;粗集與神經網絡的集成反映了人類正常的思維機制#65377;它融合了定性和定量的,精確和非確定的,連續和平行的方法#65377;本文建立了粗集的神經網絡并進行屬性約簡的混合模型,對于軟件質量的評估,提出了有效的算法#65377;
2 建立質量結構模型
2. 1軟件質量特性分析
本文的目的是開發一種預知軟件過錯的模型,能夠度量軟件的質量特征,在作決策時,能夠及時作出質量預測#65377;基于此,本文建立一套有效的質量模型#65377;
2. 2建立質量結構模型
本文是基于粗集的BP神經網絡的質量分析,對于管理者可以提供一種決策支持#65377;這個模型主要是粗糙集預處理神經網絡系統,即用RS理論對ANN輸入端的樣本約簡,尋找屬性間關系,約簡掉與決策無關的屬性,簡化輸入信息的表達空間維數,簡化ANN結構#65377;
Karunanithi等提出了一種在程序模型中,用神經網絡逼近大量預知過錯的方法,總結了神經網絡的基本特征:它由許多被稱作神經元的處理單元組成,完成從輸入到輸出的計算;有許多權與神經元連接將網絡知識編碼;網絡使用學習算法,讓它自動開發內在請求#65377;
本文討論神經網絡的反向傳播算法,來預測軟件質量的高低#65377;神經網絡需要失敗的歷史和軟件復雜性度量作為輸入#65377;使用該輸入樣本,神經網絡自動開發其內在失敗過程模型預測未來的風險#65377;在神經網絡中,知識代表了權的連接,為分類模型找到最好的權重是不受拘束的優化問題#65377;本文在此理論基礎上,建立一種質量評估的模型結構#65377;這個模型由3部分組成,即錯誤辨識單元#65380;神經網絡單元和早期質量預測單元#65377;
2. 2. 1錯誤辨識單元
(1)具體應用主要由歷史數據資料及分析需要確定,然后建立質量清單,列出每一類可能影響到軟件質量失誤的不確定因素,作出決策表#65377;
(2)利用粗集理論進行屬性約簡,確定核心質量特性值,作為核心特征數據, 完成歷史輸入#65377;粗集的約簡方法,可將質量指標體系的多種因子排除噪聲干擾,簡化成幾個關鍵量,使神經網絡結構得到化簡#65377;粗集是基于不可分辨性思想和知識簡化方法,利用粗集進行屬性約簡,減少了信息表達的屬性數量,去掉了冗余信息,使訓練集簡化,減少神經網絡系統的復雜性和訓練時間#65377;
2. 2. 2神經網絡單元
完成質量特性的核心辨識單元的輸入后,神經網絡單元需要先載入經初始化的核心質量因素的歷史數據,進行網絡中權值的訓練,可以得到輸入層與隱含層#65380;隱含層與輸出層之間的權值和閾值#65377;完成訓練后,神經網絡算法具體如下:
BP學習算法
(1)選取質量核心特征數據作為輸入,模式對xp=[xp1,xp2,…,xpn]T,dp(網絡期望輸出)提供給網絡#65377;用輸入模式xp,連接權系數wij和閾值hj計算各隱含單元的輸出:
式中, η0 是初始步長;t是學習次數;T是總的迭代次數;M 是一個正數,α∈(0,1)是動量系數#65377;σp是一個與偏差有關的值,對輸出節點來說:
σp = yp(1- yp)(dp - yp)#65377;
對隱節點來說,因其輸出無法比較,所以經過反向推算,得:
σpj = ypj(1- ypj)(ypwj)#65377;
(4)用σpj#65380;xpj#65380;wij和h 計算下一次的輸入層和隱含層之間新的連接權值及隱含神經元閾值:
wij(k+1)= wij(k)+ η(t)σpj xpi + α[wij(k)- wij(k-1)]#65377;
2. 2. 3早期質量失誤預警單元
本文采用面向規模的評估模型#65377;質量度量取決于失誤/KLOC,它類似于IFD/KLOC,初始錯誤密度區域被劃分為3類,即高IFD >10.0;低IFD < 0.1;其余為中#65377;
在最初單元測試或系統測試部分里,通常遇見高的區域的IFD#65377;符合中部區域的IFD系統既在系統測試部分,又在某些數據集和可操作的部分中#65377;有非常低的IFD的軟件低符合區域,是可操作的部分#65377;既然數據集可以劃分,其結果就更有用了#65377;
3 實 證
以軟件質量指標為依據,首先,設計了一套質量特性值,選出影響軟件質量的關鍵因素:
(1)先分析軟件質量因素,例如錯誤數來自于某軟件有限公司,并列出質量因素表#65377;
(2)這里利用粗集,依據質量因素的相關分析,選擇關鍵的出錯因素;約簡屬性(中間大量復雜的計算過程省略),約掉不相關的屬性,選擇相關屬性,它將參與訓練作為神經網絡單元#65377;通過對104個項目進行分析,在表1中顯示的分析結果有9個因素可選#65377;最后依據出錯數是中量的和大量的挑選出5個作為神經網絡的輸入單元#65377;
(3)5個被確定的IFD作為神經單元被輸入,根據需求,網絡隱含層神經元選為13個,一個取值在0~1的輸出,形成三層神經元的BP網絡結構#65377;將前10個季度的指標數據作形成為訓練樣本數據,對這些訓練樣本進行數值化和歸一化處理,給定學習率η= 0.000 1,動量因子α=0.01,非線性函數參數β =1.05,誤差閉值ε =0.01,經過多次迭代學習后訓練次數N=1 800時網絡趨于收斂,以確定神經網絡的權值#65377;最后將后兩個季度的指標數據作為測試數據,輸入到訓練好的神經網絡中,利用神經網絡系統進行識別和分類,以判斷軟件是否發生錯誤#65377;實驗顯示,在軟件開發過程中利用神經網絡的方法,能夠有效預測軟件的質量#65377;
4 粗集神經網絡混合系統模型的主要特點
(1)學習速度快;
(2)該粗集神經網絡是一個全局逼近器;
(3)該模型是可以解釋的,隱含層的節點個數是由粗糙集理論得到的;
(4)該網絡的精度取決于輸入節點的不可分辨類的劃分以及規則的最小置信度的選取#65377;
5 結 論
本文提出了對軟件質量分析綜合的評價方法,采取粗集的神經網絡進行綜合評價#65377;實踐中用IFD的值進行屬性約簡,抽取出最核心的特征屬性,進行神經網絡的模擬訓練#65377;用粗糙集方法對信息進行預處理,可減少信息表達的屬性數量,再根據處理后的信息結構,進行神經網絡的構建與訓練#65377;最終,得到量化的值,作為整個軟件質量評估值提供給決策者#65377;
主要參考文獻
[1] N Karunanithi,D Whitley,Y K Malaiya. Using Neural Networks in Reliability Prediction[J]. IEEE,1992,9(4):53-59.
[2] N Karunanithi,D Whitley,Y K Malaiya,et al. Predictability of Software Reliability Using Connectionist Models[J]. IEEE Transactions on Software Engineering,1992,18(7).
[3] 徐麗娜. 神經網絡控制[M]. 北京:電子工業出版社,2003.
[4] Fredric M Ham,Ivica Kostanic. Principles of Neurocomputing for Science Engineering[M]. 北京:機械工業出版社,2003.
[5] 北京SPIN. 軟件過程改進實踐[M]. 北京:電子工業出版社,2004.
[6] 黃錫滋. 軟件可靠性安全性與質量保證[M]. 北京:電子工業出版社,2002.
[7] 郭晶,楊章玉. MATLAB 6.5輔助神經網絡分析與設計[M]. 北京:電子工業出版社,2003.
[8] 王國胤. Rough 集理論與知識獲取[M]. 西安:西安交通大學出版社,2001.
[9] Taghi M Khoshgoftaar,J C Munson. Predicting Software Development Errors Using Complexity Metrics[J]. IEEE Journal of Selected Areas in Communications,1990,8(2):253-261.
[10] 胡守仁,等. 神經網絡導論[M]. 長沙:國防科技大學出版社,1993.
[11] 鄭人杰,殷人昆,等. 實用軟件工程[M]. 北京:清華大學出版社,2001.
“本文中所涉及到的圖表、注解、公式等內容請以PDF格式閱讀原文”