可靠性建模資料整理_第1頁(yè)
可靠性建模資料整理_第2頁(yè)
可靠性建模資料整理_第3頁(yè)
可靠性建模資料整理_第4頁(yè)
可靠性建模資料整理_第5頁(yè)
已閱讀5頁(yè),還剩25頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、軟件可靠性建模1 模型概述1.1 軟 件可靠性的定義1983 年美國(guó) IEEE 計(jì)算機(jī)學(xué)會(huì)對(duì)“軟件可靠性”作出了明確定義,此后該定義被美國(guó)標(biāo)準(zhǔn)化研究所接受為國(guó)家標(biāo)準(zhǔn),1989 年我國(guó)也接受該定義為國(guó)家標(biāo)準(zhǔn)。該定義包括兩方面的含義:( 1)在規(guī)定的條件下,在規(guī)定的時(shí)間內(nèi),軟件不引起系統(tǒng)失效的概率;( 2)在規(guī)定的時(shí)間周期內(nèi),在所述條件下程序執(zhí)行所要求的功能的能力;其中的概率是系統(tǒng)輸入和系統(tǒng)使用的函數(shù),也是軟件中存在的故障的函數(shù),系統(tǒng)輸入將確定是否會(huì)遇到已存在的故障(如果故障存在的話)。軟件失效的根本原因在于程序中存在著缺陷和錯(cuò)誤,軟件失效的產(chǎn)生與軟件本身特性、人為因素、軟件工程管理都密切相關(guān)。影

2、響軟件可靠性的主要因素有軟件自身特性、人為因素、 軟件工程管理等,這些因素具體還可分為環(huán)境因素、軟件是否嚴(yán)密、軟件復(fù)雜程度、軟件是否易于用戶理解、軟件測(cè)試、軟件的排錯(cuò)與糾正以及軟件可靠性工程技術(shù)研究水平與應(yīng)用能力等諸多方面。1.2 軟 件可靠性建模思想建立軟件可靠性模型旨在根據(jù)軟件可靠性相關(guān)測(cè)試數(shù)據(jù),運(yùn)用統(tǒng)計(jì)方法得出軟件可靠性的預(yù)測(cè)值或估計(jì)值,下圖給出了軟件可靠性建模的基本思想。從圖中可以看出軟件失效總體來說隨著故障的檢出和排除而逐漸降低,在任意給定的時(shí)間,能夠觀測(cè)到軟件失效的歷史。軟件可靠性建模的目標(biāo)如下:( 1)預(yù)測(cè)軟件系統(tǒng)達(dá)到預(yù)期目標(biāo)所還需要的資源開銷及測(cè)試時(shí)間;( 2)預(yù)測(cè)測(cè)試結(jié)束后系

3、統(tǒng)的期望可靠性。1.3 軟 件可靠性建?;締栴}軟件可靠性建模需要考慮以下基本問題:( 1) 模型建立模型建立指的是怎樣去建立軟件可靠性模型。一方面是考慮模型建立的角度,例如從時(shí)間域角度、數(shù)據(jù)域角度、將軟件失效時(shí)刻作為建模對(duì)象,還可以將一定時(shí)間內(nèi)軟件故障數(shù)作為建模對(duì)象;另一方面是考慮運(yùn)用的數(shù)學(xué)語(yǔ)言,例如概率語(yǔ)言。( 2) 模型比較在軟件可靠性模型分類的基礎(chǔ)上,對(duì)不同的模型分析比較,并對(duì)模型的有效性、適用性、簡(jiǎn)潔性等進(jìn)行綜合權(quán)衡,從而確定出模型的適用范圍。( 3) 模型應(yīng)用軟件可靠性模型的應(yīng)用需要從以下兩方面考慮:一是給定了軟件的開發(fā)計(jì)劃,如何選擇適當(dāng)?shù)哪P?;二是給定了軟件可靠性模型,如何指導(dǎo)軟

4、件可靠性工程實(shí)踐。軟件系統(tǒng)的失效歷史可以通過對(duì)測(cè)試得到的失效數(shù)據(jù)分析獲得,而實(shí)際情況中,人們最為關(guān)注的是軟件未來的失效趨勢(shì)。軟件可靠性模型基本都是建立在一定的假設(shè)基礎(chǔ)之上,所以, 即使花費(fèi)了大量的時(shí)間和精力對(duì)軟件的可靠性進(jìn)行預(yù)計(jì),也只是一種預(yù)測(cè),這種預(yù)測(cè)的不確定性是許多未知原因交互作用的結(jié)果,根據(jù)軟件可靠性模型的預(yù)測(cè)只能以概率形式表示。3.4 軟 件可靠性模型的特點(diǎn)( 1) 與使用的程序設(shè)計(jì)語(yǔ)言無(wú)關(guān)。軟件可靠性的應(yīng)用與選用什么程序設(shè)計(jì)語(yǔ)言來編寫軟件之間沒有什么直接關(guān)系。但對(duì)于根據(jù)同一個(gè)規(guī)格說明書,不管你用什么程序設(shè)計(jì)語(yǔ)言軟件來編寫軟件,同一個(gè)軟件可靠性模型應(yīng)給出同樣的估測(cè)結(jié)果。( 2) 與具體

5、用到的軟件開發(fā)方法無(wú)關(guān)。軟件開發(fā)是一個(gè)十分復(fù)雜的過程,涉及到許多的人為因素,從而使得對(duì)軟件的質(zhì)量難以進(jìn)行預(yù)測(cè)。為了保證預(yù)測(cè)的精度,不妨假設(shè)待估測(cè)的軟件系統(tǒng)是用最壞的軟件開發(fā)方法開發(fā)出來的。( 3) 測(cè)試方法的選擇問題。實(shí)際上是無(wú)法通過徹底的測(cè)試來獲得完全可靠的軟件,所以不得不采用有限的測(cè)試,那么目標(biāo)就是用最少的測(cè)試以求最大限度的軟件可靠性??梢杂美邕吔缰禍y(cè)試法、分類測(cè)試法、路徑測(cè)試法等方法來達(dá)到。幾乎所有的軟件可 靠性模型都假定測(cè)試環(huán)境就是將來軟件的運(yùn)行環(huán)境,這限制了高可靠性估計(jì)情況下的這 些模型的可用性。( 4) 改錯(cuò)過程。實(shí)際上改正老的錯(cuò)誤時(shí)往往會(huì)引人新的錯(cuò)誤。( 5) 模型要表述的內(nèi)容

6、。模型應(yīng)該指出測(cè)試的輸入是否已足夠地覆蓋了輸入域,測(cè)試的條件和數(shù)據(jù)是否已準(zhǔn)確地模擬了操作系統(tǒng)、是否已足以查出那些類似的錯(cuò)誤等。軟件可靠性模型假定測(cè)試的條件和數(shù)據(jù)與操作環(huán)境有著同樣的分布,也就簡(jiǎn)捷地假設(shè)了上述要表述的內(nèi)容。( 6) 輸入的分布問題。可靠性估計(jì)緊密地依賴于模型假設(shè)的輸入分布。作為一個(gè)極端的情況,如果輸入是一個(gè)常數(shù)(比如說只用到一個(gè)輸入),軟件將或者出錯(cuò)或者成功的執(zhí)行,于是就給出可靠性相應(yīng)地為0 或?yàn)?1。( 7) 關(guān)于軟件復(fù)雜性問題。大多數(shù)現(xiàn)有的軟件可靠性模型都沒有考慮這個(gè)問題。實(shí)際上,復(fù)雜的軟件應(yīng)該比簡(jiǎn)單的軟件要求更多的測(cè)試。( 8) 模型的驗(yàn)證問題。常常由于缺乏實(shí)際可用的足夠數(shù)

7、據(jù),使得對(duì)模型的驗(yàn)證無(wú)法進(jìn)行,且在整個(gè)軟件壽命周期內(nèi),軟件幾乎呈常數(shù)倍數(shù)地增加,導(dǎo)致可靠性也相應(yīng)地變化,軟件可靠性的驗(yàn)證工作也就更加復(fù)雜化。( 9) 關(guān)于時(shí)間問題。在軟件可靠性量測(cè)與硬件可靠性量測(cè)綜合起來對(duì)一定的系統(tǒng)環(huán)境進(jìn)行考核時(shí),將CPU 時(shí)間作為時(shí)間單位是必要的。( 10) 考慮模型所要求的數(shù)據(jù)是否容易收集。否則, 由于數(shù)據(jù)問題,將會(huì)限制軟件可靠性的應(yīng)用范圍。3.5 軟 件可靠性模型的分類到目前為止,軟件可靠性模型的研究已有40 多年的歷史,國(guó)內(nèi)外已發(fā)表的軟件可靠性模型有近百種,但由于對(duì)軟件可靠性模型的研究還處在一個(gè)初步階段,目前并沒有一個(gè)完整、系統(tǒng)的科學(xué)分類方法。為了從宏觀上研究、掌握和

8、理解這些模型,不少學(xué)者提出不同的分類方法。(一)根據(jù)建模對(duì)象分類根據(jù)建模對(duì)象將模型分為兩種:靜態(tài)模型和動(dòng)態(tài)模型,如圖:1、靜態(tài)模型靜態(tài)模型的建模對(duì)象是與運(yùn)行時(shí)間無(wú)關(guān)的數(shù)據(jù)或信息,如軟件的各種復(fù)雜性參數(shù),特點(diǎn)是不需要進(jìn)行軟件測(cè)試即可進(jìn)行軟件缺陷估計(jì),應(yīng)用與軟件開發(fā)的早期階段。隨著軟件可靠性設(shè)計(jì)逐漸被重視,這種模型的重要性也體現(xiàn)出來。2、動(dòng)態(tài)模型動(dòng)態(tài)模型的建模對(duì)象主要是與運(yùn)行時(shí)間相關(guān)的數(shù)據(jù)或信息。如Shooman 模型、Jelinski-Moranda 模型、 Schick-Wolverton 模型, Musa 執(zhí)行時(shí)間模型、G-O 模型、 Moranda幾何 Poission模型。根據(jù)模型假設(shè)將

9、模型分為隨機(jī)過程模型和非隨機(jī)過程模型,如圖所示。圖依據(jù)模型假設(shè)分類1、隨機(jī)過程模型( 1)馬爾科夫過程模型這類模型認(rèn)為在t 時(shí)刻, 軟件系統(tǒng)的失效過程是一個(gè)馬爾科夫過程。有代表性的模型有 Jelinski-Moranda模型, Schick-Wolverton 模型。( 2)非齊次泊松過程模型這類模型把時(shí)間劃分為0,t1,t2, t ?時(shí)間間隔,每個(gè)間隔內(nèi)發(fā)現(xiàn)的失效數(shù)是泊松隨機(jī)變量,代表性的模型有G-O 模型。( 4) Musa 執(zhí)行時(shí)間模型這類模型以CPU 時(shí)間為標(biāo)準(zhǔn)描述軟件系統(tǒng)的可靠性,建立CPU 時(shí)間與日歷時(shí)間,程序的可靠性特征與測(cè)試過程資源消耗的關(guān)系。2、非隨機(jī)過程模型( 1)貝葉斯類

10、模型這類模型中有代表性的是L-V 模型。( 2)種子法模型其思想是事先在軟件中植入一定數(shù)量的缺陷植,收集到的缺陷包含植入的和軟件本身的,用它們之間數(shù)量關(guān)系估算軟件系統(tǒng)的缺陷數(shù),即動(dòng)態(tài)模型中的缺陷播種模型。( 3)基于數(shù)據(jù)域的模型這類模型的代表是1973 年提出的Nelson 模型。( 4)其他方法其他的模型還有非參數(shù)分析、時(shí)間序列分析模型等模型。(三)根據(jù)故障過程的特性分類AmritL.Goel 將模型分為4 類:1、故障間隔時(shí)間模型這類模型研究的是故障的間隔時(shí)間。最常用的方法是假設(shè)第i-1 個(gè)和第i 個(gè)故障之間的時(shí)間服從某種分布,從觀測(cè)到的間隔時(shí)間來估計(jì)參數(shù),進(jìn)而估計(jì)軟件可靠性和故障間隔時(shí)間

11、 MTBF ( Mean Time Between Failure)等軟件性能度量。2、故障計(jì)數(shù)模型這類模型關(guān)注的是一定時(shí)間間隔內(nèi)發(fā)生故障的次數(shù),假定故障計(jì)數(shù)服從一種已知的隨機(jī)過程。 可以通過觀測(cè)的故障數(shù)或失效時(shí)間估計(jì)失效率參數(shù),NHPP 類軟件可靠性增長(zhǎng)模型屬于這類模型。3、故障播種模型這類模型類似于種子法模型。4、基于輸入域模型根據(jù)程序的使用情況從輸入情況的分布生成一組測(cè)試用例。由于獲得這個(gè)分布比較困難, 所以一般把輸入域劃分為幾個(gè)有代表性的等價(jià)類,每個(gè)等價(jià)類都與一個(gè)程序路徑有關(guān)。從執(zhí)行這些從輸入域抽取的測(cè)試用例,觀測(cè)軟件故障數(shù),從而估計(jì)軟件可靠性。(四) Trivedi 分類及其他分類K

12、ishorS.Trivedi 劃分模型方法如圖所示Trivedi 分類軟件可靠性模型其他常用的軟件可靠性模型分類方法還有Musa 和 Okumoto 給出的基于模型五種不Hoang Pham 給出的分類體系。2 常見的軟件可靠性建模模型4.1 軟件可靠性解析模型軟件可靠性解析模型主要通過對(duì)軟件失效數(shù)據(jù)行為進(jìn)行假設(shè),并在該假設(shè)的基礎(chǔ)上依靠數(shù)學(xué)解析方法對(duì)軟件可靠性進(jìn)行建模。該類模型可分為指數(shù)模型、對(duì)數(shù)模型、Littlewood-Verrall 模型、數(shù)據(jù)域模型、Markov 鏈模型、隨機(jī)Petri 網(wǎng)模型等。4.1.1 指數(shù)模型( 1) J-M 模型J-M 軟件可靠性模型于1972 年由 Jeli

13、nski 和 Moranda創(chuàng)建, 屬于二項(xiàng)分布有限錯(cuò)誤模型。 其基本假設(shè)如下:1) 測(cè)試未運(yùn)行時(shí)軟件失效為0; 當(dāng)測(cè)試進(jìn)行時(shí),軟件錯(cuò)誤將被檢出,其失效率函數(shù)與軟件當(dāng)前的殘留故障數(shù)成正比;同時(shí),軟件中存在的總故障數(shù)是固定的;2) 失效率在每個(gè)失效間隔內(nèi)是常數(shù),其數(shù)值正比于殘留的錯(cuò)誤數(shù);3) 軟件錯(cuò)誤引發(fā)的故障是相互獨(dú)立的;4) 每次只修正一個(gè)錯(cuò)誤,且當(dāng)軟件故障出現(xiàn)時(shí),引發(fā)故障的錯(cuò)誤將被立即排除,并不會(huì)引入新的錯(cuò)誤。J-M 模型中軟件第i 次失效強(qiáng)度函數(shù)為?=? ?- ?+ 1 ,其中?為軟件中錯(cuò)誤總數(shù),? 為失效率。J-M 模型軟件可靠性函數(shù)為:R ?=e-?J-M 模型以一種較為簡(jiǎn)單的方式,

14、將軟件故障視為測(cè)試時(shí)間的函數(shù),主要缺點(diǎn)在于假 設(shè)條件過于理想,實(shí)際情況中很難滿足。( 2) G-O 模型Goel-Okumoto 軟件可靠性模型(G-O 模型 )于 1979 年由 Goel 和 Okumoto提出,屬于NHPP 有限錯(cuò)誤模型,其基本假設(shè)如下:1) 測(cè)試未運(yùn)行時(shí)的軟件失效為0; 當(dāng)測(cè)試進(jìn)行時(shí),軟件失效服從均值為m ?的泊松分布;2) 當(dāng) t 0時(shí) ,測(cè)試時(shí)間?,?+ ?內(nèi)產(chǎn)生的失效?與軟件殘留錯(cuò)誤成正比;3) 對(duì)于任一組有限時(shí)間點(diǎn),在對(duì)應(yīng)時(shí)間段分別發(fā)生的失效次數(shù)相互獨(dú)立;4) 每次只修正一個(gè)錯(cuò)誤,當(dāng)軟件故障出現(xiàn)時(shí),引發(fā)故障的錯(cuò)誤被立即排除,并不會(huì)引入新的錯(cuò)誤。G-O 模型在測(cè)試

15、區(qū)間0. ?內(nèi)的累計(jì)失效數(shù)期望函數(shù)為m ?= ?1 - ?-? ,t為軟件累計(jì)測(cè)試時(shí)間??煽啃院瘮?shù)為:R?= ?(?-?+?-?-?)=e-m(s)e-bt( 3) Musa基本執(zhí)行時(shí)間模型Musa 基本執(zhí)行時(shí)間軟件可靠性模型(Musa 模型)中,軟件測(cè)試時(shí)間使用了更為精確的 CPU 占用時(shí)間作為度量基礎(chǔ),并給出了CPU 時(shí)間與日歷時(shí)間的轉(zhuǎn)換關(guān)系,但軟件由于運(yùn)行環(huán)境的差異導(dǎo)致CPU 執(zhí)行時(shí)間可能大不相同。( 4) 超指數(shù)增長(zhǎng)模型超指數(shù)增長(zhǎng)模型對(duì)經(jīng)典指數(shù)模型進(jìn)行了擴(kuò)展,屬于 NHPP有限錯(cuò)誤模型。由于編程人員的差異、新舊代碼的差異、實(shí)現(xiàn)語(yǔ)言的差異等因素導(dǎo)致了軟件不同部分的失效率各有不同, 因此軟

16、件的不同部分將分配不同的失效率。超指數(shù)增長(zhǎng)模型可用于擁有新模塊和重用模塊的復(fù)雜系統(tǒng)中。超指數(shù)增長(zhǎng)模型在測(cè)試區(qū)間0.?內(nèi)的累計(jì)失效數(shù)期望函數(shù)為:?m t =?1 -?-?=?1式中,n表示具有相似特征模塊構(gòu)成的簇?cái)?shù)量;?表示在第?i個(gè)簇中存在的錯(cuò)誤總數(shù);?表示?在第i個(gè)簇的失效率。該模型在應(yīng)用中如何確定大型復(fù)雜系統(tǒng)中模塊簇的劃分是該模型的關(guān)鍵問題之一。( 5) S-Shape模型S-Shape模型主要分為Yamada Delayed S-Shaped 模型和 Inflected S-Shaped模型。S-Shape模型使用Gamma分布取代了G-O 模型的二項(xiàng)分布,屬于NHPP 有限錯(cuò)誤模型。S

17、-Shape模型認(rèn)為錯(cuò)誤發(fā)現(xiàn)曲線應(yīng)該體現(xiàn)出兩個(gè)特征:1) 軟件測(cè)試者對(duì)測(cè)試軟件的了解程度; 2) 軟件殘余缺陷隨測(cè)試過程的進(jìn)行,其發(fā)現(xiàn)難度變得越來越大。Yamada Delayed S-Shaped模型認(rèn)為軟件失效在測(cè)試開始時(shí)增大,在測(cè)試結(jié)束時(shí)減小。在該模型中,軟件失效數(shù)據(jù)隨測(cè)試時(shí)間呈S 曲線變化,體現(xiàn)出由于測(cè)試初期測(cè)試者對(duì)測(cè)試對(duì)象的不熟悉以及測(cè)試后期失效數(shù)據(jù)難于發(fā)現(xiàn)導(dǎo)致失效發(fā)現(xiàn)率下降這一現(xiàn)象。YamadaDelayed S-Shaped模型在測(cè)試區(qū)間0.?內(nèi)的累計(jì)失效數(shù)期望函數(shù)為:m ?= ?1 - (1 + ?)?-?式中,a表示最終被檢測(cè)出的失效總數(shù)的期望值;b表示失效率。Inflect

18、ion S-Shaped 模型認(rèn)為錯(cuò)誤發(fā)現(xiàn)率在整個(gè)測(cè)試周期中呈現(xiàn)遞增的趨勢(shì)。InflectionS-Shaped模型在測(cè)試區(qū)間0. ?內(nèi)的累計(jì)失效數(shù)期望函數(shù)為:?(1 - ?-?)?1 - ?m t = 1 + ?-? ?=?式中 ,a表示最終被檢測(cè)出的失效總數(shù)的期望值;b 表示失效率;r 表示可以檢測(cè)的失效數(shù)占軟件系統(tǒng)總失效數(shù)的比例。2.1.2 對(duì)數(shù)模型( 1) Geometric模型Geometric模型屬于對(duì)數(shù)無(wú)限錯(cuò)誤模型,其基本假設(shè)如下:1) 失效發(fā)現(xiàn)率隨軟件檢測(cè)過程遞減;2) 系統(tǒng)中錯(cuò)誤是無(wú)限的。該模型認(rèn)為較早發(fā)現(xiàn)的錯(cuò)誤對(duì)失效發(fā)現(xiàn)率的影響大于較晚發(fā)現(xiàn)的錯(cuò)誤,其錯(cuò)誤發(fā)現(xiàn)間隔時(shí)間為指數(shù)分

19、布,錯(cuò)誤發(fā)現(xiàn)間隔時(shí)間密度為f Xi = D?i- 1Xi, 其中D和 ?為常量參數(shù),Xi為第 i 個(gè)失效數(shù)據(jù)發(fā)送時(shí)的觀測(cè)數(shù)據(jù).Geometric模型中從第(i - 1)個(gè)錯(cuò)誤開始,發(fā)現(xiàn)第i個(gè)錯(cuò)誤的期望時(shí)間為:E ? = ?1?-1。 Geometric 模型在測(cè)試區(qū)間0. ?內(nèi)的累計(jì)失效數(shù)期望函數(shù)為:1m t = ?ln ?+ 1式中 , ?= - ln ? 且 0 < ? < 1 。( 2) Musa-Okumoto對(duì)數(shù)泊松模型Musa-Okumoto 對(duì)數(shù)泊松模型屬于對(duì)數(shù)無(wú)限錯(cuò)誤模型。該模型構(gòu)建于指數(shù)遞減的失效強(qiáng)度函數(shù)之上,其失效強(qiáng)度伴隨失效期望遞減成指數(shù)遞減,即 t = 0e

20、- bm (t) ,b > 0為失效率衰減參數(shù), , 0 > 0為初始失效率。2.1.3 Littlewood-Verrall 模型Littlewood-Verrall 可靠性模型(L-V 模型)考慮了發(fā)現(xiàn)缺陷不被完全剔除的情況。該模型 基 本 假 設(shè) 如 下 :1) 相 鄰 錯(cuò) 誤 間 隔 時(shí) 間 Xi 為 相 互 獨(dú) 立 指 數(shù) 隨 機(jī) 變 量i,其中i = 0,1 n;2) i構(gòu)成獨(dú)立隨機(jī)變量序列,并服從參數(shù)為 和 (i) 的 Gamma 分布 , (i) 為增函數(shù),用于描述程序員的素質(zhì)以及軟件開發(fā)難度;3) 軟件使用情況近似于設(shè)計(jì)預(yù)期。增函數(shù) (i) 綜合了程序員素質(zhì)0以及

21、軟件開發(fā)難度 1兩個(gè)因素,在 L-V 模型中 (i) 的線性表達(dá)式和二次表達(dá)式分別為: i = 0 + 1i和 i = 0 + 1i2, 其中, 0, 1 > 0。L-V 模型的累計(jì)失效數(shù)期望函數(shù)為:m t = 1 (-?0 + ?0?2 + 2?1?)?1L-V 模型與前面討論的模型相比,最主要的不同在于前面的模型僅考慮了錯(cuò)誤的發(fā)生對(duì)軟件可靠性的影響,而沒有考慮軟件穩(wěn)定運(yùn)行這一現(xiàn)象對(duì)軟件可靠性的影響。2.1.4 數(shù)據(jù)域模型Nelson 模型是數(shù)據(jù)域軟件可靠性模型的代表,也是最重要的軟件可靠性模型之一。該模型最早于1973年由 Nelson提出,并于1978年得以完善。Nelson 模型

22、中,軟件的可靠性通過對(duì)軟件運(yùn)行的輸入數(shù)據(jù)進(jìn)行測(cè)量,這些輸入數(shù)據(jù)從集合E= Ei: i = 1,2, N中隨機(jī)選取。隨機(jī)選取的n個(gè)輸入數(shù)據(jù)概率分布為(Pi:i = 1,2, . N)。Nelson模型基本假設(shè)如下:1) 程序被認(rèn)為是集E上的一個(gè)可計(jì)算函數(shù)F的一個(gè)規(guī)范,一個(gè)輸入數(shù)據(jù)Ei對(duì)應(yīng)一個(gè)程序執(zhí)行回合并產(chǎn)生一個(gè)輸出F Ei ;2) 由于程序包含缺陷,程序?qū)嶋H確定函數(shù)F, 該函數(shù)不同于希望函數(shù)F; 3) 對(duì)于某些Ei,程序?qū)嶋H輸出F(Ei)在希望輸出F(Ei)的容許范圍之內(nèi),即FEi- F(Ei) i;但對(duì)另一些Ej程序?qū)嶋H輸出FEj超出容許范圍 ,即F Ej - F(Ej) > j,這時(shí)

23、認(rèn)為程序發(fā)生一次失效;4) 測(cè)試過程中不剔除程序缺陷。若 ne為導(dǎo)致軟件產(chǎn)生故障的輸入數(shù)據(jù),則軟件可靠性可以表示為R1 = 1 - ne, 另一個(gè)en軟件可靠性計(jì)算公式fR2 = 1 -jN=1 nfj p(Ej),其中nj為輸入子域Ej中元素的數(shù)量,fj為 nj次運(yùn)行后軟件出現(xiàn)故障的次數(shù)。Nelson 模型存在的問題主要表現(xiàn)在輸入數(shù)據(jù)集較大和輸入數(shù)據(jù)的隨機(jī)選取具有盲目 性和局限性。2.1.5 Markov 鏈模型基于 Markov 鏈的軟件可靠性模型主要用于評(píng)估預(yù)測(cè)基于構(gòu)件的軟件系統(tǒng)。構(gòu)件是指封裝了數(shù)據(jù)和功能的,在運(yùn)行時(shí)能夠通過參數(shù)進(jìn)行配置的模塊。通常構(gòu)件由第三方開發(fā),具有清晰的接口描述。隨

24、著軟構(gòu)件技術(shù)的快速發(fā)展,聚集軟構(gòu)件設(shè)計(jì)大型復(fù)雜軟件系統(tǒng)的軟件開發(fā)方法日趨成熟,基于構(gòu)件的可靠性模型研究也得到越來越多的關(guān)注。( 1) Cheung模型Cheung模型屬于基于Markov 鏈的軟件可靠性模型。Cheung模型將軟件的控制結(jié)構(gòu)轉(zhuǎn)化成有向圖G, 并規(guī)定圖中每一個(gè)節(jié)點(diǎn)Ni表示一個(gè)構(gòu)件,構(gòu)件Ni到 Nj的轉(zhuǎn)移用一個(gè)矢量邊 (Ni,Nj)表示。定義Ri為的可靠性Ni的可靠性,Pij為 (Ni,Nj)的轉(zhuǎn)移概率。根據(jù)有向圖G,構(gòu)造出構(gòu)件轉(zhuǎn)移矩陣M ,其中 M i,j = Ri Pij M(i, j),表示從Ni成功到達(dá)Nj的可能性。Cheung 模型基本假設(shè)如下:1) 構(gòu)件間的可靠性是相互

25、獨(dú)立的;2) 構(gòu)件間的控制轉(zhuǎn)移是馬爾科夫過程;3) 構(gòu)件間連接邏輯完全可靠。Cheung模型中,具有n 個(gè)構(gòu)件的軟件系統(tǒng)可靠性表示為R= S(1, n) × Rn,其中Rn為第n 個(gè)構(gòu)件的個(gè)體可靠性,S為 n × n矩陣,具體為 :S = I + Q+ Q2 + ?3 + ? =?=0式中, I 為 nxn單位矩陣<Q為轉(zhuǎn)移概率矩陣P的變形。Cheung模型只能處理單輸入/單輸出系統(tǒng),沒有考慮連接件的可靠性,而且把構(gòu)件的可靠性假設(shè)為固定不變的參數(shù)。( 2) Krishnamurthy 模型Krishnamurthy 模型遵守Cheung模型的假設(shè)條件,屬于Markov

26、 鏈軟件可靠性模型。該模型將軟件中的構(gòu)件視為獨(dú)立節(jié)點(diǎn),將任意一個(gè)測(cè)試用例運(yùn)行中經(jīng)過的節(jié)點(diǎn)序列視為路徑。 基于這一基本概念,該模型認(rèn)為基于構(gòu)件的軟件系統(tǒng)的可靠性可以由路徑的可靠性予以描述。( 3) Yacoub模型Yacoub 模型屬于Markov 鏈軟件可靠性模型。該模型用構(gòu)件依賴圖來描述構(gòu)件間的組裝交互關(guān)系,構(gòu)件依賴圖是一個(gè)有向圖,用于描述構(gòu)件的可靠性、連接與接口的可靠性、構(gòu)件間控制的轉(zhuǎn)換及轉(zhuǎn)換的概率等方面內(nèi)容。該模型認(rèn)為構(gòu)件間連接邏輯并非完全可靠,并引入RTij進(jìn)行量化,但模型中并未對(duì)此做深入分析和討論,而僅作為固定不變的參數(shù)值加以使用。4)毛曉光通用模型毛曉光通用模型認(rèn)為軟件可靠性的計(jì)算

27、是軟件中所有運(yùn)行路徑出現(xiàn)頻度與該路經(jīng)可靠性乘積的累加R =Pi? RPi × FPi / Pi? FPi, R為可靠性,為所有運(yùn)行路徑的集合,RPi和 FPi分別為路徑Pi的可靠性和出現(xiàn)頻度。該模型沒有對(duì)連接件的可靠性進(jìn)行分析,并且沒有涉及敏感度計(jì)算,不利于對(duì)軟件早期開發(fā)的指導(dǎo)。( 5)Wang模型Wang模型對(duì)Cheung模型進(jìn)行了改進(jìn),允許軟件具有并發(fā)、異構(gòu)、 多輸入/輸出特性。該模型將輸入和輸出分別定義為I = Si1 ,Si2 . , Sim 和 F = Sf1 , Sf2 . , Sfm , 同時(shí)增加了超級(jí)初態(tài)SI和超級(jí)終態(tài)SF,SI和 SF的可靠性均為1。 Wang 模型

28、對(duì)不同結(jié)構(gòu)的軟件體系結(jié)構(gòu)分別進(jìn)行可靠性分析,在狀態(tài)轉(zhuǎn)移概率中考慮了連接件的可靠性,但這樣處理的連接件的可靠性并不符合實(shí)際。2.1.6 隨機(jī) Petri 網(wǎng)模型隨機(jī) Petri 網(wǎng)作為軟件可靠性建模的一種工具能較全面地描述系統(tǒng)的動(dòng)態(tài)變化行為,當(dāng)系統(tǒng)發(fā)生變化時(shí),只要增加相應(yīng)位置中的標(biāo)記數(shù)即可,可以大大減少工作量。該模型將具體系統(tǒng)轉(zhuǎn)化為隨機(jī)Petri 網(wǎng)模型;并構(gòu)造出與該隨機(jī)Petri 網(wǎng)模型同構(gòu)的Markov 鏈;最后基于 Markov 鏈狀態(tài)概率進(jìn)行系統(tǒng)可靠性分析。狀態(tài) S 代表可能發(fā)生的局部故障狀態(tài);變遷 T 代表使系統(tǒng)狀態(tài)變化的事件;弧R 表示 S 和 T 間的關(guān)系。隨機(jī)Petri 網(wǎng)的軟件

29、可靠性模型示意圖如圖所示。Petri 網(wǎng)的軟件可靠性模型示意圖2.2 軟件可靠性啟發(fā)模型軟件可靠性啟發(fā)模型不同于解析模型,該模型利用軟件歷史失效數(shù)據(jù)對(duì)自身進(jìn)行訓(xùn)練、更新, 逼近實(shí)際可靠性。啟發(fā)模型可分為基于神經(jīng)網(wǎng)絡(luò)的軟件可靠性模型和基于遺傳編程的軟件可靠性模型。2.2.1 神經(jīng)網(wǎng)絡(luò)模型神經(jīng)網(wǎng)絡(luò)具有強(qiáng)大的非線性輸入輸出映射能力,出色的容錯(cuò)性和泛化能力,可以對(duì)現(xiàn)有知識(shí)歸納學(xué)習(xí),繼而進(jìn)行預(yù)測(cè)。神經(jīng)網(wǎng)絡(luò)模型應(yīng)用于軟件可靠性建模,突出優(yōu)點(diǎn)在于無(wú)需對(duì)軟件系統(tǒng)的失效進(jìn)行假設(shè)約束。在建立模型的過程中,關(guān)鍵是解決這樣的幾個(gè)問題:失效數(shù)據(jù)預(yù)處理;網(wǎng)絡(luò)結(jié)構(gòu)和算法;評(píng)估預(yù)測(cè)的方法。2.2.2 遺傳編程模型遺傳編程(g

30、enetic programming, GP)是最近幾年提出并得以發(fā)展的軟件可靠性建模方法。 GP 模型采用遺傳算法的基本思想,采用樹形結(jié)構(gòu)表示失效數(shù)據(jù)表達(dá)式,葉節(jié)點(diǎn)是失效的原始變量,中間節(jié)點(diǎn)為失效數(shù)據(jù)函數(shù),根節(jié)點(diǎn)是最終輸出的失效數(shù)據(jù)曲線表達(dá)式。通過使用交叉、變異等遺傳操作和選擇操作動(dòng)態(tài)地改變這些樹結(jié)構(gòu),并迭代演化直至找到失效數(shù)據(jù)曲線的優(yōu)化表達(dá)式。3 軟件可靠性建模方法3.1 軟件可靠性模型評(píng)價(jià)的主要準(zhǔn)則( 1)有效性模型根據(jù)軟件現(xiàn)在和過去的故障行為(即失效數(shù)據(jù))預(yù)估將來故障行為的能力稱為預(yù)測(cè)的有效性。軟件可靠性模型預(yù)測(cè)的有效性可以通過故障數(shù)方式或故障時(shí)間方式表示出來。( 2)適用性模型的適用

31、性強(qiáng)弱,應(yīng)該利用大小、結(jié)構(gòu)、 功能各異的軟件產(chǎn)品對(duì)其進(jìn)行判定。同時(shí),一個(gè)適用性強(qiáng)的模型應(yīng)該能適用于不同的軟件產(chǎn)品開發(fā)環(huán)境、不同的軟件產(chǎn)品生命周期階段、 不同的應(yīng)用場(chǎng)景。但是, 一個(gè)可靠性增長(zhǎng)模型對(duì)于某一特定的軟件產(chǎn)品或者開發(fā)環(huán)境,得到的預(yù)測(cè)結(jié)果可能不是很理想,并不能說這個(gè)模型就完全沒有其適用性。( 3)模型能力模型能力指的是軟件可靠性模型對(duì)給定軟件產(chǎn)品的可靠性預(yù)測(cè)和評(píng)價(jià)的能力。一般情況下, 一個(gè)能力強(qiáng)的模型能對(duì)以下的可靠性指標(biāo)進(jìn)行很好的測(cè)量和評(píng)價(jià):當(dāng)前的可靠性,平均無(wú)故障時(shí)間(MTTF) , 或故障密度;期望達(dá)到規(guī)定可靠性目標(biāo)的日期,即期望 MTTF,或故障密度目標(biāo)的日期;與達(dá)到規(guī)定目標(biāo)有關(guān)的

32、人力和計(jì)算機(jī)資源以及成本要求。4)簡(jiǎn)捷性模型簡(jiǎn)捷性主要體現(xiàn)在以下三個(gè)方面:模型所需要的數(shù)據(jù)收集簡(jiǎn)單并且經(jīng)濟(jì)代價(jià)低;模型概念簡(jiǎn)單直觀。只有做到概念簡(jiǎn)單直觀,軟件工程師們才能清楚的判定在什么情況下模型是可用的,什么情況下模型已脫離了工程實(shí)用性;模型參數(shù)解釋清楚,這樣軟件工程師們?cè)跀?shù)據(jù)不充足的情況下,對(duì)參數(shù)的估計(jì)才具有可行性。同時(shí), 模型所包含參數(shù)個(gè)數(shù)應(yīng)該是盡量的少。( 5)模型假設(shè)質(zhì)量軟件可靠性模型的建立是基于一定的假設(shè)條件的,應(yīng)該從邏輯正確性及軟件工程師的經(jīng)驗(yàn)等方面考查假設(shè)的合理性和顯然成立的程度。3.2 軟件可靠性建模流程為了滿足軟件可靠性指標(biāo)要求,需要對(duì)軟件進(jìn)行測(cè)試-可靠性分析- 再測(cè)試-再

33、分析-修改的循環(huán)過程。軟件可靠性建模的目標(biāo)是為了對(duì)軟件中失效趨勢(shì)和可靠性進(jìn)行有效預(yù)測(cè),來判斷軟件是否達(dá)到發(fā)布要求。軟件可靠性模型的建模過程如下圖:獲得性能度量的估計(jì)判斷1)軟件失效數(shù)據(jù)收集軟件失效數(shù)據(jù)是進(jìn)行軟件可靠性分析和預(yù)測(cè)的基礎(chǔ),收集到的軟件失效數(shù)據(jù)質(zhì)量好壞 直接影響到模型預(yù)測(cè)的準(zhǔn)確性。在失效數(shù)據(jù)收集前需要對(duì)時(shí)間和數(shù)據(jù)做如下解釋:關(guān)于時(shí)間,在軟件可靠性模型研究中,一般都把時(shí)間大致分成了兩類,即日歷時(shí)間和執(zhí)行時(shí)間。盡管Musa 模型堅(jiān)持認(rèn)為只有對(duì)執(zhí)行時(shí)間進(jìn)行測(cè)量才是唯一有效的,但是根據(jù)實(shí)際經(jīng)驗(yàn),對(duì)軟件運(yùn)行時(shí)間的測(cè)量,并非非執(zhí)行時(shí)間不可,而且執(zhí)行時(shí)間需要操作系統(tǒng)得出, 這無(wú)疑增加了軟件失效數(shù)據(jù)

34、收集的難度和工作量。相比之下,日歷時(shí)間具有很大的靈活性及優(yōu)勢(shì),它便于測(cè)量記錄,而且不會(huì)影響到后續(xù)的分析。因此在本文模型中,失效時(shí)間記錄采用的是日歷時(shí)間。關(guān)于數(shù)據(jù),軟件失效數(shù)據(jù)可分為完全數(shù)據(jù)和非完全數(shù)據(jù)兩類。它們的定義是:若?1?,2, .,?- ?-? 1= 1,那么數(shù)據(jù)集合?| ?0 = 0, ?=0,1,2, ?為完全數(shù)據(jù)集合;若?1?,2, .,? ?- ?-? 1> 1,那么數(shù)據(jù)集合?| ?0 = 0, ?=0,1,2, ?為非完全數(shù)據(jù)集合,其中y(i)是時(shí)間t(i)時(shí)刻的累計(jì)故障數(shù)。由上述定義可知完全數(shù)據(jù)即故障時(shí)間間隔數(shù)據(jù),非完全數(shù)據(jù)便為各個(gè)時(shí)間間隔內(nèi)的累計(jì)故障數(shù)據(jù)。失效數(shù)據(jù)的

35、收集具體包括:故障發(fā)生時(shí)間、相鄰故障的間隔時(shí)間、各個(gè)時(shí)間間隔內(nèi)的累計(jì)故障數(shù)。失效數(shù)據(jù)收集完成后,可畫出軟件故障數(shù)隨時(shí)間變化的散點(diǎn)圖或直方圖。( 2)數(shù)學(xué)模型建立通過分析收集得到的軟件失效數(shù)據(jù)提出合理假設(shè),依據(jù)這些假設(shè)列出數(shù)學(xué)表達(dá)式,建立軟件可靠性模型。( 3)模型參數(shù)估計(jì)在使用模型進(jìn)行軟件可靠性分析前,需要先求出模型中未知參數(shù)的估計(jì)值。常用的參數(shù)估計(jì)方法有:最大似然估計(jì)法、最小二乘法、貝葉斯估計(jì)法等。( 4)得到擬合模型求出模型中未知參數(shù)的估計(jì)值后就可以建立擬合模型,可通過Matlab 工具畫出擬合曲線,擬合效果取決于軟件失效數(shù)據(jù)質(zhì)量及所選用的模型形式。( 5)擬合效果測(cè)試通過測(cè)試來檢查所獲得

36、的模型是否與實(shí)測(cè)數(shù)據(jù)擬合?如能很好擬合,就說明擬合模型可很好的描述所觀察的故障情況。則可僅需進(jìn)行下一步。若不擬合,就必須檢查或重新選擇更恰當(dāng)?shù)哪P?。?6)獲得性能度量的估計(jì)通過此步驟可對(duì)包括軟件可靠性在內(nèi)軟件系統(tǒng)的性能作出定量的度量;( 7)做出判定通過判定以確定系統(tǒng)是否需要繼續(xù)進(jìn)行測(cè)試,是否可以交付使用。3.3 常見參數(shù)估計(jì)方法1 最小二乘法最小二乘法作為一種數(shù)學(xué)優(yōu)化技術(shù),是通過最小化誤差的平方和來尋找數(shù)據(jù)的最佳函數(shù)匹配。 利用最小二乘法,可以簡(jiǎn)便地求得未知數(shù)據(jù),使得這些數(shù)據(jù)與實(shí)際數(shù)據(jù)間誤差的平方和為最小。設(shè)有隨機(jī)變量Y 由 k 個(gè)參數(shù)和 k 個(gè)變量組成,并且根據(jù)數(shù)據(jù)可對(duì)k 個(gè)參數(shù)進(jìn)行估計(jì)

37、。求,使得:令結(jié)果等于零,可得:其中記,可以證明,若,即。那么,稱為 的一致最小二乘無(wú)偏估計(jì)。最大似然估計(jì)法最大似然估計(jì)法,也叫極大似然法,是最為常用的經(jīng)典統(tǒng)計(jì)方法。它最早由德國(guó)大數(shù)學(xué)家 C.F. Gauss 提出,1912 年, 英國(guó)統(tǒng)計(jì)學(xué)家R· A· Fisher 在其一篇文章中重新提出, 并且證明了最大似然估計(jì)法的一些性質(zhì)。最大似然估計(jì)法的基本思想是:由樣本值選擇參數(shù),使得該樣本發(fā)生的概率最大。具體做法如下:設(shè)總體X 概率密度函數(shù)為,其中為未知參數(shù),為來自總體X 的一個(gè)給定的子樣,則似然函數(shù):為參數(shù) 的函數(shù)。求使似然函數(shù)的值達(dá)到最大,為參數(shù)的最大似然估計(jì)值。最大似然估

38、計(jì)的求法包括以下步驟:1 ) 根據(jù)總體分布導(dǎo)出樣本聯(lián)合密度(或聯(lián)合概率函數(shù))2) 將樣本聯(lián)合密度(或聯(lián)合概率函數(shù))中的參數(shù) 看作自變量,自變量看成已知常數(shù),得到似然函數(shù);3) 通常對(duì)似然函數(shù)做對(duì)數(shù)變換得到,求得的最大值點(diǎn),即 的最大似然估計(jì);( 4)在最大值點(diǎn)的表達(dá)式中將樣本值代入即可得到參數(shù)的極大似然估計(jì)值。貝耶斯估計(jì)由貝耶斯統(tǒng)計(jì)學(xué)理論可知,對(duì)總體的特征數(shù)進(jìn)行推斷時(shí),除了使用到總體信息和樣本信息外,還應(yīng)該使用到先驗(yàn)信息,即抽樣(試驗(yàn))之前有關(guān)統(tǒng)計(jì)問題的一些信息。( 1)先驗(yàn)分布將總體中的未知參數(shù)看成一取值于參數(shù)空間? 的隨機(jī)變量,它有一概率分布,記為,稱為參數(shù) 的先驗(yàn)分布。當(dāng) 是參數(shù)空間?

39、上的連續(xù)型隨機(jī)變量時(shí),稱 的密度函數(shù)為先驗(yàn)密度。( 2)后驗(yàn)分布在貝耶斯統(tǒng)計(jì)學(xué)中,把總體信息、樣本信息及先驗(yàn)信息歸納起來的最好形式是在總體分 布 基 礎(chǔ) 上 獲 得 的 樣 本和 參 數(shù) 的 聯(lián) 合 密 度 函 數(shù) :,在這個(gè)聯(lián)合密度函數(shù)中,當(dāng)樣本給定之后,未知的僅是參數(shù) 了, 我們關(guān)心的是樣本給定后, 的條件密度函數(shù),依據(jù)密度的計(jì)算公式, 容易獲得這個(gè)條件密度函數(shù)這就是貝耶斯公式的密 度 函 數(shù) 形 式 ,稱 為 的 后 驗(yàn) 密 度 函 數(shù) , 或 后 驗(yàn) 分 布 。 其 中 ,稱為樣本的邊際分布,或稱樣本的無(wú)條件分布,它的積分區(qū)域就是參數(shù) 的取值范圍,根據(jù)具體情況而定。歸納起來貝耶斯估計(jì)法

40、的過程為,人們根據(jù)先驗(yàn)信息對(duì)參數(shù) 已有一個(gè)認(rèn)識(shí),這個(gè)認(rèn)識(shí)就是先驗(yàn)分布。然后通過試驗(yàn),獲得樣本,從而對(duì) 的先驗(yàn)分布進(jìn)行調(diào)整,調(diào)整的方法就是使用上面的貝耶斯公式,調(diào)整的結(jié)果就是后驗(yàn)分布后驗(yàn)分布是總體信息、樣本信息及先驗(yàn)信息這三種信息的綜合。獲得后驗(yàn)分布使人們對(duì) 的認(rèn)識(shí)又前進(jìn)一步,可以看出,獲得樣本的的效果是把我們對(duì) 的認(rèn)識(shí)由調(diào) 整 到所以對(duì) 的統(tǒng)計(jì)推斷就應(yīng)建立在后驗(yàn)分布的基礎(chǔ)上。3.4 常見軟件可靠性建模方法3.4.1 基于黑盒的可靠性模型基于“黑盒”的軟件可靠性模型將軟件看成一個(gè)單一的整體,沒有內(nèi)部結(jié)構(gòu)的建模。這類模型使用統(tǒng)計(jì)方法對(duì)軟件可靠性進(jìn)行建模,利用軟件測(cè)試時(shí)獲得的錯(cuò)誤數(shù)據(jù)來估計(jì)模型參數(shù)或

41、者校準(zhǔn)模型。3.4.2 基于體系結(jié)構(gòu)的可靠性建模使用結(jié)構(gòu)化方法來量化軟件可靠性的動(dòng)機(jī)主要有如下幾個(gè)因素:(1)對(duì)于現(xiàn)有很多由可重用構(gòu)件以及COTS構(gòu)件組成的軟件系統(tǒng),可以通過結(jié)構(gòu)化的方法來進(jìn)行全系統(tǒng)的可靠性分析;(2)通過結(jié)構(gòu)化可靠性模型,可以將軟件系統(tǒng)的可靠性與軟件系統(tǒng)結(jié)構(gòu)以及單個(gè)構(gòu)件的可靠性聯(lián)系在一起;(3)研究組成軟件系統(tǒng)的各個(gè)構(gòu)件對(duì)系統(tǒng)整體可靠性的敏感性,從而可以對(duì)系統(tǒng)的可靠性瓶頸進(jìn)行分析;(4)結(jié)構(gòu)化可靠性模型適用于軟件設(shè)計(jì)與開發(fā)的全生命周期,而不像軟件可靠性增長(zhǎng)模型那樣只能在測(cè)試階段使用。(1)基于構(gòu)件的軟件系統(tǒng)結(jié)構(gòu)建模構(gòu)件是基于結(jié)構(gòu)的軟件可靠性浮估的基本單元,可以理解為在軟件系統(tǒng)

42、中能夠?qū)崿F(xiàn)特定功能的邏輯上獨(dú)立的模塊,同時(shí)該模塊可以被單獨(dú)的實(shí)際,實(shí)現(xiàn)及測(cè)試。設(shè)計(jì)者需要根據(jù)軟件系統(tǒng)的功能性能要求等,將系統(tǒng)分解為個(gè)個(gè)的構(gòu)件,在此基礎(chǔ)上對(duì)系統(tǒng)中構(gòu)件之間的交互關(guān)系以及系統(tǒng)中構(gòu)件的使用方式進(jìn)行建模。(2)系統(tǒng)失效模式建模在獲取軟件系統(tǒng)的體系結(jié)構(gòu)之后,要在其基礎(chǔ)上定義錯(cuò)誤行為。錯(cuò)誤可能在模塊執(zhí)行的時(shí)候發(fā)生,或者是兩個(gè)模塊之間狀態(tài)轉(zhuǎn)移的時(shí)候發(fā)生。模塊以及模塊之間接口的錯(cuò)誤行為可以通過他們的可靠性及錯(cuò)誤率(恒定的或者是與時(shí)間有關(guān)的)來確定。(3)軟件系統(tǒng)可靠性建模系統(tǒng)可靠性建模由兩方面因素決定,一方面是軟件的組成及運(yùn)行方式,即軟件系統(tǒng)結(jié)構(gòu)模型; 一方面是系統(tǒng)的失效模式,即系統(tǒng)出現(xiàn)故障的

43、方式。由于融合結(jié)構(gòu)與錯(cuò)誤行為的方法不同,目前主要有4 種結(jié)構(gòu)化可靠性建模方式:基于狀態(tài)的建模、基于路徑的建模、可加模型以及基于操作剖面的模型。下面將對(duì)這4 類建模方法中的典型模型進(jìn)行詳細(xì)的介紹。1 . 基于狀態(tài)的模型該類模型主要使用軟件的控制流圖來描述軟件的體系結(jié)構(gòu),并假設(shè)模塊間的轉(zhuǎn)移具有馬爾可夫?qū)傩裕@就意味如果已知任何時(shí)間下模塊的狀態(tài),那么系統(tǒng)將來的行為獨(dú)立于過去的行為,僅和當(dāng)前的行為狀態(tài)有關(guān)。這些模型中軟件結(jié)構(gòu)主要使用離散時(shí)間馬爾可夫鏈(DTMC) 、 連續(xù)時(shí)間馬爾可夫鏈(CTMC)、 半馬爾可夫過程等過程進(jìn)行建模。這可以進(jìn)一步分為吸納和不可分解兩類,前者適用于那些可以清楚地劃分軟件運(yùn)行

44、時(shí)操作與軟件終結(jié)操作的那些應(yīng)用,后者適用于連續(xù)運(yùn)行的軟件應(yīng)用?;跔顟B(tài)的模型也可以被劃分為組合或者層次模型。組合模型將軟件結(jié)構(gòu)和失效行為融合進(jìn)個(gè)組合模型,并以此模型來預(yù)測(cè)應(yīng)用的可靠性。層次模型首先建立結(jié)構(gòu)模型,然后將失效行為添加進(jìn)結(jié)構(gòu)模型中來計(jì)算可靠性?;跔顟B(tài)的模型中比較著名的有Littlewood-Verrall 模型、 Laprie 模型、 Ledoux 模型、Cheung模型、 Wang模型、 Kubat模型等。2 基于路徑的模型從軟件運(yùn)行的意義上講,軟件失效是發(fā)生在某些特定的執(zhí)行路徑上,而與軟件可靠性計(jì)算密切相關(guān)的軟件可靠性測(cè)試,也可以看成是對(duì)軟件某些路徑的執(zhí)行過程。3 可加模型該類

45、軟件可靠性模型主要利用構(gòu)件的失效數(shù)據(jù)來計(jì)算軟件的可靠性。此類模型假設(shè)構(gòu)件的可靠性可以建模為非奇次泊松過程,系統(tǒng)的失效強(qiáng)度可以表示為構(gòu)件的失效強(qiáng)度之和,因此稱之為可加模型。4 .基 于操作剖面的模型該模型考慮到了在不同的操作剖面下,同一構(gòu)件的可靠性有可能不同的問題。在構(gòu)件的開發(fā)者不能事先知道構(gòu)件的使用情況下,它從構(gòu)件開發(fā)者和使用者綜合的角度來考慮軟件系統(tǒng)可靠性的度量工作。構(gòu)件的開發(fā)人員通過度量得出構(gòu)件的可靠性信息,然后通過操作剖面和子域映射以及操作剖面?zhèn)鬟f映射的方式,讓構(gòu)件的使用人員通過計(jì)算得出構(gòu)件的可靠性和系統(tǒng)的可靠性。本方法基于兩個(gè)創(chuàng)新:(1)剖面映射。軟件開發(fā)入員提供的數(shù)據(jù)手冊(cè)中必須要以操作剖面作為參數(shù),提供在不同的操作剖面下的可靠性參數(shù)。(2)構(gòu)件的輸入域劃分成一組不同的功能子域,以這些子域?yàn)榛鶞?zhǔn),每個(gè)操作剖面都可以表示為在這些子域上的一組加權(quán)向量。假設(shè)構(gòu)件C 的輸入域D 劃分成了n個(gè)不重疊的子域:?= ?1? ?2? . ?每個(gè)子域?都?有它自己的操作剖面?和它的失效概率?。 ?表示D 中 C 會(huì)失效的子域集合,那么?= |?|?|?|?。構(gòu)件C 的操作剖面P可以表示為:P=( ?1,?2 , .?) ,其中?表

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論