潛艇戰(zhàn)術應用軟件主要是指那些用于完成潛艇指控系統(tǒng)輔助指揮決策功能的應用軟件[1],它為艇長在極短的時間內作出正確的決策判斷發(fā)揮重要的輔助決策作用,其質量的優(yōu)劣直接關系到戰(zhàn)斗的勝敗、人員的生命安全。因而對潛艇戰(zhàn)術應用軟件質量的評價,一方面是對人員、裝備負責,提高艇長對軟件的信任度,從而真正加大戰(zhàn)爭的信息化程度;另一方面也是對軟件質量負責,促進軟件質量的提高,并加強軟件自身的適用性。
軟件質量評價是軟件工程中的一個重要內容[2]。如同軟件的功能一樣,在軟件經設計與開發(fā)之后具備功能的同時,軟件的質量高低也就構造在軟件之中了。
目前,研究軟件質量評價的方法多采用模糊綜合評判法[3-7],該方法可有效地進行復雜系統(tǒng)評價,但各個指標的模糊隸屬度函數構造無統(tǒng)一標準,且權重分配是根據經驗直接得到,主觀因素在評價過程中影響很大,會使最終評價結果受隸屬度函數和權重選擇的影響而出現不同的結果,最終影響質量評價結果的準確性。本文旨在運用專家知識確定軟件質量指標對最終軟件質量評價影響的重要度,運用軟件質量指標進行修正,并作為模型的初始輸入,以提高最終評價結果的準確性。然后通過神經網絡[8]建立軟件質量屬性與質量評價結果之間的關系,使最終的評價模型更加準確客觀。
影響軟件質量的因素很多,在評價一個軟件的質量時,首先應遵循一定的原則建立一套合理、有效的評價指標體系,而指標體系應盡可能充分反映軟件產品質量的基本因素。通過分析潛艇戰(zhàn)術應用軟件的特點,本文依據ISO/IEC9126[9]標準用于度量軟件質量的評價指標。ISO/IEC9126標準是當前國際上流行的軟件質量評價標準,在已經正式出版的ISO/IEC9126-PartI(軟件質量模型)中,將軟件質量用6個外部屬性表示,即功能性、可靠性、可維性、效率、可移植性、可用性。
對軟件進行評價是一個多屬性決策問題,其評價過程是建立質量子屬性集合到質量評價結果之間的映射關系,即f:dij→q,其中dij為軟件第i個質量屬性對應的第j個子屬性,q為質量評價結果。對于潛艇戰(zhàn)術應用軟件,可以采用分層分析的方法進行質量評價,而各子層因素對上層的評價可以采用相同的分析方法。本文通過建立基于專家知識與神經網絡的軟件質量評價模型來對其進行研究。
在獲得潛艇戰(zhàn)術應用軟件的質量屬性指標體系后,通過利用專家知識對軟件質量屬性的重要性進行初始權重分配,以確定軟件質量屬性對軟件質量評價影響的重要度,在此采用基于專家知識的相鄰比較法確定初始權重。
本文采用3層BP神經網絡,設BP網絡輸入層節(jié)點數為m,隱層節(jié)點數為p,輸出層節(jié)點為n,學習算法如下:
1) 初始化。對所有權值賦以隨機任意小值,并對閾值設定初始值。
2) 給定訓練樣本。即提供輸入向量X和期望的目標輸出向量D。
3) 計算實際輸出。隱層節(jié)點和輸出層節(jié)點的輸出可分別由下式計算。
隱層節(jié)點輸出:
(1)
輸出層節(jié)點輸出:
(2)
式(1)、式(2)中,ωij、vjk分別為輸入層、隱層與輸出層之間的連接權值;φj、θk分別為隱層和輸出層的節(jié)點閾值;f( )為神經元的激勵函數,一般取Sigmoid函數模型,即
4) 計算期望值與實際輸出值之間的誤差,即
(3)
式中,dk為網絡期望輸出值;yk為網絡實際輸出。
5) 調整權值。輸出層神經元權系數的修正。
Δωjk=ηyk(1-yk)(dk-yk)uj
(4)
隱層神經元權系數修正。
(5)
式(4)、式(5)中,0<η<1為學習效率。
6) 返回第二步重復,直至誤差E滿足系統(tǒng)精度要求為止。
模糊綜合評判是目前進行復雜系統(tǒng)評價的主要方法,該方法能夠綜合考慮影響軟件質量屬性的多方面定量和定性的指標因素,但由于指標隸屬度函數的選擇以及指標權重的選取都帶有主觀性,往往使最終評價結果出現偏差。本文采用基于專家知識與神經網絡的軟件質量評價模型,利用模糊綜合評判方法獲取該模型的訓練數據和測試數據來訓練神經網絡,既能發(fā)揮模糊綜合評判的優(yōu)勢,又能克服其中的不足。
軟件質量評價方法的具體步驟如下:
1) 建立軟件質量評價體系,模糊化各質量屬性。
2) 基于專家知識確定質量屬性之間的相對權重系數,并歸一化處理。
3) 利用權重系數修正質量屬性,并將修正后的質量屬性作為軟件質量評價模型的輸入。
4) 將用模糊綜合評價法得到的數據作為訓練樣本訓練神經網絡。
5) 用訓練好的神經網絡對潛艇戰(zhàn)術應用軟件進行質量評價。
首先,建立潛艇戰(zhàn)術應用軟件的質量評價體系。該軟件具有可靠性、效率、可用性、功能性、可維性、可移植性等6個外部屬性,從而建立軟件質量屬性集F={f1,f2, …,f6},表1為軟件質量評價論域集V。采用高斯函數建立隸屬度函數對質量屬性fi進行模糊化處理。
表1 軟件質量評價論域集V
表2 潛艇戰(zhàn)術應用軟件質量屬性權重確定
最后,利用模糊綜合評判法得到的數據訓練神經網絡,并對訓練好的模型評價結果進行驗證。本文利用模糊綜合評判法獲得100組數據,其中80組用來訓練神經網絡,20組作為模型的測試數據。圖1為潛艇戰(zhàn)術應用軟件質量評價模型的測試圖。由圖1可見,在對潛艇戰(zhàn)術應用軟件進行的20次質量評價中,本文提出的基于專家知識與神經網絡的軟件質量評價方法與應用模糊綜合評判法獲得的結果基本一致。但是由于本文利用專家知識對屬性進行修正處理后再作為模型的輸入,充分體現了不同屬性對最終質量評價結果影響的重要度,又利用神經網絡強大的并行計算與自學習能力,使評價模型更加符合潛艇戰(zhàn)術應用軟件高時效性的特點,評價結果更趨客觀、合理。
圖1 潛艇戰(zhàn)術應用軟件質量評價模型測試
本文提出的基于專家知識與神經網絡的潛艇戰(zhàn)術應用軟件質量評價方法,是在對模糊綜合評判法研究的基礎上,將專家知識和神經網絡相結合建立的一種評價模型。對潛艇戰(zhàn)術應用軟件的質量評價進行分析,驗證了該方法的可行性和有效性,從而為軟件質量評價提供了一種有效的途徑。
參考文獻:
[1] 黃文斌,薛昌友.潛艇作戰(zhàn)軟件[M].北京:兵器出版社,2002.
[2] PRESMAN R S.軟件工程實踐者的研究方法[M].梅宏,譯.北京:機械工業(yè)出版社,2002.
[3] 周津慧,王宗,楊宗奎,等.基于模糊評價方法的軟件質量評價研究[J].系統(tǒng)工程與電子技術,2004,26(7):988-991.
[4] 陳建明,王海峰.軟件質量模型及其評價[J].微電子學與計算機,2003,20(5):64-67.
[5] 王成才,湯偉,肖麗雯,等.軟件質量評價的定量評價方法[J].計算機工程,2003,29(14):95-97.
[6] 楊楊.計算機軟件質量模糊綜合評價方法[J].小型微型計算機系統(tǒng),2000,21(3):313-315.
[7] 馬思群,王紅珍,孫彥彬.基于模糊理論的軟件質量評價方法應用研究[J].大連交通大學學報,2007,28(4):18-21,36.
[8] 楊根興,高大啟,宋國新.基于神經網絡的軟件質量綜合評價方法[J].華東理工大學學報:自然科學版,2004,30(3):292-295.
[9] ISO/IEC FCD 9126-1.Information technology-software product quality.Part 1:Quality model (draft)[S].International Organization of Standardization,2001.