版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
第八講_軟件可靠性設(shè)計第一頁,共71頁。內(nèi)容軟件可靠性設(shè)計概述避錯設(shè)計查錯和改錯設(shè)計容錯設(shè)計第二頁,共71頁。1.概述/1實質(zhì):在常規(guī)的軟件設(shè)計中,應(yīng)用必須的方法和技術(shù),使程序設(shè)計在兼顧用戶的各種需求時,全面滿足軟件的可靠性要求可靠性設(shè)計的四種類型:避錯設(shè)計查錯設(shè)計改錯設(shè)計容錯設(shè)計第三頁,共71頁。2.避錯設(shè)計使軟件產(chǎn)品在設(shè)計過程中,不發(fā)送錯誤或少發(fā)生錯誤的一種設(shè)計方法各種軟件工程方法…有助于避錯可靠性設(shè)計的Myers設(shè)計原則控制程序的復(fù)雜度使系統(tǒng)中的各個模塊具有最大的獨立性使程序具有合理的層次結(jié)構(gòu)當(dāng)模塊或單元之間的相互作用無法避免時,務(wù)必使其聯(lián)系盡量簡單,以防止在模塊和單元之間產(chǎn)生未知的邊際效應(yīng),使設(shè)計人員陷入泥潭,無力自拔與用戶保持緊密聯(lián)系第四頁,共71頁。設(shè)計原理1.模塊化模塊:模塊是由邊界元素限定的相鄰的程序元素(例如數(shù)據(jù)說明,可執(zhí)行語句)的序列,而且有一個總體的標識符來代表它如pascal和Ada中的塊結(jié)構(gòu)中的Begin…end對,或者Java中的{}因此,過程、函數(shù)、子過程、子函數(shù)、宏等都可以作為模塊面向?qū)ο笾械膶ο笠约皩ο髢?nèi)的方法也是模塊就是把程序劃分成若干個模塊,每個模塊完成一個子功能,把這些模塊集成起來組成一個整體,可以完成指定的功能,解決實際問題。4/19/20235第五頁,共71頁。設(shè)計原理過程、函數(shù)——VB4/19/20236第六頁,共71頁。設(shè)計原理過程、函數(shù)——C++類型標識符函數(shù)名(形式參數(shù)表){
語句序列}對于過程:類型標識符為void4/19/20237第七頁,共71頁。設(shè)計原理子過程、子函數(shù)、子程序主程序輸入子程序計算子程序輸出子程序4/19/20238第八頁,共71頁。設(shè)計原理面向?qū)ο笾械膶ο笠约皩ο髢?nèi)的方法也是模塊訂單DateRecieveisPrepaidPriceDispatch()Close()4/19/20239第九頁,共71頁。軟件設(shè)計原理經(jīng)驗1:工作量E(P1+P2)>E(P1)+E(P2)經(jīng)驗2:成本成本/模塊最小成本區(qū)接口成本軟件總成本模塊數(shù)目4/19/202310第十頁,共71頁。人類在認識復(fù)雜現(xiàn)象的過程中使用的最強有力的思維工具是抽象。人們在實踐中認識到,在現(xiàn)實世界中一定事物、狀態(tài)或過程之間總存在著某些相似的方面(共性)。把這些相似的方面集中和概括起來,暫時忽略它們之間的差異,這就是抽象。或者說抽象就是抽出事物的本質(zhì)特性而暫時不考慮它們的細節(jié)。2、抽象/逐步求精
4/19/202311第十一頁,共71頁。例:開發(fā)一個CAD軟件,實現(xiàn)一個二維繪圖系統(tǒng)的全部功能,供低級計算機輔助設(shè)計使用。軟件設(shè)計原理在我們考慮對任何問題的模塊化解法時,可以抽象出很多層次。在抽象的最高層次使用問題環(huán)境的語言,以概括方式敘述問題的解法在較低的層次采用更過程化的方法,把面向問題的術(shù)語和面向?qū)崿F(xiàn)的術(shù)語結(jié)合起來敘述問題的解法最后,在最低的抽象層次可以直接實現(xiàn)的方法來敘述問題的解法4/19/202312第十二頁,共71頁。
抽象層次I:用問題所處環(huán)境的術(shù)語來描述這個軟件。該軟件包括一個計算機繪圖界面,向繪圖員顯示圖形,以及一個數(shù)字化儀界面,用以代替繪圖板和丁字尺。所有直線、折線、矩形、圓及曲線的描畫、所有的幾何計算、所有的剖面圖和輔助視圖都可以用這個CAD軟件實現(xiàn)……。4/19/202313第十三頁,共71頁。抽象層次II:任務(wù)需求的描述。列出“What”而不是“How”。
CADSOFTWARETASKS:userinteractiontask;2-Ddrawingcreationtask;graphicsdisplaytask;drawingtask;
END軟件設(shè)計原理4/19/202314第十四頁,共71頁。抽象層次III:程序過程表示。以2-D繪圖生成任務(wù)為例:
PROCEDURE2-DdrawingcreationREPEATUNTILE(drawingcreationtaskterminates)DOWHILE(digitizerinteractionoccurs)Digitizerinterfacetask;DETERMINEdrawingrequestCASELine:linedrawingtask;Rectangle:rectangledrawingtask;Circle:circledrawingtask;
……END;
DOWHILE(keyboardinteractionoccurs)keyboardinteractiontask;PROCESSanalysis/computationCASEView:auxiliaryviewtask;Section:crosssectioningtask;
……END;
……ENDREPETITION;
ENDPROCEDURE.
軟件設(shè)計原理4/19/202315第十五頁,共71頁。3、信息隱蔽(Informationhiding)信息隱蔽使得一個模塊內(nèi)包含的信息(過程和數(shù)據(jù))對于不需要這些信息的模塊來說,是不能訪問的。
在這個抽象層次上,給出了初步的過程表示,所用的術(shù)語都已面向軟件,而且模塊化的工作已經(jīng)開始顯露。軟件設(shè)計原理4/19/202316第十六頁,共71頁。f1f2f3……fi……fnSgi(X,S)S’輸出輸出4/19/202317第十七頁,共71頁。4、模塊獨立性(Moduleindependence)每個模塊完成一個相對獨立的特定子功能,并且和其他模塊之間的接口很簡單。模塊的獨立程度可以由兩個定性標準來衡量,這兩個標準分別稱為耦合性和內(nèi)聚性。藕合衡量不同模塊彼此間互相依賴(連接)的緊密程度;內(nèi)聚衡量一個模塊內(nèi)部各個元素彼此間結(jié)合的緊密程度。一般較較優(yōu)秀的軟件設(shè)計應(yīng)盡量做到高內(nèi)聚、低耦合,即減弱模塊間的耦合性和提高模塊內(nèi)的內(nèi)聚性,有利于提高模塊的獨立性。軟件設(shè)計原理4/19/202318第十八頁,共71頁。GreatdealofdependenceIndependent
HighlycoupledLooselycoupledUncoupled獨立性的度量:耦合4/19/202319第十九頁,共71頁。耦合的七種類型完全獨立數(shù)據(jù)耦合特征耦合控制耦合外部耦合公共耦合內(nèi)容耦合4/19/202320第二十頁,共71頁。獨立性的度量:耦合完全獨立兩個模塊之間沒有直接關(guān)系,它們之間的聯(lián)系完全是通過主模塊的控制和調(diào)用來實現(xiàn)的4/19/202321第二十一頁,共71頁。獨立性的度量:耦合數(shù)據(jù)耦合一個模塊訪問另一個模塊時,彼此之間是通過簡單數(shù)據(jù)參數(shù)(不是控制參數(shù)、公共數(shù)據(jù)結(jié)構(gòu)或外部變量)來交換輸入、輸出信息的。4/19/202322第二十二頁,共71頁。獨立性的度量:耦合特征耦合一組模塊通過參數(shù)表傳遞記錄信息,就是特征記耦合。這個記錄是某一數(shù)據(jù)結(jié)構(gòu)的子結(jié)構(gòu),而不是簡單變量。4/19/202323第二十三頁,共71頁。獨立性的度量:耦合控制耦合如果一個模塊通過傳送開關(guān)、標志、名字等控制信息,明顯地控制選擇另一模塊的功能,就是控制耦合。ABFlagF2F1Fn…………Flag4/19/202324第二十四頁,共71頁。獨立性的度量:耦合4/19/202325第二十五頁,共71頁。公共環(huán)境耦合若一組模塊都訪問同一個公共數(shù)據(jù)環(huán)境,則它們之間的耦合就稱為公共耦合。公共的數(shù)據(jù)環(huán)境可以是全局數(shù)據(jù)結(jié)構(gòu)、共享的通信區(qū)、內(nèi)存的公共覆蓋區(qū)等。4/19/202326第二十六頁,共71頁。公共耦合
Global:V1V2A:……………………A1=V1+V2……………………B:……………………V1=B1……………………Global:V1V2A:……………………V1++……………………B:……………………V2=B1+V1……………………問題:
公共部分的改動將影響所有調(diào)用它的模塊;
公共部分的數(shù)據(jù)存取無法控制;
復(fù)雜程度隨耦合模塊的個數(shù)增加而增加。4/19/202327第二十七頁,共71頁。公共耦合
4/19/202328第二十八頁,共71頁。內(nèi)容耦合,如果發(fā)生下列情形,兩個模塊之間就發(fā)生了內(nèi)容耦合一個模塊直接訪問另一個模塊的內(nèi)部數(shù)據(jù);一個模塊不通過正常入口轉(zhuǎn)到另一模塊內(nèi)部;兩個模塊有一部分程序代碼重迭(只可能出現(xiàn)在匯編語言中);一個模塊有多個入口。4/19/202329第二十九頁,共71頁。獨立性的度量:耦合A訪問C的內(nèi)部數(shù)據(jù)內(nèi)容耦合4/19/202330第三十頁,共71頁。A不通過正常入口而轉(zhuǎn)入C的內(nèi)部?!瑼BCDA:……………………gotoC1……………………C:……………………C1:…………內(nèi)容耦合獨立性的度量:耦合4/19/202331第三十一頁,共71頁。獨立性的度量:耦合應(yīng)遵循以下原則:盡量使用數(shù)據(jù)耦合,少用控制耦合和特征耦合,限制公共環(huán)境耦合的范圍,完全不用內(nèi)容耦合4/19/202332第三十二頁,共71頁。獨立性的度量:內(nèi)聚內(nèi)聚標志一個模塊內(nèi)各個元素彼此緊密結(jié)合的緊密程度。七種內(nèi)聚:1.偶然內(nèi)聚2.邏輯內(nèi)聚3.時間內(nèi)聚4.過程內(nèi)聚5.通信內(nèi)聚6.順序內(nèi)聚7.功能內(nèi)聚4/19/202333第三十三頁,共71頁。功能內(nèi)聚一個模塊中各個部分都是完成某一具體功能必不可少的組成部分,或者說該模塊中所有部分都是為了完成一項具體功能而協(xié)同工作,緊密聯(lián)系,不可分割的。則稱該模塊為功能內(nèi)聚模塊。功能內(nèi)聚是最強也是最好的一種內(nèi)聚。例子:Sin(),GetCustomerName()4/19/202334第三十四頁,共71頁。順序內(nèi)聚順序內(nèi)聚是指模塊中各成分有順序關(guān)系,某一成分的輸出數(shù)據(jù)是另一成分的輸入數(shù)據(jù)。4/19/202335第三十五頁,共71頁。通信內(nèi)聚如果模塊中所有元素都使用同一個輸入數(shù)據(jù)和(或)產(chǎn)生同一個輸出數(shù)據(jù),則稱為通信內(nèi)聚或者說:如果一個模塊的所有成分都操作同一個數(shù)據(jù)集或者生成同一數(shù)據(jù)集通常,通信內(nèi)聚模塊是通過數(shù)據(jù)流圖來定義的。4/19/202336第三十六頁,共71頁。過程內(nèi)聚如果一個模塊內(nèi)部的處理成分是相關(guān)的,而且這些處理必須以特定的次序執(zhí)行,則稱為過程內(nèi)聚使用流程圖做為工具設(shè)計程序時,把流程圖中的某一部分劃出組成模塊,就得到過程內(nèi)聚模塊。例如,把流程圖中的循環(huán)部分、判定部分、計算部分分成三個模塊,這三個模塊都是過程內(nèi)聚模塊。問題:請大家舉個生活中必須遵照特定次序的例子?答案:排隊買飯(隊列,要求先進先出)。4/19/202337第三十七頁,共71頁。時間內(nèi)聚某個模塊包含的任務(wù)(操作)必須在同一時間內(nèi)執(zhí)行如:模塊完成各種初始化工作4/19/202338第三十八頁,共71頁。邏輯內(nèi)聚這種模塊把幾種相關(guān)的功能組合在一起,每次被調(diào)用時,由傳送給模塊的判定參數(shù)來確定該模塊應(yīng)執(zhí)行哪一種功能。A:Readinputsfromdiskfromtapefrom……4/19/202339第三十九頁,共71頁。偶然內(nèi)聚巧合內(nèi)聚(偶然內(nèi)聚)。當(dāng)模塊內(nèi)各部分之間沒有聯(lián)系,或者即使有聯(lián)系,這種聯(lián)系也很松散,則稱這種模塊為巧合內(nèi)聚模塊,它是內(nèi)聚程度最低的模塊。4/19/202340第四十頁,共71頁。4/19/202341第四十一頁,共71頁。設(shè)計內(nèi)聚的原則設(shè)計時應(yīng)盡力爭取做到高內(nèi)聚,并且能夠辨識出低內(nèi)聚的模塊,并采取措施進行修改,以提高模塊的內(nèi)聚程度、降低模塊間的耦合程度,從而獲得較高的模塊獨立性4/19/202342第四十二頁,共71頁。爭取低耦合、高內(nèi)聚(增加內(nèi)聚>減少耦合)如果在幾個模塊中發(fā)現(xiàn)共有的子功能,一般應(yīng)該將該子功能獨立出來作為一個模塊,以提高模塊的獨立性合并那些具有較多的控制信息傳遞的模塊以降低模塊之間的耦合度啟發(fā)性規(guī)則4/19/202343第四十三頁,共71頁。2.模塊規(guī)模適中:過大不易理解;太小則接口開銷過大。注意分解后不應(yīng)降低模塊的獨立性。3.適當(dāng)控制——
深度、寬度、扇出、扇入深度=分層的層數(shù)。寬度越大系統(tǒng)越復(fù)雜寬度=同一層上模塊數(shù)的最大值。過大表示系統(tǒng)復(fù)雜度大。4/19/202344第四十四頁,共71頁。啟發(fā)性規(guī)則系統(tǒng)結(jié)構(gòu)4/19/202345第四十五頁,共71頁。扇出=一個模塊直接調(diào)用\控制的模塊數(shù)。3fan-out9扇出越大意味著模塊過分復(fù)雜,應(yīng)該適當(dāng)增加中間層扇出太小則可以把下級模塊進一步分解成若干子模塊,或者把該模塊合并到它的上級模塊中AA的扇出啟發(fā)性規(guī)則4/19/202346第四十六頁,共71頁。啟發(fā)性規(guī)則AA的扇入
扇入=直接調(diào)用該模塊的模塊數(shù)在不破壞獨立性的前提下,fan-in
大的比較好。一個好的軟件結(jié)構(gòu)通常頂層扇出較高,中間層扇出較低,底層又高扇入到公共模塊中去4/19/202347第四十七頁,共71頁。4、作用域在控制域內(nèi)控制域:包含該模塊和所有從屬于該模塊的模塊MACBM的控制域為{M,A,B,C}作用域:模塊中的一個判定所影響的模塊。啟發(fā)性規(guī)則4/19/202348第四十八頁,共71頁。TOP
CD
E
FABTOPCD
E
FAB模塊D的作用域超出控制域D的作用域在控制域內(nèi)4/19/202349第四十九頁,共71頁。4/19/202350第五十頁,共71頁。5、降低接口的復(fù)雜程度:接口復(fù)雜可能表明模塊的獨立性差。6、設(shè)計單入單出的模塊。當(dāng)從頂部進入模塊并且從底部退出時,軟件是比較容易理解和維護的啟發(fā)性規(guī)則4/19/202351第五十一頁,共71頁。啟發(fā)性規(guī)則7、模塊功能可預(yù)測——
相同輸入必產(chǎn)生相同輸出。反例:模塊中使用全局變量或靜態(tài)變量,則可能導(dǎo)致不可預(yù)測。4/19/202352第五十二頁,共71頁。3.查錯和改錯設(shè)計避錯設(shè)計不能完全避免錯誤需要設(shè)計能夠具有自動查錯和改錯功能的方法查錯設(shè)計被動式檢測主動式檢測第五十三頁,共71頁。3.1被動式錯誤檢測/1適用于軟件的各種結(jié)構(gòu)層次,用來檢測從一個單元、模塊向另一個單元、模塊傳遞的錯誤征兆和檢測存在于單元、模塊內(nèi)部的錯誤原則相互懷疑原則立即檢測原則第五十四頁,共71頁。3.1被動式錯誤檢測/2方法:取決于軟件的用途、功能、結(jié)構(gòu)和算法,沒有通用的模式,可選擇的方法檢查每個輸入數(shù)據(jù)的屬性按照已知的數(shù)據(jù)極限檢查輸入數(shù)據(jù)檢查所有的多值數(shù)據(jù)的有效性如果輸入數(shù)據(jù)存在明顯的冗余成分,應(yīng)檢查二者的一致性如果輸入數(shù)據(jù)中不存在冗余,可以對輸入數(shù)據(jù)求和,比較輸入數(shù)據(jù)與內(nèi)部數(shù)據(jù)的一致性第五十五頁,共71頁。3.1被動式錯誤檢測/3發(fā)生錯誤后立即停止程序運行,檢錯不停止程序,記錄錯誤第五十六頁,共71頁。3.2主動式錯誤檢測/1賦予程序特殊功能,主動搜索錯誤,并進行指示由檢測監(jiān)視器承擔(dān),對系統(tǒng)的有關(guān)的數(shù)據(jù)主動進行掃描,例如:合理運行時間的異常過程系統(tǒng)中丟失的文件長時間內(nèi)未完成的輸入,輸出操作主動系統(tǒng)診斷可以作為周期性的任務(wù)來安排第五十七頁,共71頁。3.2主動式錯誤檢測/2如操作系統(tǒng)中的存儲管理模塊,具有向用戶程序和操作系統(tǒng)的其它模塊出借存儲區(qū)域的功能,然而用戶程序或其他模塊的錯誤有時會造成借出去的存儲區(qū)域不能返回給存儲管理模塊.主動式檢測能及時發(fā)現(xiàn)這類問題第五十八頁,共71頁。3.3改錯設(shè)計希望軟件具有自動改正錯誤的功能需要“智能”,困難很大,所以目前采用的方法多半是隔離錯誤.實現(xiàn)用戶隔離就是防止一個用戶程序的失效,影響其它用戶程序及整個系統(tǒng)正常運行的關(guān)鍵措施例如貝爾實驗室TSPS系統(tǒng),電話換接系統(tǒng),可靠性要求為40年內(nèi)停止工作時間不超過兩小時,整機停機是極為嚴重的任務(wù),而常見的故障,例如某個電話線連接中斷,則是可以允許的失誤。TSPS系統(tǒng)使用被動和主動查錯及改錯技術(shù)來減少系統(tǒng)失效,策略是盡快檢測出某些特殊類型的錯誤,并控制其擴散.即使損失某些數(shù)據(jù)也在所不惜第五十九頁,共71頁。4.容錯設(shè)計容錯計算系統(tǒng)能夠在出現(xiàn)一定限度的失效的情況下,依舊能夠提供所需要的服務(wù).這些失效的發(fā)生是由于系統(tǒng)的組件或者系統(tǒng)設(shè)計中存在缺陷所導(dǎo)致的.構(gòu)造大型的計算系統(tǒng)是一個復(fù)雜的任務(wù);要使系統(tǒng)具有容錯能力就更復(fù)雜,除非采用合適的系統(tǒng)構(gòu)造概念.傳統(tǒng)的硬件系統(tǒng)的容錯方法建立在對物理組件失效模式的影響的深入了解的基礎(chǔ)上.傳統(tǒng)的硬件容錯方法一般不足以處理設(shè)計上的缺陷.因此,絕大多數(shù)硬件的容錯方法不能運用到軟件上,因為軟件中絕大多數(shù)的缺陷都是設(shè)計缺陷第六十頁,共71頁。兩種方法N文本法靜態(tài)冗余恢復(fù)塊法動態(tài)冗余增加了資源消耗,容錯技術(shù)不宜普遍采用第六十一頁,共71頁。4.1N文本法相對于一個給定的功能,由N(N>2)個不同的設(shè)計組獨立編制出N個不同的程序,然后同時在N個機器上運行并比較運行的結(jié)果如果結(jié)果一致,認為結(jié)果正確如果結(jié)果不盡相同,按多數(shù)表決或其它預(yù)先制定的策略,判定結(jié)果的正確性優(yōu)點:沒有服務(wù)中斷第六十二頁,共71頁。4.2恢復(fù)塊機制某一恢復(fù)塊結(jié)構(gòu)的句法:
ensure<acceptancetest>byP0
else-byP1else
fail
軟件系統(tǒng)帶有3個部分,兩個程序P0(主要的)和P1(可選的),和接受性測試(acceptancetest).系統(tǒng)的設(shè)計就是按照句法所指的控制結(jié)構(gòu).執(zhí)行P0,如果滿足接受性測試,正常返回
溫馨提示
- 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)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年農(nóng)村生態(tài)環(huán)境保護規(guī)劃合同
- 2025年度會議禮品定制與派發(fā)服務(wù)合同4篇
- 二零二四年塔吊設(shè)備安全操作手冊購銷合同3篇
- 2025年廠區(qū)綠化與環(huán)境保護風(fēng)險評估服務(wù)合同4篇
- 安徽教師考編數(shù)學(xué)試卷
- 濾水管安裝施工方案
- 二零二四年度租賃合同返租終止協(xié)議2篇
- 柯坪縣雙峰駝隱孢子蟲和芽囊原蟲的分子檢測與鑒定
- 生態(tài)系統(tǒng)理論在鄉(xiāng)村教育紀錄片中的影像建構(gòu)和顯現(xiàn)
- 企業(yè)過度負債的行業(yè)同群效應(yīng)研究
- 四則混合運算100道題四年級上冊及答案
- 四川省高職單招電氣技術(shù)類《電子基礎(chǔ)》歷年考試真題試題庫(含答案)
- 中級半導(dǎo)體分立器件和集成電路裝調(diào)工技能鑒定考試題庫(含答案)
- 2024年江西生物科技職業(yè)學(xué)院單招職業(yè)技能測試題庫帶解析答案
- 橋本甲狀腺炎-90天治療方案
- (2024年)安全注射培訓(xùn)課件
- 2024版《建設(shè)工程開工、停工、復(fù)工安全管理臺賬表格(流程圖、申請表、報審表、考核表、通知單等)》模版
- 部編版《道德與法治》六年級下冊教材分析萬永霞
- 酒店人防管理制度
- 油田酸化工藝技術(shù)
- 上海高考英語詞匯手冊列表
評論
0/150
提交評論