




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、-. z.軟件可靠性建模模型概述軟件可靠性的定義1983年美國IEEE計算機學會對軟件可靠性作出了明確定義,此后該定義被美國標準化研究所承受為國家標準,1989年我國也承受該定義為國家標準。該定義包括兩方面的含義:1在規(guī)定的條件下,在規(guī)定的時間內,軟件不引起系統(tǒng)失效的概率;2在規(guī)定的時間周期內,在所述條件下程序執(zhí)行所要求的功能的能力;其中的概率是系統(tǒng)輸入和系統(tǒng)使用的函數,也是軟件中存在的故障的函數,系統(tǒng)輸入將確定是否會遇到已存在的故障如果故障存在的話。軟件失效的根本原因在于程序中存在著缺陷和錯誤,軟件失效的產生與軟件本身特性、人為因素、軟件工程管理都密切相關。影響軟件可靠性的主要因素有軟件自身
2、特性、人為因素、軟件工程管理等,這些因素具體還可分為環(huán)境因素、軟件是否嚴密、軟件復雜程度、軟件是否易于用戶理解、軟件測試、軟件的排錯與糾正以及軟件可靠性工程技術研究水平與應用能力等諸多方面。軟件可靠性建模思想建立軟件可靠性模型旨在根據軟件可靠性相關測試數據,運用統(tǒng)計方法得出軟件可靠性的預測值或估計值,下列圖給出了軟件可靠性建模的根本思想。圖軟件可靠性建模根本思想從圖中可以看出軟件失效總體來說隨著故障的檢出和排除而逐漸降低,在任意給定的時間,能夠觀測到軟件失效的歷史。軟件可靠性建模的目標如下:1預測軟件系統(tǒng)到達預期目標所還需要的資源開銷及測試時間;2預測測試完畢后系統(tǒng)的期望可靠性。軟件可靠性建模
3、根本問題軟件可靠性建模需要考慮以下根本問題:模型建立模型建立指的是怎樣去建立軟件可靠性模型。一方面是考慮模型建立的角度,例如從時間域角度、數據域角度、將軟件失效時刻作為建模對象,還可以將一定時間內軟件故障數作為建模對象;另一方面是考慮運用的數學語言,例如概率語言。模型比擬在軟件可靠性模型分類的根底上,對不同的模型分析比擬,并對模型的有效性、適用性、簡潔性等進展綜合權衡,從而確定出模型的適用*圍。模型應用軟件可靠性模型的應用需要從以下兩方面考慮:一是給定了軟件的開發(fā)方案,如何選擇適當的模型;二是給定了軟件可靠性模型,如何指導軟件可靠性工程實踐。軟件系統(tǒng)的失效歷史可以通過對測試得到的失效數據分析獲
4、得,而實際情況中,人們最為關注的是軟件未來的失效趨勢。軟件可靠性模型根本都是建立在一定的假設根底之上,所以,即使花費了大量的時間和精力對軟件的可靠性進展預計,也只是一種預測,這種預測的不確定性是許多未知原因交互作用的結果,根據軟件可靠性模型的預測只能以概率形式表示。軟件可靠性模型的特點與使用的程序設計語言無關。軟件可靠性的應用與選用什么程序設計語言來編寫軟件之間沒有什么直接關系。但對于根據同一個規(guī)格說明書,不管你用什么程序設計語言軟件來編寫軟件,同一個軟件可靠性模型應給出同樣的估測結果。與具體用到的軟件開發(fā)方法無關。軟件開發(fā)是一個十分復雜的過程,涉及到許多的人為因素,從而使得對軟件的質量難以進
5、展預測。為了保證預測的精度,不妨假設待估測的軟件系統(tǒng)是用最壞的軟件開發(fā)方法開發(fā)出來的。測試方法的選擇問題。實際上是無法通過徹底的測試來獲得完全可靠的軟件,所以不得不采用有限的測試,則目標就是用最少的測試以求最大限度的軟件可靠性??梢杂美邕吔缰禍y試法、分類測試法、路徑測試法等方法來到達。幾乎所有的軟件可靠性模型都假定測試環(huán)境就是將來軟件的運行環(huán)境,這限制了高可靠性估計情況下的這些模型的可用性。改錯過程。實際上改正老的錯誤時往往會引人新的錯誤。模型要表述的內容。模型應該指出測試的輸入是否已足夠地覆蓋了輸入域,測試的條件和數據是否已準確地模擬了操作系統(tǒng)、是否已足以查出那些類似的錯誤等。軟件可靠性模
6、型假定測試的條件和數據與操作環(huán)境有著同樣的分布,也就簡捷地假設了上述要表述的內容。輸入的分布問題??煽啃怨烙媷烂艿匾蕾囉谀P图僭O的輸入分布。作為一個極端的情況,如果輸入是一個常數比方說只用到一個輸入,軟件將或者出錯或者成功的執(zhí)行,于是就給出可靠性相應地為0或為1。關于軟件復雜性問題。大多數現有的軟件可靠性模型都沒有考慮這個問題。實際上,復雜的軟件應該比簡單的軟件要求更多的測試。模型的驗證問題。常常由于缺乏實際可用的足夠數據,使得對模型的驗證無法進展,且在整個軟件壽命周期內,軟件幾乎呈常數倍數地增加,導致可靠性也相應地變化,軟件可靠性的驗證工作也就更加復雜化。關于時間問題。在軟件可靠性量測與硬件
7、可靠性量測綜合起來對一定的系統(tǒng)環(huán)境進展考核時,將CPU時間作為時間單位是必要的??紤]模型所要求的數據是否容易收集。否則,由于數據問題,將會限制軟件可靠性的應用*圍。軟件可靠性模型的分類到目前為止,軟件可靠性模型的研究已有40多年的歷史,國內外已發(fā)表的軟件可靠性模型有近百種,但由于對軟件可靠性模型的研究還處在一個初步階段,目前并沒有一個完整、系統(tǒng)的科學分類方法。為了從宏觀上研究、掌握和理解這些模型,不少學者提出不同的分類方法。一根據建模對象分類根據建模對象將模型分為兩種:靜態(tài)模型和動態(tài)模型,如圖:圖根據建模對象分類1、靜態(tài)模型靜態(tài)模型的建模對象是與運行時間無關的數據或信息,如軟件的各種復雜性參數
8、,特點是不需要進展軟件測試即可進展軟件缺陷估計,應用與軟件開發(fā)的早期階段。隨著軟件可靠性設計逐漸被重視,這種模型的重要性也表達出來。2、動態(tài)模型動態(tài)模型的建模對象主要是與運行時間相關的數據或信息。如 Shooman 模型、Jelinski-Moranda 模型、Schick-Wolverton 模型,Musa 執(zhí)行時間模型、G-O 模型、Moranda幾何 Poission 模型。二根據模型假設分類根據模型假設將模型分為隨機過程模型和非隨機過程模型,如下圖。圖依據模型假設分類1、隨機過程模型1馬爾科夫過程模型這類模型認為在t 時刻,軟件系統(tǒng)的失效過程是一個馬爾科夫過程。有代表性的模型有 Jel
9、inski-Moranda 模型,Schick-Wolverton 模型。2非齊次泊松過程模型這類模型把時間劃分為 QUOTE 時間間隔,每個間隔內發(fā)現的失效數是泊松隨機變量,代表性的模型有 G-O 模型。3Musa 執(zhí)行時間模型這類模型以 CPU 時間為標準描述軟件系統(tǒng)的可靠性,建立 CPU 時間與日歷時間,程序的可靠性特征與測試過程資源消耗的關系。2、非隨機過程模型1貝葉斯類模型這類模型中有代表性的是 L-V 模型。2種子法模型其思想是事先在軟件中植入一定數量的缺陷植,收集到的缺陷包含植入的和軟件本身的,用它們之間數量關系估算軟件系統(tǒng)的缺陷數,即動態(tài)模型中的缺陷播種模型。3基于數據域的模型
10、這類模型的代表是 1973 年提出的 Nelson 模型。4其他方法其他的模型還有非參數分析、時間序列分析模型等模型。三根據故障過程的特性分類Amrit L.Goel 將模型分為 4 類:1、故障間隔時間模型這類模型研究的是故障的間隔時間。最常用的方法是假設第i-1個和第i個故障之間的時間服從*種分布,從觀測到的間隔時間來估計參數,進而估計軟件可靠性和故障間隔時間 MTBF Mean Time Between Failure等軟件性能度量。2、故障計數模型這類模型關注的是一定時間間隔內發(fā)生故障的次數,假定故障計數服從一種的隨機過程??梢酝ㄟ^觀測的故障數或失效時間估計失效率參數,NHPP 類軟件
11、可靠性增長模型屬于這類模型。3、故障播種模型這類模型類似于種子法模型。4、基于輸入域模型根據程序的使用情況從輸入情況的分布生成一組測試用例。由于獲得這個分布比擬困難,所以一般把輸入域劃分為幾個有代表性的等價類,每個等價類都與一個程序路徑有關。從執(zhí)行這些從輸入域抽取的測試用例,觀測軟件故障數,從而估計軟件可靠性。四Trivedi 分類及其他分類Kishor S.Trivedi 劃分模型方法如下圖圖 2圖 Trivedi分類軟件可靠性模型其他常用的軟件可靠性模型分類方法還有 Musa 和 Okumoto 給出的基于模型五種不同屬性的模型分類方法和 Hoang Pham 給出的分類體系。常見的軟件可
12、靠性建模模型2.1軟件可靠性解析模型軟件可靠性解析模型主要通過對軟件失效數據行為進展假設,并在該假設的根底上依靠數學解析方法對軟件可靠性進展建模。該類模型可分為指數模型、對數模型、Littlewood-Verrall模型、數據域模型、Markov鏈模型、隨機Petri網模型等。指數模型J-M模型J-M軟件可靠性模型于1972年由Jelinski和Moranda創(chuàng)立,屬于二項分布有限錯誤模型。其根本假設如下:1) 測試未運行時軟件失效為0;當測試進展時,軟件錯誤將被檢出,其失效率函數與軟件當前的殘留故障數成正比;同時,軟件中存在的總故障數是固定的;2) 失效率在每個失效間隔內是常數,其數值正比于
13、殘留的錯誤數;3) 軟件錯誤引發(fā)的故障是相互獨立的;4) 每次只修正一個錯誤,且當軟件故障出現時,引發(fā)故障的錯誤將被立即排除,并不會引入新的錯誤。J-M 模型中軟件第 i 次失效強度函數為 QUOTE = QUOTE ,其中 QUOTE 為軟件中錯誤總數, QUOTE 為失效率。J-M模型軟件可靠性函數為: QUOTE = QUOTE J-M模型以一種較為簡單的方式,將軟件故障視為測試時間的函數,主要缺點在于假設條件過于理想,實際情況中很難滿足。G-O模型Goel-Okumoto軟件可靠性模型(G-O模型)于1979年由Goel和Okumoto提出,屬于NHPP有限錯誤模型,其根本假設如下:1
14、) 測試未運行時的軟件失效為0;當測試進展時,軟件失效服從均值為 QUOTE 的泊松分布;2) 當時,測試時間 QUOTE 內產生的失效與軟件殘留錯誤成正比;3) 對于任一組有限時間點,在對應時間段分別發(fā)生的失效次數相互獨立;4) 每次只修正一個錯誤,當軟件故障出現時,引發(fā)故障的錯誤被立即排除,并不會引入新的錯誤。G-O模型在測試區(qū)間 QUOTE 內的累計失效數期望函數為 QUOTE ,為軟件累計測試時間。可靠性函數為: QUOTE = QUOTE Musa根本執(zhí)行時間模型Musa根本執(zhí)行時間軟件可靠性模型 (Musa模型)中,軟件測試時間使用了更為準確的CPU占用時間作為度量根底,并給出了C
15、PU時間與日歷時間的轉換關系,但軟件由于運行環(huán)境的差異導致CPU執(zhí)行時間可能大不一樣。超指數增長模型超指數增長模型對經典指數模型進展了擴展,屬于NHPP有限錯誤模型。由于編程人員的差異、新舊代碼的差異、實現語言的差異等因素導致了軟件不同局部的失效率各有不同,因此軟件的不同局部將分配不同的失效率。超指數增長模型可用于擁有新模塊和重用模塊的復雜系統(tǒng)中。超指數增長模型在測試區(qū)間 QUOTE 內的累計失效數期望函數為:式中,表示具有相似特征模塊構成的簇數量; QUOTE 表示在第 QUOTE 個簇中存在的錯誤總數; QUOTE 表示在第個簇的失效率。該模型在應用中如何確定大型復雜系統(tǒng)中模塊簇的劃分是該
16、模型的關鍵問題之一。S-Shape模型S-Shape模型主要分為Yamada Delayed S-Shaped模型和Inflected S-Shaped模型。S-Shape模型使用Gamma分布取代了G-O模型的二項分布,屬于NHPP有限錯誤模型。S-Shape模型認為錯誤發(fā)現曲線應該表達出兩個特征:1) 軟件測試者對測試軟件的了解程度;2) 軟件剩余缺陷隨測試過程的進展,其發(fā)現難度變得越來越大。Yamada Delayed S-Shaped模型認為軟件失效在測試開場時增大,在測試完畢時減小。在該模型中,軟件失效數據隨測試時間呈S曲線變化,表達出由于測試初期測試者對測試對象的不熟悉以及測試后期
17、失效數據難于發(fā)現導致失效發(fā)現率下降這一現象。Yamada Delayed S-Shaped模型在測試區(qū)間 QUOTE 內的累計失效數期望函數為:式中,表示最終被檢測出的失效總數的期望值;表示失效率。Inflection S-Shaped模型認為錯誤發(fā)現率在整個測試周期中呈現遞增的趨勢。Inflection S-Shaped模型在測試區(qū)間 QUOTE 內的累計失效數期望函數為:式中,a表示最終被檢測出的失效總數的期望值;b表示失效率;r 表示可以檢測的失效數占軟件系統(tǒng)總失效數的比例。對數模型Geometric模型Geometric模型屬于對數無限錯誤模型,其根本假設如下:1) 失效發(fā)現率隨軟件檢
18、測過程遞減;2) 系統(tǒng)中錯誤是無限的。該模型認為較早發(fā)現的錯誤對失效發(fā)現率的影響大于較晚發(fā)現的錯誤,其錯誤發(fā)現間隔時間為指數分布,錯誤發(fā)現間隔時間密度為 QUOTE ,其中和 QUOTE 為常量參數, QUOTE 為第i個失效數據發(fā)送時的觀測數據.Geometric模型中從第 QUOTE 個錯誤開場,發(fā)現第個錯誤的期望時間為: QUOTE 。Geometric模型在測試區(qū)間 QUOTE 內的累計失效數期望函數為:式中, QUOTE Musa-Okumoto對數泊松模型Musa-Okumoto對數泊松模型屬于對數無限錯誤模型。該模型構建于指數遞減的失效強度函數之上,其失效強度伴隨失效期望遞減成指
19、數遞減,即 QUOTE 為失效率衰減參數, QUOTE 為初始失效率。Littlewood-Verrall模型Littlewood-Verrall可靠性模型(L-V模型)考慮了發(fā)現缺陷不被完全剔除的情況。該模型根本假設如下:1) 相鄰錯誤間隔時間 QUOTE 為相互獨立指數隨機變量 QUOTE 構成獨立隨機變量序列,并服從參數為 QUOTE 的Gamma分布, QUOTE 為增函數,用于描述程序員的素質以及軟件開發(fā)難度;3) 軟件使用情況近似于設計預期。增函數 QUOTE 綜合了程序員素質 QUOTE 以及軟件開發(fā)難度 QUOTE 兩個因素,在L-V模型中 QUOTE 的線性表達式和二次表達式
20、分別為: QUOTE 和 QUOTE ,其中, QUOTE , QUOTE L-V模型的累計失效數期望函數為:L-V模型與前面討論的模型相比,最主要的不同在于前面的模型僅考慮了錯誤的發(fā)生對軟件可靠性的影響,而沒有考慮軟件穩(wěn)定運行這一現象對軟件可靠性的影響。數據域模型Nelson模型是數據域軟件可靠性模型的代表,也是最重要的軟件可靠性模型之一。該模型最早于1973年由Nelson提出, 并于1978年得以完善。Nelson模型中,軟件的可靠性通過對軟件運行的輸入數據進展測量,這些輸入數據從集合 QUOTE 中隨機選取。隨機選取的個輸入數據概率分布為 QUOTE 。Nelson模型根本假設如下:1
21、) 程序被認為是集E上的一個可計算函數F的一個規(guī)*,一個輸入數據 QUOTE 對應一個程序執(zhí)行回合并產生一個輸出 QUOTE 2) 由于程序包含缺陷,程序實際確定函數 QUOTE ,該函數不同于希望函數;3) 對于*些 QUOTE ,程序實際輸出 QUOTE 在希望輸出 QUOTE 的容許*圍之內,即 QUOTE ;但對另一些 QUOTE 程序實際輸出 QUOTE 超出容許*圍,即 QUOTE ,這時認為程序發(fā)生一次失效;4) 測試過程中不剔除程序缺陷。假設 QUOTE 為導致軟件產生故障的輸入數據,則軟件可靠性可以表示為 QUOTE ,另一個軟件可靠性計算公式 QUOTE ,其中 QUOTE
22、 中元素的數量, QUOTE 為 QUOTE 次運行后軟件出現故障的次數。Nelson模型存在的問題主要表現在輸入數據集較大和輸入數據的隨機選取具有盲目性和局限性。Markov鏈模型基于Markov鏈的軟件可靠性模型主要用于評估預測基于構件的軟件系統(tǒng)。構件是指封裝了數據和功能的,在運行時能夠通過參數進展配置的模塊。通常構件由第三方開發(fā),具有清晰的接口描述。隨著軟構件技術的快速開展,聚集軟構件設計大型復雜軟件系統(tǒng)的軟件開發(fā)方法日趨成熟,基于構件的可靠性模型研究也得到越來越多的關注。Cheung模型Cheung模型屬于基于Markov鏈的軟件可靠性模型。Cheung模型將軟件的控制構造轉化成有向圖
23、 G,并規(guī)定圖中每一個節(jié)點 QUOTE 表示一個構件,構件 QUOTE 到 QUOTE 的轉移用一個矢量邊 QUOTE 表示。定義 QUOTE 為的可靠性 QUOTE 的可靠性, QUOTE 的轉移概率。根據有向圖G,構造出構件轉移矩陣M,其中 QUOTE ,表示從 QUOTE 成功到達 QUOTE 的可能性。Cheung 模型根本假設如下:1) 構件間的可靠性是相互獨立的;2) 構件間的控制轉移是馬爾科夫過程;3) 構件間連接邏輯完全可靠。Cheung模型中,具有n個構件的軟件系統(tǒng)可靠性表示為 QUOTE ,其中 QUOTE 為第n個構件的個體可靠性,S為 QUOTE 矩陣,具體為:式中,I
24、為n*n單位矩陣Q為轉移概率矩陣P的變形。Cheung模型只能處理單輸入/單輸出系統(tǒng),沒有考慮連接件的可靠性,而且把構件的可靠性假設為固定不變的參數。Krishnamurthy模型Krishnamurthy模型遵守Cheung模型的假設條件,屬于Markov鏈軟件可靠性模型。該模型將軟件中的構件視為獨立節(jié)點,將任意一個測試用例運行中經過的節(jié)點序列視為路徑。基于這一根本概念,該模型認為基于構件的軟件系統(tǒng)的可靠性可以由路徑的可靠性予以描述。Yacoub模型Yacoub模型屬于 Markov 鏈軟件可靠性模型。該模型用構件依賴圖來描述構件間的組裝交互關系,構件依賴圖是一個有向圖,用于描述構件的可靠性
25、、連接與接口的可靠性、構件間控制的轉換及轉換的概率等方面內容。該模型認為構件間連接邏輯并非完全可靠,并引入 QUOTE 進展量化,但模型中并未對此做深入分析和討論,而僅作為固定不變的參數值加以使用。毛曉光通用模型毛曉光通用模型認為軟件可靠性的計算是軟件中所有運行路徑出現頻度與該路經可靠性乘積的累加 QUOTE ,R為可靠性, QUOTE 為所有運行路徑的集合, QUOTE 和 QUOTE 分別為路徑 QUOTE 的可靠性和出現頻度。該模型沒有對連接件的可靠性進展分析,并且沒有涉及敏感度計算,不利于對軟件早期開發(fā)的指導。Wang模型Wang模型對Cheung模型進展了改良,允許軟件具有并發(fā)、異構
26、、多輸入/輸出特性。該模型將輸入和輸出分別定義為和, 同時增加了超級初態(tài) QUOTE 和超級終態(tài) QUOTE , QUOTE 和 QUOTE 的可靠性均為1。Wang模型對不同構造的軟件體系構造分別進展可靠性分析,在狀態(tài)轉移概率中考慮了連接件的可靠性,但這樣處理的連接件的可靠性并不符合實際。隨機Petri網模型隨機Petri網作為軟件可靠性建模的一種工具能較全面地描述系統(tǒng)的動態(tài)變化行為,當系統(tǒng)發(fā)生變化時,只要增加相應位置中的標記數即可,可以大大減少工作量。該模型將具體系統(tǒng)轉化為隨機Petri網模型;并構造出與該隨機Petri網模型同構的Markov鏈;最后基于Markov鏈狀態(tài)概率進展系統(tǒng)可靠
27、性分析。狀態(tài) S 代表可能發(fā)生的局部故障狀態(tài);變遷 T 代表使系統(tǒng)狀態(tài)變化的事件;弧 R 表示 S 和T 間的關系。隨機Petri網的軟件可靠性模型示意圖如下圖。圖隨機Petri網的軟件可靠性模型示意圖2.2軟件可靠性啟發(fā)模型軟件可靠性啟發(fā)模型不同于解析模型,該模型利用軟件歷史失效數據對自身進展訓練、更新,逼近實際可靠性。啟發(fā)模型可分為基于神經網絡的軟件可靠性模型和基于遺傳編程的軟件可靠性模型。神經網絡模型神經網絡具有強大的非線性輸入輸出映射能力,出色的容錯性和泛化能力,可以對現有知識歸納學習,繼而進展預測。神經網絡模型應用于軟件可靠性建模,突出優(yōu)點在于無需對軟件系統(tǒng)的失效進展假設約束。在建立
28、模型的過程中,關鍵是解決這樣的幾個問題:失效數據預處理;網絡構造和算法;評估預測的方法。遺傳編程模型遺傳編程(genetic programming,GP)是最近幾年提出并得以開展的軟件可靠性建模方法。GP模型采用遺傳算法的根本思想,采用樹形構造表示失效數據表達式,葉節(jié)點是失效的原始變量,中間節(jié)點為失效數據函數,根節(jié)點是最終輸出的失效數據曲線表達式。通過使用穿插、變異等遺傳操作和選擇操作動態(tài)地改變這些樹構造,并迭代演化直至找到失效數據曲線的優(yōu)化表達式。軟件可靠性建模方法軟件可靠性模型評價的主要準則1有效性模型根據軟件現在和過去的故障行為(即失效數據)預估將來故障行為的能力稱為預測的有效性。軟件
29、可靠性模型預測的有效性可以通過故障數方式或故障時間方式表示出來。2適用性模型的適用性強弱,應該利用大小、構造、功能各異的軟件產品對其進展判定。同時,一個適用性強的模型應該能適用于不同的軟件產品開發(fā)環(huán)境、不同的軟件產品生命周期階段、不同的應用場景。但是,一個可靠性增長模型對于*一特定的軟件產品或者開發(fā)環(huán)境,得到的預測結果可能不是很理想,并不能說這個模型就完全沒有其適用性。3模型能力模型能力指的是軟件可靠性模型對給定軟件產品的可靠性預測和評價的能力。一般情況下,一個能力強的模型能對以下的可靠性指標進展很好的測量和評價:當前的可靠性,平均無故障時間(MTTF),或故障密度;期望到達規(guī)定可靠性目標的日
30、期,即期望 MTTF,或故障密度目標的日期;與到達規(guī)定目標有關的人力和計算機資源以及本錢要求。4簡捷性模型簡捷性主要表達在以下三個方面:模型所需要的數據收集簡單并且經濟代價低;模型概念簡單直觀。只有做到概念簡單直觀,軟件工程師們才能清楚的判定在什么情況下模型是可用的,什么情況下模型已脫離了工程實用性;模型參數解釋清楚,這樣軟件工程師們在數據不充足的情況下,對參數的估計才具有可行性。同時,模型所包含參數個數應該是盡量的少。5模型假設質量軟件可靠性模型的建立是基于一定的假設條件的,應該從邏輯正確性及軟件工程師的經歷等方面考察假設的合理性和顯然成立的程度。軟件可靠性建模流程為了滿足軟件可靠性指標要求
31、,需要對軟件進展測試-可靠性分析-再測試-再分析-修改的循環(huán)過程。軟件可靠性建模的目標是為了對軟件中失效趨勢和可靠性進展有效預測,來判斷軟件是否到達發(fā)布要求。軟件可靠性模型的建模過程如下列圖:1軟件失效數據收集軟件失效數據是進展軟件可靠性分析和預測的根底,收集到的軟件失效數據質量好壞直接影響到模型預測的準確性。在失效數據收集前需要對時間和數據做如下解釋:關于時間,在軟件可靠性模型研究中,一般都把時間大致分成了兩類,即日歷時間和執(zhí)行時間。盡管 Musa 模型堅持認為只有對執(zhí)行時間進展測量才是唯一有效的,但是根據實際經歷,對軟件運行時間的測量,并非非執(zhí)行時間不可,而且執(zhí)行時間需要操作系統(tǒng)得出,這無
32、疑增加了軟件失效數據收集的難度和工作量。相比之下,日歷時間具有很大的靈活性及優(yōu)勢,它便于測量記錄,而且不會影響到后續(xù)的分析。因此在本文模型中,失效時間記錄采用的是日歷時間。關于數據,軟件失效數據可分為完全數據和非完全數據兩類。它們的定義是:假設 QUOTE ,則數據集合 QUOTE 為完全數據集合;假設 QUOTE ,則數據集合 QUOTE 為非完全數據集合,其中y(i)是時間t(i)時刻的累計故障數。由上述定義可知完全數據即故障時間間隔數據,非完全數據便為各個時間間隔內的累計故障數據。失效數據的收集具體包括:故障發(fā)生時間、相鄰故障的間隔時間、各個時間間隔內的累計故障數。失效數據收集完成后,可
33、畫出軟件故障數隨時間變化的散點圖或直方圖。2數學模型建立通過分析收集得到的軟件失效數據提出合理假設,依據這些假設列出數學表達式,建立軟件可靠性模型。3模型參數估計在使用模型進展軟件可靠性分析前,需要先求出模型中未知參數的估計值。常用的參數估計方法有:最大似然估計法、最小二乘法、貝葉斯估計法等。4得到擬合模型求出模型中未知參數的估計值后就可以建立擬合模型,可通過 Matlab工具畫出擬合曲線,擬合效果取決于軟件失效數據質量及所選用的模型形式。5擬合效果測試通過測試來檢查所獲得的模型是否與實測數據擬合?如能很好擬合,就說明擬合模型可很好的描述所觀察的故障情況。則可僅需進展下一步。假設不擬合,就必須
34、檢查或重新選擇更恰當的模型。6獲得性能度量的估計通過此步驟可對包括軟件可靠性在內軟件系統(tǒng)的性能作出定量的度量;7做出判定通過判定以確定系統(tǒng)是否需要繼續(xù)進展測試,是否可以交付使用。常見參數估計方法1 最小二乘法最小二乘法作為一種數學優(yōu)化技術,是通過最小化誤差的平方和來尋找數據的最正確函數匹配。利用最小二乘法,可以簡便地求得未知數據,使得這些數據與實際數據間誤差的平方和為最小。設有隨機變量Y 由 k個參數和 k個變量組成,并且根據數據可對 k個參數進展估計。求的最小二乘估計就是尋找一組,使得:的值最小。對其求導并令結果等于零,可得:其中記,可以證明,假設,即。則,稱為的一致最小二乘無偏估計。最大似
35、然估計法最大似然估計法,也叫極大似然法,是最為常用的經典統(tǒng)計方法。它最早由德國大數學家 C.F. Gauss 提出,1912 年,英國統(tǒng)計學家 RAFisher 在其一篇文章中重新提出,并且證明了最大似然估計法的一些性質。最大似然估計法的根本思想是:由樣本值選擇參數,使得該樣本發(fā)生的概率最大。具體做法如下:設總體 * 概率密度函數為,其中為未知參數,為來自總體* 的一個給定的子樣,則似然函數:為參數的函數。求使似然函數的值到達最大,為參數的最大似然估計值。最大似然估計的求法包括以下步驟:根據總體分布導出樣本聯合密度或聯合概率函數;將樣本聯合密度(或聯合概率函數)中的參數看作自變量,自變量看成常
36、數,得到似然函數;通常對似然函數做對數變換得到,求得的最大值點,即的最大似然估計;在最大值點的表達式中將樣本值代入即可得到參數的極大似然估計值。貝耶斯估計由貝耶斯統(tǒng)計學理論可知,對總體的特征數進展推斷時,除了使用到總體信息和樣本信息外,還應該使用到先驗信息,即抽樣試驗之前有關統(tǒng)計問題的一些信息。1先驗分布將總體中的未知參數看成一取值于參數空間的隨機變量,它有一概率分布,記為,稱為參數的先驗分布。當是參數空間上的連續(xù)型隨機變量時,稱的密度函數為先驗密度。2后驗分布在貝耶斯統(tǒng)計學中,把總體信息、樣本信息及先驗信息歸納起來的最好形式是在總體分布根底上獲得的樣本和參數的聯合密度函數:,在這個聯合密度函
37、數中,當樣本給定之后,未知的僅是參數了,我們關心的是樣本給定后,的條件密度函數,依據密度的計算公式,容易獲得這個條件密度函數這就是貝耶斯公式的密度函數形式,稱為的后驗密度函數,或后驗分布。其中,稱為樣本的邊際分布,或稱樣本的無條件分布,它的積分區(qū)域就是參數的取值*圍,根據具體情況而定。歸納起來貝耶斯估計法的過程為,人們根據先驗信息對參數已有一個認識,這個認識就是先驗分布。然后通過試驗,獲得樣本,從而對的先驗分布進展調整,調整的方法就是使用上面的貝耶斯公式,調整的結果就是后驗分布后驗分布是總體信息、樣本信息及先驗信息這三種信息的綜合。獲得后驗分布使人們對的認識又前進一步,可以看出,獲得樣本的的效
38、果是把我們對的認識由調整到所以對的統(tǒng)計推斷就應建立在后驗分布的根底上。常見軟件可靠性建模方法基于黑盒的可靠性模型基于黑盒的軟件可靠性模型將軟件看成一個單一的整體,沒有內部構造的建模。這類模型使用統(tǒng)計方法對軟件可靠性進展建模,利用軟件測試時獲得的錯誤數據來估計模型參數或者校準模型?;隗w系構造的可靠性建模使用構造化方法來量化軟件可靠性的動機主要有如下幾個因素:(1)對于現有很多由可重用構件以及COTS構件組成的軟件系統(tǒng),可以通過構造化的方法來進展全系統(tǒng)的可靠性分析;(2)通過構造化可靠性模型,可以將軟件系統(tǒng)的可靠性與軟件系統(tǒng)構造以及單個構件的可靠性聯系在一起;(3)研究組成軟件系統(tǒng)的各個構件對系
39、統(tǒng)整體可靠性的敏感性,從而可以對系統(tǒng)的可靠性瓶頸進展分析;(4)構造化可靠性模型適用于軟件設計與開發(fā)的全生命周期,而不像軟件可靠性增長模型那樣只能在測試階段使用。(1)基于構件的軟件系統(tǒng)構造建模構件是基于構造的軟件可靠性浮估的根本單元,可以理解為在軟件系統(tǒng)中能夠實現特定功能的邏輯上獨立的模塊,同時該模塊可以被單獨的實際,實現及測試。設計者需要根據軟件系統(tǒng)的功能性能要求等,將系統(tǒng)分解為個個的構件,在此根底上對系統(tǒng)中構件之間的交互關系以及系統(tǒng)中構件的使用方式進展建模。(2)系統(tǒng)失效模式建模在獲取軟件系統(tǒng)的體系構造之后,要在其根底上定義錯誤行為。錯誤可能在模塊執(zhí)行的時候發(fā)生,或者是兩個模塊之間狀態(tài)轉
40、移的時候發(fā)生。模塊以及模塊之間接口的錯誤行為可以通過他們的可靠性及錯誤率(恒定的或者是與時間有關的)來確定。(3)軟件系統(tǒng)可靠性建模系統(tǒng)可靠性建模由兩方面因素決定,一方面是軟件的組成及運行方式,即軟件系統(tǒng)構造模型;一方面是系統(tǒng)的失效模式,即系統(tǒng)出現故障的方式。由于融合構造與錯誤行為的方法不同,目前主要有4種構造化可靠性建模方式:基于狀態(tài)的建模、基于路徑的建模、可加模型以及基于操作剖面的模型。下面將對這4類建模方法中的典型模型進展詳細的介紹。1. 基于狀態(tài)的模型該類模型主要使用軟件的控制流圖來描述軟件的體系構造,并假設模塊間的轉移具有馬爾可夫屬性,這就意味如果任何時間下模塊的狀態(tài),則系統(tǒng)將來的行
41、為獨立于過去的行為,僅和當前的行為狀態(tài)有關。這些模型中軟件構造主要使用離散時間馬爾可夫鏈(DTMC)、連續(xù)時間馬爾可夫鏈(CTMC)、半馬爾可夫過程等過程進展建模。這可以進一步分為吸納和不可分解兩類,前者適用于那些可以清楚地劃分軟件運行時操作與軟件終結操作的那些應用,后者適用于連續(xù)運行的軟件應用?;跔顟B(tài)的模型也可以被劃分為組合或者層次模型。組合模型將軟件構造和失效行為融合進個組合模型,并以此模型來預測應用的可靠性。層次模型首先建立構造模型,然后將失效行為添加進構造模型中來計算可靠性?;跔顟B(tài)的模型中比擬著名的有Littlewood-Verrall模型、Laprie模型、Ledou*模型、Ch
42、eung模型、Wang模型、Kubat模型等。2基于路徑的模型從軟件運行的意義上講,軟件失效是發(fā)生在*些特定的執(zhí)行路徑上,而與軟件可靠性計算密切相關的軟件可靠性測試,也可以看成是對軟件*些路徑的執(zhí)行過程。3 可加模型該類軟件可靠性模型主要利用構件的失效數據來計算軟件的可靠性。此類模型假設構件的可靠性可以建模為非奇次泊松過程,系統(tǒng)的失效強度可以表示為構件的失效強度之和,因此稱之為可加模型。4.基于操作剖面的模型該模型考慮到了在不同的操作剖面下,同一構件的可靠性有可能不同的問題。在構件的開發(fā)者不能事先知道構件的使用情況下,它從構件開發(fā)者和使用者綜合的角度來考慮軟件系統(tǒng)可靠性的度量工作。構件的開發(fā)人
43、員通過度量得出構件的可靠性信息,然后通過操作剖面和子域映射以及操作剖面?zhèn)鬟f映射的方式,讓構件的使用人員通過計算得出構件的可靠性和系統(tǒng)的可靠性。本方法基于兩個創(chuàng)新:(1)剖面映射。軟件開發(fā)入員提供的數據手冊中必須要以操作剖面作為參數,提供在不同的操作剖面下的可靠性參數。(2)構件的輸入域劃分成一組不同的功能子域,以這些子域為基準,每個操作剖面都可以表示為在這些子域上的一組加權向量。假設構件C的輸入域D劃分成了n個不重疊的子域:每個子域 QUOTE 都有它自己的操作剖面 QUOTE 和它的失效概率 QUOTE 。 QUOTE 表示D中C會失效的子域集合,則 QUOTE 。構件C的操作剖面P可以表示為:P= QUOTE ,其中 QUOTE 表示P對應的輸入域落在子域 QUOTE 中的概率。則構件的可
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 無機堿的化學合成方法考核試卷
- 電子設備的安全使用規(guī)范及培訓
- 拖拉機液壓系統(tǒng)原理與維護保養(yǎng)考核試卷
- 知識產權拍賣市場機制與策略分析
- 有機合成中新型有機光電功能材料的開發(fā)考核試卷
- 善用會計數據支持決策分析計劃
- 科技引領打造高效環(huán)保的綠色交通體系
- 抗菌纖維素纖維的制作與性能考核試卷
- 科技企業(yè)知識產權保護策略研究
- 過橋中介合同范本
- GB∕T 28575-2020 YE3系列(IP55)三相異步電動機技術條件(機座號63~355)
- 2022醫(yī)院設備科工作制度
- 【23精品】蘇少小學美術三下教案全冊
- 房屋租賃(出租)家私清單
- 倉儲貨架ppt課件
- 《保健按摩師》(五級)理論知識鑒定要素細目表
- 陳日新腧穴熱敏化艾灸新療法上篇
- PID烙鐵恒溫控制器設計與制作_圖文
- wincc全套腳本總結
- 簡易瞬態(tài)工況法1
- 中國鐵路總公司環(huán)境保護管理辦法(鐵總計統(tǒng)〔2015〕260號)
評論
0/150
提交評論