《電子技術應用》
您所在的位置:首頁 > 通信與網(wǎng)絡 > 設計應用 > 網(wǎng)絡結構的軟件系統(tǒng)可靠性分配方法
網(wǎng)絡結構的軟件系統(tǒng)可靠性分配方法
來源:微型機與應用2012年第19期
楊宏偉,王煥坤,李慶全
(裝甲兵工程學院 技術保障工程系,北京 100072)
摘要: 針對網(wǎng)絡結構的軟件系統(tǒng),通過構造軟件系統(tǒng)的ANP結構,結合用戶和程序員的觀點,對超矩陣的構造進行了改進,提出基于改進型ANP的模塊重要度評估方法。以軟件實用性最大化為目標函數(shù)、以可靠性下限和開發(fā)費用為約束條件,建立了可靠性分配模型。并以某工廠實力信息管理系統(tǒng)為例,對算法進行了驗證。
Abstract:
Key words :

摘  要: 針對網(wǎng)絡結構的軟件系統(tǒng),通過構造軟件系統(tǒng)的ANP結構,結合用戶和程序員的觀點,對超矩陣的構造進行了改進,提出基于改進型ANP的模塊重要度評估方法。以軟件實用性最大化為目標函數(shù)、以可靠性下限和開發(fā)費用為約束條件,建立了可靠性分配模型。并以某工廠實力信息管理系統(tǒng)為例,對算法進行了驗證。
關鍵詞: 軟件網(wǎng)絡;可靠性分配;ANP;超矩陣

 軟件結構描述了軟件實體元素方法、屬性、類、包以及它們之間的相互關系,在很大程度上直接影響著軟件的功能、性能、安全性及可靠性等指標。因此,在進行軟件可靠性分配前,對軟件系統(tǒng)結構進行分析是非常有必要的。
 目前,在軟件可靠性分配的研究中往往是基于軟件系統(tǒng)中模塊間相互獨立、沒有交互的假設上。然而現(xiàn)實情況并非如此,由于要處理繁雜的事務,現(xiàn)在的軟件系統(tǒng)通常都很復雜,由許多互相作用的模塊構成。近年來,一些研究者對大量面向對象軟件系統(tǒng)的類圖進行了研究,發(fā)現(xiàn)軟件系統(tǒng)的結構大多數(shù)都展現(xiàn)出“小世界”和“無尺度”等復雜網(wǎng)絡特性[1]。對于這類軟件的可靠性分配問題,可以用網(wǎng)絡分析法(ANP)進行探討。
1 軟件網(wǎng)絡觀
1.1 軟件的復雜性

 軟件系統(tǒng)復雜性的完整定義應當包括軟件的內部結構和外部特性兩個方面,其中內部結構反映軟件的靜態(tài)復雜性,而外部特性則反映軟件的動態(tài)復雜性。本文主要討論軟件內部結構的復雜性。
 復雜系統(tǒng)不一定要有很大的規(guī)模,因為引起系統(tǒng)復雜行為的主要原因并不是元件的數(shù)量,而是元件之間的交互。所以元件之間的交互方式對復雜系統(tǒng)的特性及行為的影響是一個不可忽視的方面,也是復雜系統(tǒng)研究的關鍵問題之一。軟件系統(tǒng)也是如此,單個類或模塊只能完成有限的功能,而在系統(tǒng)范圍內,所有類或模塊協(xié)同交互才能完成用戶期望的功能。因此,軟件系統(tǒng)模塊間的關系和交互的復雜性也是判斷軟件結構復雜性的重要因素[1]。由此可知復雜軟件系統(tǒng)的結構不再是簡單的層次結構,模塊之間的復雜關系使軟件結構呈現(xiàn)網(wǎng)絡化。
1.2 軟件的網(wǎng)絡結構
 對于軟件網(wǎng)絡的抽象方式,研究人員從不同的層面均給予了不同的定義,例如節(jié)點可以是類、子程序、構件和子系統(tǒng)等[2],邊可以是面向對象設計中的類間關系或包間關系等[3],也可以是面向過程設計中的函數(shù)間調用或子程序間調用等[4]。
 2002年,Valverde[2]等人首先研究了軟件網(wǎng)絡。他們通過逆向工程方法從程序代碼得到系統(tǒng)的類圖,然后將系統(tǒng)的類圖作為研究對象,用網(wǎng)絡圖來表示軟件系統(tǒng),即網(wǎng)絡中的節(jié)點表示類,邊代表類之間的交互關系。這樣,抽象的軟件網(wǎng)絡可以用一個二元組來定義:

 假定可靠性與費用呈線性關系[8],αi表示對模塊i施加可靠性為rmi時的一般開銷,βi為可調整的成本開銷,a等于1減去軟件開發(fā)者的利潤率,vi是模塊i的售價(為模塊i的設計完成成本),模塊i的實際成本一定不能超過它,即:


3.2 軟件系統(tǒng)的ANP結構[10]
 作為系統(tǒng)功能需求的提出者,用戶最明白系統(tǒng)需要具備哪些功能;作為系統(tǒng)的設計者和開發(fā)者(程序員)最熟悉系統(tǒng)的整體結構,從而也最了解該由哪些模塊組成這些功能。因此,這里以軟件用戶的觀點,劃分s項功能為f1,f2,…,fs;然后以軟件程序員的觀點進一步將功能劃分為n個的模塊組C1,C2,…,Cn,共m個模塊,每個功能可能調用多于一個模塊。
 (1)控制層
控制層的目標層是基于用戶觀點的,是用戶對軟件可靠性與可用性的總體評估。總體評估是基于軟件屬性或功能,因此,控制層的決策準則為軟件系統(tǒng)能夠提供給用戶的功能。
?。?)網(wǎng)絡層
 每個功能又是通過不同的模塊組合實現(xiàn)的。模塊之間不是簡單的相互獨立關系,而是存在反饋依存關系,形成網(wǎng)絡結構。
 軟件系統(tǒng)的ANP結構如圖2所示。

 

 

 一般情況下當C.I≤0.1時,認為判斷矩陣可以接受,否則需要調整判斷矩陣。
3.3.2 模塊局部重要度指標WMfi
 傳統(tǒng)ANP方法在構造判斷矩陣時都有兩個評估準則,在元素兩兩比較時需要在某目標準則條件下,先比較兩元素i、j相對于該準則下的第三個元素(稱為次準則)的重要程度wi與wj,然后再通過wi/wj得到元素i與元素j重要度比值[10]。這種通過兩步比較的方法不是很直觀,容易混亂決策者的思維,產(chǎn)生錯誤。相對來說一步直接比較是比較直觀且較容易被理解。
 下面主要介紹一種利用一步直接比較來構造網(wǎng)絡層的超矩陣。
?。?)構造模塊間判斷矩陣。這里將判斷矩陣分為兩種:一是以控制層功能fi為單一準則的判斷矩陣;二是以網(wǎng)絡層模塊組Cj中元素為單一準則的判斷矩陣,并計算出排序向量矩陣。
 (2)構造超矩陣。將所有網(wǎng)絡層元素的排序向量矩陣組合,由此得到控制層功能fi下的超矩陣,記為W。

4 案例
 本文以某一工廠實力信息管理系統(tǒng)為例,對上述方法進一步說明和驗證。該軟件系統(tǒng)功能結構如圖3所示。

 系統(tǒng)要求各模塊的可靠度不低于0.9,軟件開發(fā)的投資為495 000元,利潤率為50%,則有:a=0.5,C=495 000。
 其中,C13數(shù)據(jù)修改調用C11數(shù)據(jù)錄入;C21數(shù)據(jù)統(tǒng)計調用C14數(shù)據(jù)查詢;C22數(shù)據(jù)匯總調用C21數(shù)據(jù)統(tǒng)計和C12數(shù)據(jù)導入;C32報表生成調用C21數(shù)據(jù)統(tǒng)計和C22數(shù)據(jù)匯總;C33數(shù)據(jù)打印調用C21數(shù)據(jù)統(tǒng)計、C22數(shù)據(jù)匯總以及C32報表生成;C42計劃生成調用C21數(shù)據(jù)統(tǒng)計、C22數(shù)據(jù)匯總和C41數(shù)據(jù)分析。由此,可得該軟件系統(tǒng)基于ANP的網(wǎng)絡結構如圖4所示。


 通過求解上述模型,可以得出此軟件系統(tǒng)的可靠性分配的目標值為:
 RM=(0.982  0.963  0.900  0.976  0.984  0.978  0.900  0.963  0.900  0.931  0.900)
U=0.961 3,即為約束條件下可得到的最大軟件實用性。從結果中可知,可靠性指標較高的模塊為:C11、C12、C14、C21、C22、C32。因此,在軟件系統(tǒng)的開發(fā)過程需要投入較大人力物力以保證其完成的質量,才能最終滿足用戶對軟件實用性的要求。
 目前軟件可靠性分配研究中,對于具有網(wǎng)絡結構的軟件可靠性分配討論比較少。本文首先對軟件的網(wǎng)絡結構的存在性、普遍性進行了說明;然后結合ANP理論討論了具有網(wǎng)絡結構的軟件可靠性分配方法,并對傳統(tǒng)的ANP方法進行了改進;最后將該方法應用于案例中進行驗證,得出如下結論:(1)在ANP結構中,沒有依賴與影響關系的限制,能更準確地描述軟件系統(tǒng)網(wǎng)絡結構;(2)在ANP決策中,綜合了用戶和程序員的觀點,降低了決策者單方面的主觀因素的影響;(3)通過改進ANP中超矩陣的構造,方法更加清晰、直觀、容易理解,且在一定程度上減少了計算量;(4)ANP方法能夠有效地解決網(wǎng)絡結構的軟件系統(tǒng)可靠性分配問題。
參考文獻
[1] 何克清,馬于濤,劉婿,等.軟件網(wǎng)絡[M].北京:科學出版社,2008.
[2] VALVERDE S, CANEHO R, SOLE R. Seale free networks from optimal design[J]. EuroPhysics Letters,2002,60(4): 512-517.
[3] SOLE R V, VALVERDE S. Information theory of complex networks: on evolution architectural constraints[J]. Lect Notes Physical, 2004, 65(1):189-207.
[4] MYERS C R. Software systems as complex networks: Structure, function, and resolvability of software collaboration graphs[J]. Physical Review E, 2003, 68(4): 046-116.
[5] 徐仁佐. 軟件可靠性工程[M]. 北京.清華大學出版社, 2007.
[6] 左云霞.基于遺傳算法與AHP的軟件可靠性分配方法[D].西安:西北工業(yè)大學,2007:13-18.
[7] 徐仁佐,向劍文,肖英柏.面向多用戶軟件系統(tǒng)的可靠性分配的故障樹分析法[J].小型微型計算機系統(tǒng),2001,22(3):329-332.
[8] MARY E H, MING Z, OHLSSON N. Planning models for software reliability and cost[J]. IEEE Transaction on Software Engineering,1998,24(6):420-434.
[9] ZAHEDI F. ASHRAFI N. Software reliability allocation based on structure, utility, price and cost[J]. IEEE Transaction Software Engineering, 1991, 17(4):345-356.
[10] SAATY T L, VARGAS L G. Decision making with the analytic network Process[M]. Springer Science Business Media, LLC, 2006.
[11] 吳志彬,陳義華.ANP中超矩陣排序算法研究[D].中國控制與決策學術年會論文集,2006:1235-1242.

此內容為AET網(wǎng)站原創(chuàng),未經(jīng)授權禁止轉載。