版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
第十一章軟件可靠性第一節(jié)軟件可靠性的基本概念------------------------(6)一、軟件的環(huán)境條件-------------------------(8)三、軟件的故障----------------------------(11)四、影響軟件可靠性因素-------------------(15)第二節(jié)軟件可靠性的基本特征量-------------(21)二、時間的度量------------------------------(10)第三節(jié)軟件可靠性的數(shù)學(xué)模型------------------------(29)一、軟件可靠性建模概述-------------------(29)二、J-M(Jelinski—Moranda)模型-----(36)三、Halstead模型------------------------------(45)四、G-O(Goel一Okumoto)NHPP模型---------------------------------(50)1隨著計算機軟件的飛速發(fā)展,軟件可靠性已變得越來越重要。據(jù)統(tǒng)計,計算機系統(tǒng)中,由于軟件錯誤引起的故障占所有故障的65%。第十一章軟件可靠性究其原因是軟件太復(fù)雜了,一個小小的程序,其可能的路徑可以是天文數(shù)字,以致于在軟件開發(fā)過程中難以對其作窮盡的測試,或者說難于完全排除軟件缺陷。2圖11-1簡單程序的控制流程圖
為了說明軟件的復(fù)雜性,讓我們考慮一個由10至20條高級語言構(gòu)成的程序,其控制流程圖如圖11-1所示。3圖11-1中每個結(jié)點或圓圈代表一段可能以轉(zhuǎn)移語句結(jié)束的順序執(zhí)行語句,每條弧代表兩段程序間的控制轉(zhuǎn)移。程序含有一個最少重復(fù)20次的循環(huán)語句,而在循環(huán)體內(nèi),則有一些嵌套的條件語句。假設(shè)程序中所有判斷都是相互獨立的,由于有5條貫穿循環(huán)體的路徑:即①c→d→e→f→h→m;圖11-1簡單程序的控制流程圖
②c→d→e→f→i→m;③
c→d→e→g→j→m;④
c→d→e→g→k→m;⑤c→d→l→m。4可見,軟件可靠性問題在軟件工程實踐中極為重要,對軟件可靠性問題的研究在國際上已十分活躍。
圖11-1簡單程序的控制流程圖
那么從點A到點B的所有獨立路徑數(shù)為:如果考慮程序輸入數(shù)據(jù)的變化,那情況就更為復(fù)雜了。
5廣義的可靠性是指一切旨在避免、減少、處理、度量軟件故障(錯誤、缺陷、失效)的分析、設(shè)計、測試方法、技術(shù)和實踐活動。第一節(jié)軟件可靠性的基本概念關(guān)于軟件可靠性的確切定義,國際學(xué)術(shù)界曾經(jīng)有過長期的爭論。對軟件可靠性定義的理解有廣義和狹義兩種:廣義的可靠性:與之相關(guān)的內(nèi)容有軟件可靠性度量、軟件可靠性設(shè)計、軟件可靠性建模、軟件可靠性測試和軟件可靠性管理等。6狹義的可靠性:狹義的可靠性是指在工程上軟件在規(guī)定的運行環(huán)境中和規(guī)定的時間內(nèi)無故障運行的概率(可靠度)。與之相關(guān)的內(nèi)容有軟件可靠性度、軟件失效強度和軟件平均失效時間等。7一、軟件的環(huán)境條件例如計算機型號、字長、內(nèi)存容量、外存介質(zhì)的數(shù)量及容量、輸入和輸出設(shè)備的數(shù)量、通信網(wǎng)絡(luò)、操作系統(tǒng)和數(shù)據(jù)管理系統(tǒng)、編譯程序及其他支持軟件等。環(huán)境條件還包括軟件的輸入分布。軟件的輸入有外部和內(nèi)部輸入。環(huán)境條件包括與程序存儲有關(guān)的計算機及其操作系統(tǒng)。這些因素對程序的運行有很大的影響,但在使用中一般沒有變化。8程序運行一次所需的輸入數(shù)據(jù)構(gòu)成程序輸入空間的一個元素,這個元素是一個多維向量。全部輸入向量的集合構(gòu)成程序的輸入空間。程序在啟動運行時,需要給變量賦值,即給程序提供輸入數(shù)據(jù),輸入的數(shù)據(jù)可能由外部設(shè)備輸入,也可能由早已存儲在計算機內(nèi)等待讀取。一組輸入數(shù)據(jù)經(jīng)過程序處理后得到一組輸出數(shù)據(jù),這些輸出數(shù)據(jù)構(gòu)成一個輸出向量,全部輸出向量的集合構(gòu)成程序的輸出空間。
程序輸入空間的元素數(shù)量非常龐大,程序運行中每個元素被選用的概率各不相同,形成一定的概率分布,我們稱此為程序運行剖面,程序的不同的運行狀態(tài),對應(yīng)于不同的運行剖面。9二、時間的度量1.日歷時間軟件的測試和運行以日、周、月、年等為計時單位。2.時鐘時間軟件從運行開始到運行結(jié)束以時、分、秒為計時單位。其中包括等待時間和其他輔助時間,但不包括停機占用時間。3.執(zhí)行時間計算機在執(zhí)行程序時,實際占用中心處理器(CPU)的時間,又稱CPU時間。以CPU時間為可靠性度量的時間。例如,某軟件在一周內(nèi)運行48小時,CPU工作的時間是運行時間的2/3,則日歷時間是一周;時鐘時間是48小時,CPU時間是32小時。10軟件可靠性工程的主要目標(biāo)是保證提高軟件可靠性。為達到這一目標(biāo),顯然首先要弄清軟件為什么會出現(xiàn)故障。只有這樣,才有可能在軟件開發(fā)過程中減少導(dǎo)致軟件故障的隱患,且一旦出現(xiàn)什么故障,有可能采取有效措施加以清除。
三、軟件的故障弄清軟件故障機理是軟件可靠性分析的根本目標(biāo)。由于軟件內(nèi)部邏輯復(fù)雜,運行環(huán)境動態(tài)變化,且不同的軟件差異可能很大,因而軟件故障機理可能有不同的表現(xiàn)形式。
譬如有的故障過程比較簡單,易于追蹤分析,而有的故障過程可能非常復(fù)雜,難于甚至不可能加以詳盡描述和分析。尤其是運行于高度復(fù)雜實時環(huán)境中的大型軟件。111.軟件缺陷
軟件開發(fā)中殘留的內(nèi)在缺陷稱為軟件缺陷。這些缺陷可以在軟件生存期的各個階段被引入。
軟件故障機理可描述為:軟件缺陷、軟件錯誤和軟件故障。
缺陷→錯誤
→故障(失效)在軟件開發(fā)的各階段,軟件始終離不開人的參與,而人難免會犯錯誤,這樣就必然給軟件留下不良的痕跡。例如一段程序進行某些數(shù)據(jù)處理,若在處理過程中就產(chǎn)生軟件錯誤,則說明這段程序存在缺陷或缺少一個程序段。12
軟件缺陷是一個靜止的現(xiàn)象,只在一定的輸入條件下才能被激活導(dǎo)致軟件錯誤,而且軟件錯誤也不一定導(dǎo)致軟件故障。比如容錯軟件中的錯誤就可以被檢測出來并可糾正或避免,而不導(dǎo)致故障。
軟件缺陷在一定條件下暴露并導(dǎo)致系統(tǒng)在運行中出現(xiàn)可感知的不正常、不正確、不按規(guī)范執(zhí)行的內(nèi)部狀態(tài),則認(rèn)為軟件出現(xiàn)“錯誤”,簡稱出錯。2.軟件錯誤
軟件錯誤是由于軟件缺陷造成的。一個錯誤可能是多個故障源。例如,在求最大值的程序中,設(shè)計人員由于疏忽將求得的平均值作為最大值,這就是一個軟件錯誤。
所謂不正確的內(nèi)部狀態(tài),是指在此狀態(tài)下,當(dāng)正常的算法繼續(xù)下去時,就會發(fā)生軟件故障。13在對錯誤不作任何糾正和恢復(fù)的情況下,導(dǎo)致系統(tǒng)的輸出不滿足用戶提供的正式文件上指明的要求,或雙方協(xié)議的條款,稱為軟件的一次故障。3.軟件故障軟件故障是由于軟存錯誤造成的一種外部表現(xiàn),它是動態(tài)的、程序執(zhí)行過程中出現(xiàn)的行為表現(xiàn)。綜上所述,軟件缺陷是人為錯誤。當(dāng)一個軟件缺陷被激活時,便產(chǎn)生一個或多個軟件錯誤;當(dāng)軟件錯誤不加以糾正時,便不可避免地產(chǎn)生軟件故障。同一個軟件缺陷下可能產(chǎn)生不同的軟件故障。14
軟件可靠性因素是指軟件生存期內(nèi)影響軟件可靠性的因素。顯然,有許許多多因素可以影響軟件可靠性,包括技術(shù)的、社會的、經(jīng)濟的、甚至文化的,因為在軟件生存期的各個階段均有人的干預(yù),而人的行為受到各方面因素的影響。
四、影響軟件可靠性因素從技術(shù)角度來看,影響軟件可靠性的因素主要包括以下幾個方面:
軟件可靠性定義相對于運行環(huán)境而言,同一軟件在不同運行剖面下,其可靠性行為可能極不相同。1.運行環(huán)境(剖面)讓我們考慮一個極端例子。我們知道,軟件故障是軟件缺陷在一定輸入情況下被激活的結(jié)果。于是可以將軟件輸入域劃分為兩個部分(G和F):15
G中的輸入不會激活軟件的缺陷,F(xiàn)中的輸入恒激活軟件缺陷。如果運行剖面不包含F(xiàn)中的輸入,則軟件不會出現(xiàn)故障,其可靠性恒為1。反之,如果運行剖面不包含G中的輸入,則每一輸入情況下均出現(xiàn)故障。如果沒有容錯措施,則導(dǎo)致軟件故障,軟件可靠性恒為0。
16如果軟件只含一條指令,那么談?wù)撥浖煽啃詥栴}便失去意義。隨著軟件規(guī)模的增大,軟件可靠性問題愈顯突出。2.軟件規(guī)模軟件工程實踐的一個側(cè)面可以反映這一點,即單元測試一般由編程人員本人進行,而綜合測試則需獨立的測試人員。軟件可靠性增長模型也主要應(yīng)用于綜合測試階段。在我們考慮軟件可靠性問題時,軟件一般是指中型以上軟件(4000~5000條以上語句),這時可靠性問題難以對付。17軟件內(nèi)部結(jié)構(gòu)一般比較復(fù)雜,且動態(tài)變化,對可靠性的影響也不甚清楚。3.軟件內(nèi)部結(jié)構(gòu)關(guān)于軟件可靠性設(shè)計技術(shù)的外延并不明確,但一般是指軟件設(shè)計階段中采用的用以保證和提高軟件可靠性為主要目標(biāo)的軟件技術(shù)。如故障模式與影響分析(FMECA)、故障樹分析(FTA)等。顯然采用或不采用軟件可靠性設(shè)計技術(shù)對軟件可靠性必有影響。4.軟件可靠性設(shè)計技術(shù)。但總的說來,結(jié)構(gòu)越復(fù)雜,軟件復(fù)雜度越高,內(nèi)含缺陷數(shù)越多,因而軟件可靠度越低。
18顯然,軟件開發(fā)人員(包括測試人員)的能力愈強,經(jīng)驗愈豐富,所犯錯誤便可能愈少,所得軟件產(chǎn)品質(zhì)量愈高,相應(yīng)的可靠性也愈高。
5.軟件可靠性測試軟件可靠性管理旨在系統(tǒng)管理軟件生存期各階段的可靠性活動。使之系統(tǒng)化、規(guī)范化、一體化,這樣就可以避免許多人為錯誤,以提高軟件可靠性。研究表明,軟件測試方法與資源投入對軟件可靠性有不可忽視的影響。6.軟件可靠性管理7.軟件開發(fā)人員能力和經(jīng)驗19研究表明,程序語言對軟件可靠性有影響。譬如,結(jié)構(gòu)化語言Ada優(yōu)于Fortran語言,而軟件測試工具優(yōu)劣則影響測試效果。軟件工程表明,開發(fā)方法對軟件可靠性有顯著影響。與非結(jié)構(gòu)化方法比較,結(jié)構(gòu)化方法可以明顯減少軟件缺陷數(shù)??傊?,有許許多多的因素影響軟件可靠性,在軟件設(shè)計時應(yīng)盡量采用有利于提高軟件可靠性的手段和方法。8.軟件開發(fā)方法9.軟件開發(fā)環(huán)境返回120軟件質(zhì)量主要由以下幾個方面因素決定。第二節(jié)軟件可靠性的基本特征量
①時間因素:包括平均故障間隔時間(MIBF)、平均失效前時間(MTTF)、平均系統(tǒng)不工作間隔時間(MTBD)、平均修復(fù)時間(MTTR)。
②缺陷頻數(shù):包括軟件缺陷數(shù)、文件缺陷數(shù)和用戶提出的補充要求數(shù)等。
③與軟件可靠性有關(guān)的百分率:主要包括可靠性、有效性、可維護性、故障率、不合格率、延遲率、錯誤操作率、原因不明率、同故障事件率、可靠性經(jīng)濟率等。21⑥使用方特征:包括使用軟件的系統(tǒng)的特點(如實時系統(tǒng)、嵌入式系統(tǒng)),需根據(jù)軟件的特點,選擇適當(dāng)?shù)目煽啃詤?shù)作為軟件質(zhì)量指標(biāo)。
④對軟件的投入:包括完成軟件用了不同水平的工作人員的工作日數(shù)或工時數(shù)和對軟件的檢查項目數(shù)及對用戶提出的要求采取對策的費用等。
⑤軟件特征:包括軟件的復(fù)雜性、標(biāo)準(zhǔn)化程度、壽命周期、結(jié)構(gòu)及規(guī)模大小等。顯然,軟件質(zhì)量是眾多因素及指標(biāo)的綜合反映,在軟件可靠性評估中,需根據(jù)軟件的特點,選擇適當(dāng)?shù)目煽啃詤?shù)作為軟件質(zhì)量指標(biāo)。22軟件常用的可靠性參數(shù)有以下幾種:在一定時期內(nèi),由于軟件故障而停止工作,必須由操作者介入再啟動才能繼續(xù)工作的次數(shù)稱為系統(tǒng)不工作次數(shù)。1.系統(tǒng)不工作次數(shù)系統(tǒng)平均不工作間隔時間反映了系統(tǒng)的穩(wěn)定性。2.系統(tǒng)平均不工作間隔時間(MTBD)233.有效性(A)有效性A綜合反映了系統(tǒng)的可靠性和維修性。MDT—平均不工作的時間(h)。24平均修復(fù)時間反映了出現(xiàn)軟件缺陷后采取對策的效率。在一定程度上也反映了軟件企業(yè)對社會服務(wù)的責(zé)任心。4.平均修復(fù)時間(MTTR)平均不工作時間是指由于軟件故障,系統(tǒng)不工作的均值。
5.平均不工作時間(MDT)一般以軟件交付使用方后的三個月內(nèi)為初期故障期。初期故障率以每100h的故障為單位,用它來評價交付使用時的軟件質(zhì)量和預(yù)測什么時候軟件可靠性基本穩(wěn)定。6.初期故障率初期故障率的大小取決于軟件的設(shè)計水平、檢查項目數(shù)、軟件規(guī)模、軟件調(diào)試徹底與否等因素。25一般以軟件交付給使用方四個月后為偶然故障期。偶然故障率一般以每1000h的故障數(shù)為單位,它反映了軟件處于穩(wěn)定狀態(tài)下的質(zhì)量。
7.偶然故障率使用方不按照軟件規(guī)范及說明等文件使用造成的錯誤叫“使用方錯誤”。在使用次數(shù)中,使用方誤用次數(shù)占的百分率叫“使用方誤用率”。8.使用方誤用率造成使用方法誤用的原因之一是使用方對“說明”理解不深,操作不熟練,但也有可能是說明書沒有講清楚而引起誤解。26另外還有軟件系統(tǒng)的可操作性還應(yīng)改進、對使用方的使用培訓(xùn)還不夠深入等。
生產(chǎn)方有責(zé)任及時調(diào)查使用方誤用的原因,對軟件功能加以改進。
用戶提出補充要求數(shù)主要是反映軟件未能充分滿足用戶的需要,有些要求是特定用戶的特殊要求,生產(chǎn)方為了更好地為社會服務(wù),應(yīng)該盡力滿足他們的要求。9.用戶提出補充要求數(shù)
有些要求是帶有普遍性的,這就要求給予足夠重視,因為它反映了原來的軟件功能還不夠全面。27處理能力有各種指標(biāo),例如,可用每小時平均處理多少文件、每項工作的反映時間多少等來表示,具體情況根據(jù)需要而定。
在評價軟件及系統(tǒng)的經(jīng)濟效益時需用這項指標(biāo)。10.處理能力返回128第三節(jié)軟件可靠性的數(shù)學(xué)模型軟件可靠性建模是在根據(jù)與軟件可靠性(故障)有關(guān)的數(shù)據(jù)以統(tǒng)計方法給出軟件可靠性的估計值或預(yù)測值,是從本質(zhì)上理解軟件可靠性行為的關(guān)鍵之一。
一、軟件可靠性建模概述軟件可靠性建?;顒幼钤缈勺匪莸紿udson的工作,他當(dāng)時以隨機生滅過程描述軟件缺陷的引入和剔除過程,并證明被剔除的缺陷數(shù)服從二項式分布,其均值時間函數(shù)具有威布爾(Weibull)分布形式。
軟件可靠性建模研究真正獲得重視始于60年代末“軟件危機”的提出,并在70年代獲得巨大的發(fā)展。291.模型種類
Jelinski和Moranda于1972年正式出版有關(guān)他們的模型的論著。這一模型是軟件可靠性系統(tǒng)研究的真正開端,至今在軟件可靠性建模方面仍具有重要意義,這是因為:
(1)Jelinski-Moranda模型軟件可靠性模型主要有以下8種模型:①這一模型首次將硬件可靠性的基本概念,如可靠度、故障強度(率)等,系統(tǒng)地引入軟件可靠性領(lǐng)域;②這一模型確立了軟件可靠性建模的黑箱方法,即不涉及軟件內(nèi)部結(jié)構(gòu),僅依據(jù)軟件外部行為(輸入輸出關(guān)系)刻畫軟件可靠性行為;③這一模型給出了軟件可靠性建模的兩個主要假設(shè):一是測試用例的選取代表軟件實際運行剖面;二是不同軟件故障獨立發(fā)生;30④這一模型簡單,眾多的后續(xù)模型可視為這一模型的某種變形。
Halstead依據(jù)其“軟件科學(xué)”的思想于1972年提出此模型,試圖利用軟件復(fù)雜度確定軟件缺陷數(shù)。(2)Halstead模型此模型的重要性在于它可應(yīng)用于軟件開發(fā)的早期階段(軟件測試之前)。隨著軟件可靠性設(shè)計地位的提高,此模型的重要性也將顯著增長。Littlewood和Verrall于1973年發(fā)表此模型,其主導(dǎo)思想是將軟件故障強度視為隨機變量,從而開創(chuàng)了軟件可靠性建模的Bayes方法。此模型也間接考慮了發(fā)現(xiàn)的缺陷不被完全剔除的可能性。(3)Littlewood-Verrall模型31Musa于1975年發(fā)表此模型,主要貢獻在于提出將CPU執(zhí)行時間作為軟件可靠性的時間基準(zhǔn)。(4)Musa執(zhí)行時間模型Nelson最早于1973年提出一個基于數(shù)據(jù)域模型并于1978年得以完善。此模型是基于數(shù)據(jù)域模型的代表,成為目前應(yīng)用最多的模型之一。
(5)Sukert模型比較工作Sukert于1976年給出其關(guān)于不同模型的分析比較的試驗報告,開創(chuàng)了軟件可靠性模型比較研究的先河。模型比較研究已成為建模研究的一個基本方面。(6)Nelson模型32
GoeI和Okumoto于1978年發(fā)表此模型,將軟件故障次數(shù)描述為非齊次Poisson過程。此模型是NHPP模型的代表。
(7)Goel—OkumotoNHPP模型Musa于1979年發(fā)表了一批軟件可靠性數(shù)據(jù),對軟件可靠性建模研究產(chǎn)生重要影響。目前已成為軟件可靠性建模研究的“標(biāo)準(zhǔn)”參考數(shù)據(jù)。之后Musa,Ianninohe和Okumoto于1987年又發(fā)表了“軟件可靠性”一書,在軟件可靠性領(lǐng)域頗受推崇。該書首次對眾多軟件可靠性模型給出了統(tǒng)一的數(shù)學(xué)描述。
(8)Musa軟件可靠性數(shù)據(jù)332.模型組成軟件可靠性模型通常由以下幾個部分組成:(1)模型假設(shè)模型是實際情況的簡化或規(guī)范化,總要包含若干假設(shè)。
此假設(shè)認(rèn)為軟件測試用例的選取代表軟件實際的運行剖面,甚至認(rèn)為測試用例是獨立隨機地選取。①代表性假設(shè)此假設(shè)實質(zhì)上是指可以用測試產(chǎn)生的軟件可靠性數(shù)據(jù)預(yù)測運行階段的軟件可靠性行為。此假設(shè)認(rèn)為軟件故障是獨立發(fā)生于不同時刻,一個軟件故障的發(fā)生不影響另一個軟件故障的發(fā)生。譬如在概率范疇內(nèi),假設(shè)相鄰軟件故障間隔構(gòu)成一組獨立隨機變量,或假設(shè)一定時間內(nèi)軟件故障次數(shù)構(gòu)成一個獨立增量過程。②獨立性假設(shè)34此假設(shè)認(rèn)為所有軟件故障的后果(等級)相同,即建模過程只考慮軟件故障的具體發(fā)生時刻,不區(qū)分軟件故障的性質(zhì)。③相同性假設(shè)軟件可靠性模型的輸出量變?yōu)樾阅芏攘?,如故障強度、殘留缺陷?shù)、可靠度等。在軟件可靠性模型中性能度量通常以數(shù)學(xué)表達式給山。(2)性能度量某些可靠性度量的實際值無法直接獲得(如殘留缺陷數(shù)),這時需通過一定的方法估計參數(shù)的值,從而間接確定可靠性度量的值。(3)參數(shù)估計方法當(dāng)然,對于可直接獲得實際值的可靠性度量,便無需參數(shù)估計了。
35一個軟件可靠性模型要求一定的輸入數(shù)據(jù),即軟件可靠性數(shù)據(jù)。不同類型的軟件可靠性模型可能要求不同類型的軟件可靠性數(shù)據(jù)。(4)數(shù)據(jù)要求本書僅介紹三種最常用的軟件模型。二、J-M(Jelinski—Moranda)模型J–M模型是最早的軟件可靠性馬爾科夫過程的數(shù)學(xué)模型,沿用了硬件可靠性的方法。
J–M的假設(shè)是:
①軟件最初的錯誤數(shù)為常值N。用
(i=1,2,…,N)表示在第(i-1)個錯誤被改正后,軟件投入運行至第i次故障發(fā)生前這個階段的時間,且故障間隔時間
是統(tǒng)計獨立的。36④每次故障后總有并僅有一個錯誤被排除,因此,系統(tǒng)的故障率是階梯式下降的。
③每個軟件錯誤一經(jīng)發(fā)現(xiàn)立即被修正,且不考慮修改錯誤的時間,也不產(chǎn)生新的錯誤。
②在兩個相繼故障構(gòu)成的時間間隔內(nèi),軟件的故障率為常數(shù),其大小正比于軟件中的殘存錯誤數(shù)。1.可靠性特征量(1)按上述假設(shè)得出的軟件系統(tǒng)故障的密度函數(shù)為:37
(2)故障率為:(3)可靠度函數(shù)為:382.可靠性特征量估計
模型的待估參數(shù)為φ和N。設(shè)t1,t2,…,tn是試驗中實際測得的n次故障發(fā)生的時間間隔,則其極大似然方程為:
運用極大似然估計法,則39可得模型參數(shù)的極大似然估計值和分別為
發(fā)現(xiàn)n
個軟件錯誤后,停止測試。此時,軟件的可靠性水平為
(1)殘存錯誤數(shù)
40
(2)故障率(3)可靠度(4)平均無故障工作時間MTBF41
例11-1Jelinski和Moranda曾在美國海軍艦隊計算機程序編制中心利用海軍戰(zhàn)術(shù)數(shù)據(jù)系統(tǒng)(NTDS)的軟件故障數(shù)據(jù),對他們的模型作了驗證。NTDS包括38個不同的模塊,每個模塊都經(jīng)過開發(fā)、測試、使用三個階段。驗證所用的故障數(shù)據(jù)是取自兩個大型模塊的軟件反饋報告。這個模塊在設(shè)計階段共發(fā)現(xiàn)了26個錯誤,測試階段又發(fā)現(xiàn)了5個(表11-1中27-31)錯誤,在使用階段又發(fā)現(xiàn)了3個(表11-1中32-34)錯誤。NTDS的數(shù)據(jù)見表11-1,J-M根據(jù)交付使用前的數(shù)據(jù)計算的結(jié)果也示于表11-1(見下頁)。42階段錯誤數(shù)n錯誤間隔時間(日)累計時問(日)J.M預(yù)計的故障時問設(shè)計階段1234567891011121314151617181920212223242526912114725857161941386113379121921323643455058637071777887919295981041051161491562472492504.74.85.95.25.45.65.86.06.36.66.97.27.68.08.59.09.610.311.112.013.014.315.917.820.323.5表11-1NTDS數(shù)據(jù)及預(yù)計結(jié)果4328.13378727測試階段8493481433總的錯誤數(shù)故障率系數(shù)79832使用階段121.75401353166.440593045.6396122934.83844728J.M預(yù)計的故障時間累積時間(日)錯誤間隔時間(日)錯誤數(shù)n階段表11-1續(xù)表估計軟件共有31.2個錯誤。實際上,此軟件三個階段共有34個錯誤,可見計算結(jié)果與實際數(shù)據(jù)大致吻合。442.模型假設(shè)三、Halstead模型1.模型類別:靜態(tài)經(jīng)驗?zāi)P汀?1)程序是良好結(jié)構(gòu)化的,即程序不包含操作符、操作數(shù)、表達式的問題。(2)以下方程近似成立:
—為程序中不同操作數(shù)個數(shù)。
式中:
—為程序中不同操作符個數(shù);
其中:—為程序中操作符出現(xiàn)總次數(shù);
—為程序中操作數(shù)出現(xiàn)總次數(shù)。
45程序殘留缺陷N
的估計值為3.參數(shù)估計這里V表示程序容量,即46
例11-2某一匯編語言程序,由9個模塊組成,包含約24955條匯編語言指令,如表11-2所列。表11-2某匯編程序原始數(shù)據(jù)及計算結(jié)果模塊指令條數(shù)缺陷數(shù)決策點數(shù)調(diào)用次數(shù)l1l2MA403210237228347l442102MB1329812154418017618MC54539355236261057493MDl6742611l13023120l26ME205l7131519736613871MF25133721718632228737MG69916104321317616MH37925023311025260350MX3412804162304333578047假設(shè)每條指令包含一個操作符和一個操作數(shù),則解:
其中,64表示總共有64種機器語言指令。那么可由式(11-11)計算,代入式(11-12)可以得到程序殘留缺陷的估計值,見表11-2中最后一列中的值。
48由以上分析可以看出,Halstead模型認(rèn)為程序中的操作符和操作數(shù)與其殘留缺陷密切相關(guān)。該模型的優(yōu)點是無需測試數(shù)據(jù)。盡管眾多事實表明,V/N可近似為常數(shù),但E0取值卻未必為3000。也許利用程序的若干模塊缺陷數(shù)(據(jù)此可估計E0)去估計其它模塊的缺陷數(shù)更為合理。
因此,可用于測試之前的軟件開發(fā)階段;該模型的缺點是其有效性有待進一步確認(rèn)。49四、G-O(Goel-OkumotoNHPP)模型2.模型假設(shè)1.模型類別模型為動態(tài)、宏觀、面向錯誤數(shù)模型。軟件(測試)運行方式與預(yù)計(實際)運行剖面相同。(2)對于任一組有限時間點,在對應(yīng)時間段內(nèi)分別發(fā)生的錯誤數(shù)為相互獨立。(3)每一缺陷有均等機會被檢測發(fā)現(xiàn),且等級相同。50(4)任一時刻t發(fā)生的軟件故障累積次數(shù)N(t)服從均值為m(t)的Poisson分布,均值m(t)使得微小時間段(t,t+Δt)內(nèi)軟件故障發(fā)生次數(shù)與t時刻軟件殘留缺陷數(shù)成正比。式中α—為測試過程最終軟件發(fā)生故障的總數(shù);
b—為比例常數(shù)。
(5)
m(t)是一個有界、非減函數(shù),且51由假設(shè)(3)~(5)可知:
由于累積故障數(shù)N(t)是均值為m(t)的Poisson分布,那么
523.參數(shù)估計
設(shè)時間內(nèi)發(fā)生的軟件故障次數(shù)為
,其概率分布為:
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025版學(xué)校節(jié)日慶典活動承包運營合同3篇
- 2025年度個人商標(biāo)權(quán)抵押擔(dān)保許可協(xié)議書4篇
- 二零二五年度高速公路邊坡草皮修復(fù)合同模板3篇
- 網(wǎng)絡(luò)素養(yǎng)在學(xué)生職業(yè)發(fā)展中的重要性
- 二零二五年度車輛牌照租賃數(shù)據(jù)共享協(xié)議4篇
- 當(dāng)代企業(yè)網(wǎng)絡(luò)安全風(fēng)險評估與防范措施匯報
- 教學(xué)資料數(shù)字化的應(yīng)用場景及案例分析
- 二零二五年度承臺基坑開挖施工勞務(wù)分包合同施工人員資質(zhì)要求4篇
- 數(shù)海導(dǎo)航小學(xué)數(shù)學(xué)知識框架構(gòu)建
- 安全知識教育在兒童成長中的角色
- T-GDASE 0042-2024 固定式液壓升降裝置安全技術(shù)規(guī)范
- 建筑工地春節(jié)留守人員安全技術(shù)交底
- 默納克-NICE1000技術(shù)交流-V1.0
- 蝴蝶蘭的簡介
- 老年人心理健康量表(含評分)
- 《小兒靜脈輸液速度》課件
- 營銷人員薪酬標(biāo)準(zhǔn)及績效考核辦法
- 醫(yī)院每日消防巡查記錄表
- 運輸企業(yè)重大危險源辨識及排查制度
- 運動技能學(xué)習(xí)與控制課件第五章運動中的中樞控制
- 中心血站改造項目謀劃建議書
評論
0/150
提交評論