閆魯生,趙 喻
(海軍裝備研究院,北京 100101)
軟件可靠性研究包括軟件可靠性模型、軟件容錯和軟件可靠性指標分配,其中軟件可靠性指標分配是軟件可靠性研究的主要工作之一。軟件可靠性指標分配是在保證整個軟件產品的可靠性指標得到滿足的前提下,將經過論證后所確定的可靠性指標,按一定的原則和方法,正確、科學、經濟地將可靠性指標分配到組成這個系統的每一個軟件部件和每一模塊上去,直至到元器件級。可靠性分配是可靠性設計中落實可靠性指標的過程,是保證系統達到預計可靠性指標的一個重要步驟。
可靠性模型的建立離不開對系統失效判據的確定以及從可靠性角度對系統的功能進行分析。下面給出幾種可靠性模型[1]。
串聯模型為:

串聯模型中任一單元失效均會導致整個系統失效。
若失效率λi是常數,則可靠度可以表示為:

而系統可靠度也可以表示為負指數形式[2]:


并聯模型為:

并聯模型中只要一個單元正常工作系統就能正常工作,反之全部單元失效系統才失效。
若組成單元可靠度相同且等于R0(t)時,則并聯系統可靠度為:

若壽命為負指數分布,則并聯系統可靠度為:

對于并聯系統,若組成單元可靠度相同,則其平均無故障工作時間[4]為:

n中取k表決冗余模型:

n個可靠度相同的單元中,有≥k個單元正常工作,系統就能保持正常工作狀態,反之,系統就發生失效。
權聯模型為:

指組成單元發生失效時,可靠度按失效單元承擔同一任務的比重不同而降級的系統,系統內單元承擔任務的比重以權重系數ω表示[5]。
以一個通信網綜合網絡管理系統為例研究如何進行可靠性指標分配。從可靠性模型的建立和可靠性指標分配2個方面進行仿真驗證。其軟件主要包括界面軟件模塊、通信機軟件模塊、服務器軟件模塊和管理應用軟件模塊等。可靠性指標要求MTBF為2000 h。
欲選擇通信網綜合網絡管理系統的可靠性模型,需要詳細分析該網絡管理系統的功能,在此基礎上確定網絡管理系統的失效判據,然后選擇可靠性模型。
綜合網絡管理系統需要在計算機上運行,計算機需要安裝操作系統、編程語言工具和數據庫系統等相應的運行支撐軟件,一旦計算機失效或者計算機運行的支撐軟件發生故障,則綜合網絡管理系統將無法正常運行;只有計算機、支撐軟件和綜合網絡管理系統工作正常,即3個元素均正常運行時,綜合網絡管理系統才能無故障運行,根據可靠性模型的定義選擇串聯模型。
通信網綜合網絡管理系統的基本可靠性模型為串聯模型,包括一個可靠性框圖和一個相應的數學模型。依據通信網綜合網絡管理系統的功能框圖,系統可靠性框圖如圖1所示。

圖1 綜合網絡管理系統可靠性
假設通信網管系統只有正常和失效2種狀態,壽命特征服從指數分布,各單元的失效獨立,從可靠性框圖得出通信網綜合網絡管理系統的可靠性數學模型為:

式中,λS為通信網綜合網絡管理系統的總失效率;λi為第i單元的失效率;MTBFS為通信網綜合網絡管理系統的平均無故障工作時間;n為產品所包含的單元數。
由于網管軟件大部分都是獨立的軟件模塊,所以研究軟件可靠性的模塊分析法用于軟件可靠性評估,且軟件模塊的失效不會導致整個網管軟件失效,按照可靠性模型的定義,選擇權聯模型求解可靠度。
選擇通用軟件模塊可靠度函數求解,可靠度函數為[6,7]:

式中,ai為模塊i的處理分布(Processing Distribution,PD),PD=0為均勻處理;PD=1為輕度不均勻;PD=5為中度不均勻(有一些循環和分支);PD=15為高度不均勻(迭代型循環多,還有一些執行非常少的分支);bi為運行模塊i時遇到導致失效事件發生的缺陷的可能性;ci為模塊i的缺陷容量,在開發階段,平均每千行源代碼有50~60個缺陷,交付后平均每千行源代碼有15~18個缺陷;di為模塊i在軟件運行過程中被調用的概率。通常一個模塊調用得越頻繁,該模塊內部的缺陷越容易暴露出來;ti為模塊可靠運行時間。
以拓撲管理模塊為例,利用并分析在軟件測試時收集的可靠性數據,同時依據模型參數確定原則,
確定各個模型參數:
模塊的處理分布值ai:由于該網管軟件代碼行(87720)為大型網管軟件,因此每個模塊的設計比較復雜,尤其是拓撲管理模塊,實現拓撲分層分級顯示、拓撲狀態監視、拓撲放大縮小漫游操作和拓撲的導入導出打印等多項功能,與很多模塊都有接口,因此編碼時存在許多循環和分支,而且有一些迭代型循環,根據ai的取值說明,所以取ai=15。
運行模塊時遇到導致失效事件發生的缺陷的可能性bi:主要取決于輸入數據條件,Musa推測出該屬性值在各種工程中是相對不變的,平均值約為0.00000042。可以先用0.0000005對其進行初始化,然后在測試中使用實際的可靠性數據來計算真正的值,從收集的可靠性數據計算得出bi=0.00000046。
模塊i的缺陷容量ci:拓撲管理模塊的代碼行為8200行,在單元測試階段,軟件測試結果表明拓撲管理模塊的缺陷容量為280個,經過整改再測試后,在合格性測試階段缺陷容量為160個,經過進一步整改測試,在系統測試階段拓撲管理模塊的缺陷容量為110個,經過整改測試在提交用戶之前缺陷容量為ci=90個。
模塊在軟件運行過程中被調用的概率di:拓撲管理模塊需要和故障管理模塊、通信機模塊等多個模塊進行數據交互,頻繁調用,根據可靠性數據得到di=0.68。
根據網管軟件可靠性指標要求,模塊運行時間ti=20160 min(336 h),此時間為合同規定。
將上述數值代入上述軟件模塊可靠度求解函數,求解拓撲管理軟件模塊的可靠度R模1(t)=0.798。
同理求解出其他軟件模塊的可靠度,然后代入上述權聯模型公式,最后計算出網管軟件的可靠度為0.87。代入R(t)=exp(-λt),MTBF=1/λ,t為336 h,推出網管軟件的平均無故障工作時間MTBF=2450 h,大于合同要求的2000 h,滿足網管軟件的可靠性指標要求。
按加權因子分配法進行可靠性分配。分配基礎是初步預測確定的總體方案的可靠性。分配原則是保證分配的合理性和可行性,避免造成研制實現上的困難或額外增加成本。合同中研制階段的MTBF為5000 h,根據實際情況,本次按5000 h分配到各部件。請有實踐經驗的工程師按照幾種因素進行評分,根據評分情況給設備分配可靠性指標。主要是考慮4種影響因素:
①復雜度:根據組成通信網綜合網絡管理系統的軟件模塊數量以及它們的難易程度來評定;
②技術發展水平:根據通信網綜合網絡管理系統設備目前的技術水平和成熟程度來評定;
③重要度:根據通信網綜合網絡管理系統各軟件的重要度來評定;
④環境條件:根據通信網綜合網絡管理系統設備所處的環境來評定。
分配公式為:

式中,j為單元序號1、2……N;i為單元的加權因子1、2……n;Kji為第 j個單元的第 i個加權因子;n為加權因子數;N為組成產品的單元數;MTBFj為第j個單元平均無故障工作時間;MTBFS為產品的平均無故障工作時間。部分因素可靠性分配的結果如表1所示。

表1 綜合網絡管理系統可靠性分配表
分配的可靠性指標驗證如下:

計算結果為5360 h,大于合同規定的系統MTBF值5000 h,滿足可靠性指標分配要求。
由于工程問題的復雜性及所考慮的重點不完全相同,因此要建立一套完整的可靠性指標分配原則是非常困難的。如果將它們的軟件可靠性指標定得過低,雖然比較容易得到,但不一定能保證整個軟件產品可靠性指標的實現;如果將它們的軟件可靠性指標定得過高,必將增加軟件產品的開發成本,而且從工程角度來看,也無此必要性。首先要建立可靠性模型,如果是串聯系統則按照串聯模型的可靠性指標分配,如果是并聯系統則按照并聯模型進行分配。 ■
[1]文長康.淺談軟件可靠性的評估技術[J].通信技術,2004,12(1):65 -69.
[2]張繼旭,王 琪.軟件可靠性的模塊分析方法[J].戰術導彈技術,2001,23(5):100 -104.
[3]ZAHEDI F,ASHRAFI N.Software Reliability Allocation Based on Structure Utility,Price and Cost[J].IEEE Trans.Software Eng,1991,17(21):345 -356.
[4]韓成宇,夏保勝.基于模糊的軟件可靠性指標分配方法[J].計算機工程與應用,2004,23(10):85 -87.
[5]周 瑞,楊曉青.軟件可靠性指標分配工具[J].小型計算機系統,2004,19(1):18 -23.
[6]BO Lennselius,RYDSTROM.Software Fault Content and Reliability EstimationsforTelecommunicationsSystem[J].IEEE Trans.Selected Areas in Communications,1990,8(2):262 -271.
[7]DOWNS T,SCOTT A.Evaluating the Performance and Software Reliability Models[J].IEEE Trans.Reliability,1992,41(4):12-16.