閆魯生,趙 喻
(海軍裝備研究院,北京 100101)
軟件可靠性研究包括軟件可靠性模型、軟件容錯和軟件可靠性指標(biāo)分配,其中軟件可靠性指標(biāo)分配是軟件可靠性研究的主要工作之一。軟件可靠性指標(biāo)分配是在保證整個軟件產(chǎn)品的可靠性指標(biāo)得到滿足的前提下,將經(jīng)過論證后所確定的可靠性指標(biāo),按一定的原則和方法,正確、科學(xué)、經(jīng)濟地將可靠性指標(biāo)分配到組成這個系統(tǒng)的每一個軟件部件和每一模塊上去,直至到元器件級??煽啃苑峙涫强煽啃栽O(shè)計中落實可靠性指標(biāo)的過程,是保證系統(tǒng)達(dá)到預(yù)計可靠性指標(biāo)的一個重要步驟。
可靠性模型的建立離不開對系統(tǒng)失效判據(jù)的確定以及從可靠性角度對系統(tǒng)的功能進行分析。下面給出幾種可靠性模型[1]。
串聯(lián)模型為:
串聯(lián)模型中任一單元失效均會導(dǎo)致整個系統(tǒng)失效。
若失效率λi是常數(shù),則可靠度可以表示為:
而系統(tǒng)可靠度也可以表示為負(fù)指數(shù)形式[2]:
并聯(lián)模型為:
并聯(lián)模型中只要一個單元正常工作系統(tǒng)就能正常工作,反之全部單元失效系統(tǒng)才失效。
若組成單元可靠度相同且等于R0(t)時,則并聯(lián)系統(tǒng)可靠度為:
若壽命為負(fù)指數(shù)分布,則并聯(lián)系統(tǒng)可靠度為:
對于并聯(lián)系統(tǒng),若組成單元可靠度相同,則其平均無故障工作時間[4]為:
n中取k表決冗余模型:
n個可靠度相同的單元中,有≥k個單元正常工作,系統(tǒng)就能保持正常工作狀態(tài),反之,系統(tǒng)就發(fā)生失效。
權(quán)聯(lián)模型為:
指組成單元發(fā)生失效時,可靠度按失效單元承擔(dān)同一任務(wù)的比重不同而降級的系統(tǒng),系統(tǒng)內(nèi)單元承擔(dān)任務(wù)的比重以權(quán)重系數(shù)ω表示[5]。
以一個通信網(wǎng)綜合網(wǎng)絡(luò)管理系統(tǒng)為例研究如何進行可靠性指標(biāo)分配。從可靠性模型的建立和可靠性指標(biāo)分配2個方面進行仿真驗證。其軟件主要包括界面軟件模塊、通信機軟件模塊、服務(wù)器軟件模塊和管理應(yīng)用軟件模塊等??煽啃灾笜?biāo)要求MTBF為2000 h。
欲選擇通信網(wǎng)綜合網(wǎng)絡(luò)管理系統(tǒng)的可靠性模型,需要詳細(xì)分析該網(wǎng)絡(luò)管理系統(tǒng)的功能,在此基礎(chǔ)上確定網(wǎng)絡(luò)管理系統(tǒng)的失效判據(jù),然后選擇可靠性模型。
綜合網(wǎng)絡(luò)管理系統(tǒng)需要在計算機上運行,計算機需要安裝操作系統(tǒng)、編程語言工具和數(shù)據(jù)庫系統(tǒng)等相應(yīng)的運行支撐軟件,一旦計算機失效或者計算機運行的支撐軟件發(fā)生故障,則綜合網(wǎng)絡(luò)管理系統(tǒng)將無法正常運行;只有計算機、支撐軟件和綜合網(wǎng)絡(luò)管理系統(tǒng)工作正常,即3個元素均正常運行時,綜合網(wǎng)絡(luò)管理系統(tǒng)才能無故障運行,根據(jù)可靠性模型的定義選擇串聯(lián)模型。
通信網(wǎng)綜合網(wǎng)絡(luò)管理系統(tǒng)的基本可靠性模型為串聯(lián)模型,包括一個可靠性框圖和一個相應(yīng)的數(shù)學(xué)模型。依據(jù)通信網(wǎng)綜合網(wǎng)絡(luò)管理系統(tǒng)的功能框圖,系統(tǒng)可靠性框圖如圖1所示。
圖1 綜合網(wǎng)絡(luò)管理系統(tǒng)可靠性
假設(shè)通信網(wǎng)管系統(tǒng)只有正常和失效2種狀態(tài),壽命特征服從指數(shù)分布,各單元的失效獨立,從可靠性框圖得出通信網(wǎng)綜合網(wǎng)絡(luò)管理系統(tǒng)的可靠性數(shù)學(xué)模型為:
式中,λS為通信網(wǎng)綜合網(wǎng)絡(luò)管理系統(tǒng)的總失效率;λi為第i單元的失效率;MTBFS為通信網(wǎng)綜合網(wǎng)絡(luò)管理系統(tǒng)的平均無故障工作時間;n為產(chǎn)品所包含的單元數(shù)。
由于網(wǎng)管軟件大部分都是獨立的軟件模塊,所以研究軟件可靠性的模塊分析法用于軟件可靠性評估,且軟件模塊的失效不會導(dǎo)致整個網(wǎng)管軟件失效,按照可靠性模型的定義,選擇權(quán)聯(lián)模型求解可靠度。
選擇通用軟件模塊可靠度函數(shù)求解,可靠度函數(shù)為[6,7]:
式中,ai為模塊i的處理分布(Processing Distribution,PD),PD=0為均勻處理;PD=1為輕度不均勻;PD=5為中度不均勻(有一些循環(huán)和分支);PD=15為高度不均勻(迭代型循環(huán)多,還有一些執(zhí)行非常少的分支);bi為運行模塊i時遇到導(dǎo)致失效事件發(fā)生的缺陷的可能性;ci為模塊i的缺陷容量,在開發(fā)階段,平均每千行源代碼有50~60個缺陷,交付后平均每千行源代碼有15~18個缺陷;di為模塊i在軟件運行過程中被調(diào)用的概率。通常一個模塊調(diào)用得越頻繁,該模塊內(nèi)部的缺陷越容易暴露出來;ti為模塊可靠運行時間。
以拓?fù)涔芾砟K為例,利用并分析在軟件測試時收集的可靠性數(shù)據(jù),同時依據(jù)模型參數(shù)確定原則,
確定各個模型參數(shù):
模塊的處理分布值ai:由于該網(wǎng)管軟件代碼行(87720)為大型網(wǎng)管軟件,因此每個模塊的設(shè)計比較復(fù)雜,尤其是拓?fù)涔芾砟K,實現(xiàn)拓?fù)浞謱臃旨夛@示、拓?fù)錉顟B(tài)監(jiān)視、拓?fù)浞糯罂s小漫游操作和拓?fù)涞膶?dǎo)入導(dǎo)出打印等多項功能,與很多模塊都有接口,因此編碼時存在許多循環(huán)和分支,而且有一些迭代型循環(huán),根據(jù)ai的取值說明,所以取ai=15。
運行模塊時遇到導(dǎo)致失效事件發(fā)生的缺陷的可能性bi:主要取決于輸入數(shù)據(jù)條件,Musa推測出該屬性值在各種工程中是相對不變的,平均值約為0.00000042??梢韵扔?.0000005對其進行初始化,然后在測試中使用實際的可靠性數(shù)據(jù)來計算真正的值,從收集的可靠性數(shù)據(jù)計算得出bi=0.00000046。
模塊i的缺陷容量ci:拓?fù)涔芾砟K的代碼行為8200行,在單元測試階段,軟件測試結(jié)果表明拓?fù)涔芾砟K的缺陷容量為280個,經(jīng)過整改再測試后,在合格性測試階段缺陷容量為160個,經(jīng)過進一步整改測試,在系統(tǒng)測試階段拓?fù)涔芾砟K的缺陷容量為110個,經(jīng)過整改測試在提交用戶之前缺陷容量為ci=90個。
模塊在軟件運行過程中被調(diào)用的概率di:拓?fù)涔芾砟K需要和故障管理模塊、通信機模塊等多個模塊進行數(shù)據(jù)交互,頻繁調(diào)用,根據(jù)可靠性數(shù)據(jù)得到di=0.68。
根據(jù)網(wǎng)管軟件可靠性指標(biāo)要求,模塊運行時間ti=20160 min(336 h),此時間為合同規(guī)定。
將上述數(shù)值代入上述軟件模塊可靠度求解函數(shù),求解拓?fù)涔芾碥浖K的可靠度R模1(t)=0.798。
同理求解出其他軟件模塊的可靠度,然后代入上述權(quán)聯(lián)模型公式,最后計算出網(wǎng)管軟件的可靠度為0.87。代入R(t)=exp(-λt),MTBF=1/λ,t為336 h,推出網(wǎng)管軟件的平均無故障工作時間MTBF=2450 h,大于合同要求的2000 h,滿足網(wǎng)管軟件的可靠性指標(biāo)要求。
按加權(quán)因子分配法進行可靠性分配。分配基礎(chǔ)是初步預(yù)測確定的總體方案的可靠性。分配原則是保證分配的合理性和可行性,避免造成研制實現(xiàn)上的困難或額外增加成本。合同中研制階段的MTBF為5000 h,根據(jù)實際情況,本次按5000 h分配到各部件。請有實踐經(jīng)驗的工程師按照幾種因素進行評分,根據(jù)評分情況給設(shè)備分配可靠性指標(biāo)。主要是考慮4種影響因素:
①復(fù)雜度:根據(jù)組成通信網(wǎng)綜合網(wǎng)絡(luò)管理系統(tǒng)的軟件模塊數(shù)量以及它們的難易程度來評定;
②技術(shù)發(fā)展水平:根據(jù)通信網(wǎng)綜合網(wǎng)絡(luò)管理系統(tǒng)設(shè)備目前的技術(shù)水平和成熟程度來評定;
③重要度:根據(jù)通信網(wǎng)綜合網(wǎng)絡(luò)管理系統(tǒng)各軟件的重要度來評定;
④環(huán)境條件:根據(jù)通信網(wǎng)綜合網(wǎng)絡(luò)管理系統(tǒng)設(shè)備所處的環(huán)境來評定。
分配公式為:
式中,j為單元序號1、2……N;i為單元的加權(quán)因子1、2……n;Kji為第 j個單元的第 i個加權(quán)因子;n為加權(quán)因子數(shù);N為組成產(chǎn)品的單元數(shù);MTBFj為第j個單元平均無故障工作時間;MTBFS為產(chǎn)品的平均無故障工作時間。部分因素可靠性分配的結(jié)果如表1所示。
表1 綜合網(wǎng)絡(luò)管理系統(tǒng)可靠性分配表
分配的可靠性指標(biāo)驗證如下:
計算結(jié)果為5360 h,大于合同規(guī)定的系統(tǒng)MTBF值5000 h,滿足可靠性指標(biāo)分配要求。
由于工程問題的復(fù)雜性及所考慮的重點不完全相同,因此要建立一套完整的可靠性指標(biāo)分配原則是非常困難的。如果將它們的軟件可靠性指標(biāo)定得過低,雖然比較容易得到,但不一定能保證整個軟件產(chǎn)品可靠性指標(biāo)的實現(xiàn);如果將它們的軟件可靠性指標(biāo)定得過高,必將增加軟件產(chǎn)品的開發(fā)成本,而且從工程角度來看,也無此必要性。首先要建立可靠性模型,如果是串聯(lián)系統(tǒng)則按照串聯(lián)模型的可靠性指標(biāo)分配,如果是并聯(lián)系統(tǒng)則按照并聯(lián)模型進行分配。 ■
[1]文長康.淺談軟件可靠性的評估技術(shù)[J].通信技術(shù),2004,12(1):65 -69.
[2]張繼旭,王 琪.軟件可靠性的模塊分析方法[J].戰(zhàn)術(shù)導(dǎo)彈技術(shù),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]韓成宇,夏保勝.基于模糊的軟件可靠性指標(biāo)分配方法[J].計算機工程與應(yīng)用,2004,23(10):85 -87.
[5]周 瑞,楊曉青.軟件可靠性指標(biāo)分配工具[J].小型計算機系統(tǒng),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.