楊彬 陳麗容
(中國航天科工集團第二研究院706所,北京100854)
摘要 研究了高可靠軟件的可靠性評估技術(shù),給出了失效數(shù)據(jù)稀少情況下的軟件可靠性模型。假設高可靠軟件的可靠性測試過程中發(fā)生失效是獨立同分布的稀有事件,從理論上分析了極值統(tǒng)計理論用于軟件可靠性評估的可行性,建立了軟件可靠性極值統(tǒng)計模型,討論了模型的參數(shù)估計方法和假設檢驗方法。
關(guān)鍵詞 軟件可靠性模型 高可靠軟件 極值統(tǒng)計 失效數(shù)據(jù)
關(guān)于軟件可靠性的評估,從1972年出現(xiàn)第一個軟件可靠性的評估模型以來,人們對軟件可靠性評估方法和評估模型的研究就沒有間斷過。人們不斷總結(jié)已有模型的優(yōu)點和缺點,并在已有的評估理論的基礎(chǔ)上,針對不同軟件的特點和性能,不斷地提出新的模型和方法。這些可靠性模型和評估方法都是基于系統(tǒng)運行期間的失效分析,事先假定軟件可靠性失效數(shù)據(jù)服從一定的隨機分布,并且要求一定量的軟件可靠性失效數(shù)據(jù)。對大型商業(yè)系統(tǒng)來說,這些數(shù)據(jù)量可能還是足夠的,但是對高可靠軟件來說就往往不能產(chǎn)生符合要求的數(shù)據(jù)了。這有三方面的原因:一是高可靠軟件一般功能比較單一,操作較少;二是高可靠軟件開發(fā)過程中引入了大量軟件可靠性分析與設計措施,例如容錯、冗余和N-文本編程等,三是前期的軟件測試比較充分,因此可靠性測試階段確實很少發(fā)生失效。所以對于高可靠軟件,難以決定選擇哪個模型更合適,甚至就算選定了某一個模型,由于失效數(shù)據(jù)的稀少,模型也難以適用[1,2]。
本文分析了極值統(tǒng)計理論用于軟件可靠性評估的可行性,建立了軟件可靠性極值統(tǒng)計模型,討論了模型的參數(shù)估計方法和假設檢驗方法,最后通過一個實例說明了該模型的應用。
極值統(tǒng)計是專門研究很少發(fā)生、一旦發(fā)生卻有巨大影響的隨機變量極端變異性的建模及統(tǒng)計分析方法[9]。它以次序統(tǒng)計量為基礎(chǔ),研究極值事件分布的特性。極值事件常見于某種分布的尾部,用來擬合全部事件的分布有時不能精確地反映其尾部事件,這時母體分布尾部的分布可以由極值分布來精確擬合。
設
成立,其中
I型分布:
II型分布:
III型分布:
其中I型分布又稱為Gumbel分布,II型分布又稱為Fréchet分布,III型分布又稱為Weibull分布,這三種分布統(tǒng)稱為極值分布(extreme value distribution)。當
如果引進位置參數(shù)(location parameter)
由于在高可靠性軟件的測試過程中失效很少發(fā)生,我們可以認為高可靠性軟件測試過程中失效的發(fā)生是稀有事件[5],從而可以用極值統(tǒng)計方法來分析采集到的失效數(shù)據(jù)。根據(jù)這個思想,可以建立軟件可靠性極值統(tǒng)計模型(Software Reliability Model based on the Statistics of Extreme,SE-SRM),并從假設檢驗和參數(shù)估計這兩個方面提高模型的準確度,那么用該模型進行失效數(shù)據(jù)分析能獲得更真實的可靠度。
高可靠軟件一旦失效將造成災難性的后果,因此高可靠軟件質(zhì)量要求較高,在其交付使用之前,一般會進行大量的測試以發(fā)現(xiàn)并排除可能存在的缺陷。在此前提下,對高可靠軟件進行可靠性測試可能只能收集到有限的失效數(shù)據(jù)。另一方面,“軟件總是有缺陷的”這一觀點已經(jīng)在學術(shù)界和實業(yè)界得到了共識,測試中發(fā)生很少失效并不能保證軟件已經(jīng)達到了預定的可靠度。因此利用這些有限的失效數(shù)據(jù)對軟件可靠性進行評估,是軟件發(fā)布前進行決策時的一個必須步驟。
假定軟件失效服從母體分布
極值統(tǒng)計關(guān)注給定概率分布的尾部特征,提供了一種對尾部分布進行分析的方法。使用極值統(tǒng)計來分布失效數(shù)據(jù),不需要對數(shù)據(jù)假設一個先驗分布。為了更加客觀地描述高可靠軟件可靠性測試階段可靠性的變化規(guī)律,根據(jù)高可靠軟件測試的特點,可以做如下基本假設:
(1)軟件的失效為稀有事件。由于高可靠軟件可靠性測試過程中失效次數(shù)很少,可以認為其失效為稀有事件。
(2)軟件失效是獨立同分布的。由于失效為稀有事件,可以認為軟件失效是獨立的,各失效之間沒有關(guān)聯(lián)。又由于軟件的可靠性已經(jīng)很高,失效時缺陷的排除對可靠性的影響不大,因此可以認為軟件失效是同分布的。本條件的前提是條件(1),如果條件(1)不成立,則本條件也值得懷疑。因此,本文的方法主要用于失效極少發(fā)生下的軟件可靠性評估。
(3)軟件的測試操作剖面與實際操作剖面一致。為了更準確地反映實際使用中軟件的可靠性,在對軟件進行測試時,其測試操作剖面應與實際操作剖面類似。
基于以上假設,可以建立基于極值統(tǒng)計的軟件可靠性模型SE-SRM。設
由于軟件失效時間的分布函數(shù)
由極值類型定理可知,當
通過參數(shù)估計得到上式中的參數(shù)的估計值
母體分布為Gumbel-II型極值分布的可靠度函數(shù)為(
母體分布為Gumbel-II型極值分布的失效率函數(shù)為:
在統(tǒng)計學中對參數(shù)估計一般采用極大似然估計和最小二乘估計,但是兩者的優(yōu)良性質(zhì)只有在樣本量較大時才能體現(xiàn)。而高可靠軟件的可靠性測試失效數(shù)據(jù)少而且離散性很強,這兩種估計方法是否適用還沒有定論。針對極值統(tǒng)計推斷,本節(jié)引入最好線性無偏估計。
設分布函數(shù)
(1)
(2)
(3)
那么,
由于
其中
設失效數(shù)據(jù)
由中國電子技術(shù)標準研究所編制的《可靠性試驗用表》,當
其中的
根據(jù)
雖然
其中的
用BLUE進行參數(shù)估計具有相當高的精度,并且當
為了利用極值分布描述軟件可靠性變化規(guī)律,我們需要對軟件失效數(shù)據(jù)是否服從極值分布進行檢驗。設
即
其中
具體過程如下:
對
令
上式中
其中
當測試失效數(shù)據(jù)
(1)計算線性相關(guān)系數(shù)
(2)查相關(guān)系數(shù)臨界值表得到
(3)看是否接受假設
這里給出一個應用基于極值統(tǒng)計的軟件可靠性模型的實例,完整給出了參數(shù)估計和假設檢驗的過程,并與其它軟件可靠性模型進行了比較。某程序測試總時間為528小時,其中共發(fā)生了7次失效,實際運行時間為2148小時,其中共發(fā)生了6次失效,各次失效發(fā)生的時間如表1所示。
表1 某軟件失效時間
失效數(shù) |
測試失效時間 |
運行失效時間 |
1 |
120 |
144 |
2 |
120 |
336 |
3 |
152 |
408 |
4 |
192 |
1128 |
5 |
296 |
1152 |
6 |
368 |
1680 |
7 |
488 |
|
(1)針對測試過程中的失效數(shù)據(jù),用最好線性無偏估計進行參數(shù)估計,根據(jù)公式(3-13)和(3-14)得到參數(shù)估計值:
(2)用相關(guān)系數(shù)法檢驗測試過程中的這些數(shù)據(jù)是否符合極值分布,根據(jù)公式(3-18)得
(3)算出軟件可靠性測試結(jié)束后預計的可靠度函數(shù)和失效率函數(shù)為:
軟件可靠性測試結(jié)束以后預計的軟件平均失效時間,根據(jù)公式(3-8)有
G-O模型是常用的NHPP類軟件可靠性模型,它假定檢測出的累積錯誤數(shù)是一個獨立增量過程,其期望函數(shù)服從非齊次Possion分布。針對上述測試失效數(shù)據(jù),根據(jù)G-O模型可以算得其可靠度函數(shù)為
(4)針對軟件實際運行失效數(shù)據(jù),用最好線性無偏估計進行參數(shù)估計,根據(jù)公式(3-13)和(3-14)得到參數(shù)估計值:
軟件實際運行中的可靠度函數(shù)和失效率函數(shù)為
將軟件可靠度函數(shù)
圖1 SE-SRM模型應用
本章分析了對高可靠軟件而言將軟件失效視為稀有事件的合理性。在此基礎(chǔ)上,利用極值統(tǒng)計理論建立了軟件可靠性模型SE-SRM,并提出了適合該模型的參數(shù)估計和假設檢驗方法。根據(jù)一個實際的例子,詳細闡述了SE-SRM的使用過程。
參考文獻
[1] Lori M.Kaufman, Joanne Bechta Dugan, Barry W.Johnson,Using Statistics of the Extremes for Software Reliability Analysis[J],IEEE TRANSACTIONS ON RELIABILITY,VOL 48,NO.3,1999 SEPTEMBER
[2] Lori.M.Kaufman,Ted C.Giras,Simulation of rare events in transportation systems,Proceedings of the 2001 Winter Simulation Conference[C]
[3]Uditha Balasooriya and C.K.Low,Competing causes of failure and reliability tests for Weibull lifetimes under type I progressive censoring[J],IEEE TRANSACTIONS ON RELIABILITY ,Vol.53, No.1 MARCH 2004
[4]Toshiyuki Shimokawa,Goodness-of-fit tests for type-I extreme-value and 2-parameter Weibull distributions[J],IEEE Transactions on Reliability,VOL 48,NO.1,1999 MARCH
[5]Yangyang Yu,Barry W.Johnson,The Quantitative Safety Assessment for Safety-Critical Software,Proceedings of the 29th Annual IEEE/NASA Software Engineering Workshop[C]
[6]Shepperd M.; Cartwright M.,Predicting with sparse data[J],IEEE Transactions on Software Engineering,VOL.27,NO.11,NOVEMBER 2001
[7]Nestoras E.Evmorfopoulos et al.,A Monte Carlo approach for maximum power estimation based on extreme value theory[J],IEEE TRANSACTIONS ON COMPUTER-AIDED DESIGN OF INTEGRATED CIRCUITS AND SYSTEMS, VOL.21, NO.4, APRIL 2002
[8]陳希孺,高等數(shù)理統(tǒng)計學[M],合肥,中國科學技術(shù)出版社,1999
[9]史道濟,實用極值統(tǒng)計方法[M],天津科學技術(shù)出版社,2006年4月第1版
Yangbin, Chenlirong
(Institute 706, Second Academy of CASIC, Beijing 100854, China)
Abstract A software reliability assessment method for highly reliable software systems is investigated. As highly reliable software system seldom fails, we can consider the failures as rare events, so Extreme Value Theory(EVT) can be applied to model the failures. Analysis of rare event data using EVT does not require a priori assumptions concerning the distributional form of the data,and thus provides an interesting alternative to traditional approaches. This thesis investigated the feasibility of using EVT in software reliability assessment, and proposed the appropriate statistical methods.
Keyword software reliability, statistics of extreme, highly reliable software, failure data