第八講軟件可靠性設計演示文稿_第1頁
第八講軟件可靠性設計演示文稿_第2頁
第八講軟件可靠性設計演示文稿_第3頁
第八講軟件可靠性設計演示文稿_第4頁
第八講軟件可靠性設計演示文稿_第5頁
已閱讀5頁,還剩63頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

第八講軟件可靠性設計演示文稿目前一頁\總數(shù)六十八頁\編于十八點(優(yōu)選)第八講軟件可靠性設計目前二頁\總數(shù)六十八頁\編于十八點1.概述/1實質:在常規(guī)的軟件設計中,應用必須的方法和技術,使程序設計在兼顧用戶的各種需求時,全面滿足軟件的可靠性要求可靠性設計的四種類型:避錯設計查錯設計改錯設計容錯設計目前三頁\總數(shù)六十八頁\編于十八點2.避錯設計使軟件產品在設計過程中,不發(fā)送錯誤或少發(fā)生錯誤的一種設計方法各種軟件工程方法…有助于避錯可靠性設計的Myers設計原則控制程序的復雜度使系統(tǒng)中的各個模塊具有最大的獨立性使程序具有合理的層次結構當模塊或單元之間的相互作用無法避免時,務必使其聯(lián)系盡量簡單,以防止在模塊和單元之間產生未知的邊際效應,使設計人員陷入泥潭,無力自拔與用戶保持緊密聯(lián)系目前四頁\總數(shù)六十八頁\編于十八點設計原理1.模塊化模塊:模塊是由邊界元素限定的相鄰的程序元素(例如數(shù)據(jù)說明,可執(zhí)行語句)的序列,而且有一個總體的標識符來代表它如pascal和Ada中的塊結構中的Begin…end對,或者Java中的{}因此,過程、函數(shù)、子過程、子函數(shù)、宏等都可以作為模塊面向對象中的對象以及對象內的方法也是模塊就是把程序劃分成若干個模塊,每個模塊完成一個子功能,把這些模塊集成起來組成一個整體,可以完成指定的功能,解決實際問題。2023/5/175目前五頁\總數(shù)六十八頁\編于十八點設計原理2023/5/176過程、函數(shù)——VB目前六頁\總數(shù)六十八頁\編于十八點設計原理2023/5/177過程、函數(shù)——C++類型標識符函數(shù)名(形式參數(shù)表){

語句序列}對于過程:類型標識符為void目前七頁\總數(shù)六十八頁\編于十八點設計原理2023/5/178子過程、子函數(shù)、子程序主程序輸入子程序計算子程序輸出子程序目前八頁\總數(shù)六十八頁\編于十八點設計原理面向對象中的對象以及對象內的方法也是模塊2023/5/179訂單DateRecieveisPrepaidPriceDispatch()Close()目前九頁\總數(shù)六十八頁\編于十八點2023/5/1710軟件設計原理經(jīng)驗1:工作量E(P1+P2)>E(P1)+E(P2)經(jīng)驗2:成本成本/模塊最小成本區(qū)接口成本軟件總成本模塊數(shù)目目前十頁\總數(shù)六十八頁\編于十八點人類在認識復雜現(xiàn)象的過程中使用的最強有力的思維工具是抽象。人們在實踐中認識到,在現(xiàn)實世界中一定事物、狀態(tài)或過程之間總存在著某些相似的方面(共性)。把這些相似的方面集中和概括起來,暫時忽略它們之間的差異,這就是抽象?;蛘哒f抽象就是抽出事物的本質特性而暫時不考慮它們的細節(jié)。2023/5/17112、抽象/逐步求精

目前十一頁\總數(shù)六十八頁\編于十八點2023/5/1712例:開發(fā)一個CAD軟件,實現(xiàn)一個二維繪圖系統(tǒng)的全部功能,供低級計算機輔助設計使用。軟件設計原理在我們考慮對任何問題的模塊化解法時,可以抽象出很多層次。在抽象的最高層次使用問題環(huán)境的語言,以概括方式敘述問題的解法在較低的層次采用更過程化的方法,把面向問題的術語和面向實現(xiàn)的術語結合起來敘述問題的解法最后,在最低的抽象層次可以直接實現(xiàn)的方法來敘述問題的解法目前十二頁\總數(shù)六十八頁\編于十八點2023/5/1713

抽象層次I:用問題所處環(huán)境的術語來描述這個軟件。該軟件包括一個計算機繪圖界面,向繪圖員顯示圖形,以及一個數(shù)字化儀界面,用以代替繪圖板和丁字尺。所有直線、折線、矩形、圓及曲線的描畫、所有的幾何計算、所有的剖面圖和輔助視圖都可以用這個CAD軟件實現(xiàn)……。目前十三頁\總數(shù)六十八頁\編于十八點2023/5/1714抽象層次II:任務需求的描述。列出“What”而不是“How”。

CADSOFTWARETASKS:userinteractiontask;2-Ddrawingcreationtask;graphicsdisplaytask;drawingfilemanagementtask;

END軟件設計原理目前十四頁\總數(shù)六十八頁\編于十八點2023/5/1715抽象層次III:程序過程表示。以2-D繪圖生成任務為例:

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ù)六十八頁\編于十八點2023/5/17163、信息隱蔽(Informationhiding)信息隱蔽使得一個模塊內包含的信息(過程和數(shù)據(jù))對于不需要這些信息的模塊來說,是不能訪問的。

在這個抽象層次上,給出了初步的過程表示,所用的術語都已面向軟件,而且模塊化的工作已經(jīng)開始顯露。軟件設計原理目前十六頁\總數(shù)六十八頁\編于十八點2023/5/1717f1f2f3……fi……fnSgi(X,S)S’輸出輸出目前十七頁\總數(shù)六十八頁\編于十八點4、模塊獨立性(Moduleindependence)每個模塊完成一個相對獨立的特定子功能,并且和其他模塊之間的接口很簡單。模塊的獨立程度可以由兩個定性標準來衡量,這兩個標準分別稱為耦合性和內聚性。藕合衡量不同模塊彼此間互相依賴(連接)的緊密程度;內聚衡量一個模塊內部各個元素彼此間結合的緊密程度。一般較較優(yōu)秀的軟件設計應盡量做到高內聚、低耦合,即減弱模塊間的耦合性和提高模塊內的內聚性,有利于提高模塊的獨立性。2023/5/1718軟件設計原理目前十八頁\總數(shù)六十八頁\編于十八點2023/5/1719GreatdealofdependenceIndependent

HighlycoupledLooselycoupledUncoupled獨立性的度量:耦合目前十九頁\總數(shù)六十八頁\編于十八點耦合的七種類型完全獨立數(shù)據(jù)耦合特征耦合控制耦合外部耦合公共耦合內容耦合2023/5/1720目前二十頁\總數(shù)六十八頁\編于十八點獨立性的度量:耦合完全獨立兩個模塊之間沒有直接關系,它們之間的聯(lián)系完全是通過主模塊的控制和調用來實現(xiàn)的2023/5/1721目前二十一頁\總數(shù)六十八頁\編于十八點獨立性的度量:耦合數(shù)據(jù)耦合一個模塊訪問另一個模塊時,彼此之間是通過簡單數(shù)據(jù)參數(shù)(不是控制參數(shù)、公共數(shù)據(jù)結構或外部變量)來交換輸入、輸出信息的。2023/5/1722目前二十二頁\總數(shù)六十八頁\編于十八點獨立性的度量:耦合特征耦合一組模塊通過參數(shù)表傳遞記錄信息,就是特征記耦合。這個記錄是某一數(shù)據(jù)結構的子結構,而不是簡單變量。2023/5/1723目前二十三頁\總數(shù)六十八頁\編于十八點獨立性的度量:耦合控制耦合如果一個模塊通過傳送開關、標志、名字等控制信息,明顯地控制選擇另一模塊的功能,就是控制耦合。2023/5/1724ABFlagF2F1Fn…………Flag目前二十四頁\總數(shù)六十八頁\編于十八點2023/5/1725獨立性的度量:耦合目前二十五頁\總數(shù)六十八頁\編于十八點公共環(huán)境耦合若一組模塊都訪問同一個公共數(shù)據(jù)環(huán)境,則它們之間的耦合就稱為公共耦合。公共的數(shù)據(jù)環(huán)境可以是全局數(shù)據(jù)結構、共享的通信區(qū)、內存的公共覆蓋區(qū)等。2023/5/1726目前二十六頁\總數(shù)六十八頁\編于十八點2023/5/1727公共耦合

Global:V1V2A:……………………A1=V1+V2……………………B:……………………V1=B1……………………Global:V1V2A:……………………V1++……………………B:……………………V2=B1+V1……………………問題:

公共部分的改動將影響所有調用它的模塊;

公共部分的數(shù)據(jù)存取無法控制;

復雜程度隨耦合模塊的個數(shù)增加而增加。目前二十七頁\總數(shù)六十八頁\編于十八點2023/5/1728公共耦合

目前二十八頁\總數(shù)六十八頁\編于十八點內容耦合,如果發(fā)生下列情形,兩個模塊之間就發(fā)生了內容耦合一個模塊直接訪問另一個模塊的內部數(shù)據(jù);一個模塊不通過正常入口轉到另一模塊內部;兩個模塊有一部分程序代碼重迭(只可能出現(xiàn)在匯編語言中);一個模塊有多個入口。2023/5/1729目前二十九頁\總數(shù)六十八頁\編于十八點獨立性的度量:耦合2023/5/1730A訪問C的內部數(shù)據(jù)內容耦合目前三十頁\總數(shù)六十八頁\編于十八點2023/5/1731A不通過正常入口而轉入C的內部?!瑼BCDA:……………………gotoC1……………………C:……………………C1:…………內容耦合獨立性的度量:耦合目前三十一頁\總數(shù)六十八頁\編于十八點獨立性的度量:耦合應遵循以下原則:盡量使用數(shù)據(jù)耦合,少用控制耦合和特征耦合,限制公共環(huán)境耦合的范圍,完全不用內容耦合2023/5/1732目前三十二頁\總數(shù)六十八頁\編于十八點2023/5/1733獨立性的度量:內聚內聚標志一個模塊內各個元素彼此緊密結合的緊密程度。七種內聚:1.偶然內聚2.邏輯內聚3.時間內聚4.過程內聚5.通信內聚6.順序內聚7.功能內聚目前三十三頁\總數(shù)六十八頁\編于十八點功能內聚一個模塊中各個部分都是完成某一具體功能必不可少的組成部分,或者說該模塊中所有部分都是為了完成一項具體功能而協(xié)同工作,緊密聯(lián)系,不可分割的。則稱該模塊為功能內聚模塊。功能內聚是最強也是最好的一種內聚。例子:Sin(),GetCustomerName()2023/5/1734目前三十四頁\總數(shù)六十八頁\編于十八點順序內聚順序內聚是指模塊中各成分有順序關系,某一成分的輸出數(shù)據(jù)是另一成分的輸入數(shù)據(jù)。2023/5/1735目前三十五頁\總數(shù)六十八頁\編于十八點通信內聚如果模塊中所有元素都使用同一個輸入數(shù)據(jù)和(或)產生同一個輸出數(shù)據(jù),則稱為通信內聚或者說:如果一個模塊的所有成分都操作同一個數(shù)據(jù)集或者生成同一數(shù)據(jù)集通常,通信內聚模塊是通過數(shù)據(jù)流圖來定義的。2023/5/1736目前三十六頁\總數(shù)六十八頁\編于十八點過程內聚如果一個模塊內部的處理成分是相關的,而且這些處理必須以特定的次序執(zhí)行,則稱為過程內聚使用流程圖做為工具設計程序時,把流程圖中的某一部分劃出組成模塊,就得到過程內聚模塊。例如,把流程圖中的循環(huán)部分、判定部分、計算部分分成三個模塊,這三個模塊都是過程內聚模塊。問題:請大家舉個生活中必須遵照特定次序的例子?答案:排隊買飯(隊列,要求先進先出)。2023/5/1737目前三十七頁\總數(shù)六十八頁\編于十八點時間內聚某個模塊包含的任務(操作)必須在同一時間內執(zhí)行如:模塊完成各種初始化工作2023/5/1738目前三十八頁\總數(shù)六十八頁\編于十八點邏輯內聚這種模塊把幾種相關的功能組合在一起,每次被調用時,由傳送給模塊的判定參數(shù)來確定該模塊應執(zhí)行哪一種功能。2023/5/1739A:Readinputsfromdiskfromtapefrom……目前三十九頁\總數(shù)六十八頁\編于十八點偶然內聚巧合內聚(偶然內聚)。當模塊內各部分之間沒有聯(lián)系,或者即使有聯(lián)系,這種聯(lián)系也很松散,則稱這種模塊為巧合內聚模塊,它是內聚程度最低的模塊。2023/5/1740目前四十頁\總數(shù)六十八頁\編于十八點2023/5/1741目前四十一頁\總數(shù)六十八頁\編于十八點2023/5/1742設計內聚的原則設計時應盡力爭取做到高內聚,并且能夠辨識出低內聚的模塊,并采取措施進行修改,以提高模塊的內聚程度、降低模塊間的耦合程度,從而獲得較高的模塊獨立性目前四十二頁\總數(shù)六十八頁\編于十八點2023/5/1743爭取低耦合、高內聚(增加內聚>減少耦合)如果在幾個模塊中發(fā)現(xiàn)共有的子功能,一般應該將該子功能獨立出來作為一個模塊,以提高模塊的獨立性合并那些具有較多的控制信息傳遞的模塊以降低模塊之間的耦合度啟發(fā)性規(guī)則目前四十三頁\總數(shù)六十八頁\編于十八點2023/5/17442.模塊規(guī)模適中:過大不易理解;太小則接口開銷過大。注意分解后不應降低模塊的獨立性。3.適當控制——

深度、寬度、扇出、扇入深度=分層的層數(shù)。寬度越大系統(tǒng)越復雜寬度=同一層上模塊數(shù)的最大值。過大表示系統(tǒng)復雜度大。目前四十四頁\總數(shù)六十八頁\編于十八點2023/5/1745啟發(fā)性規(guī)則系統(tǒng)結構目前四十五頁\總數(shù)六十八頁\編于十八點2023/5/1746扇出=一個模塊直接調用\控制的模塊數(shù)。3fan-out9扇出越大意味著模塊過分復雜,應該適當增加中間層扇出太小則可以把下級模塊進一步分解成若干子模塊,或者把該模塊合并到它的上級模塊中AA的扇出啟發(fā)性規(guī)則目前四十六頁\總數(shù)六十八頁\編于十八點啟發(fā)性規(guī)則2023/5/1747AA的扇入

扇入=直接調用該模塊的模塊數(shù)在不破壞獨立性的前提下,fan-in

大的比較好。一個好的軟件結構通常頂層扇出較高,中間層扇出較低,底層又高扇入到公共模塊中去目前四十七頁\總數(shù)六十八頁\編于十八點2023/5/17484、作用域在控制域內控制域:包含該模塊和所有從屬于該模塊的模塊MACBM的控制域為{M,A,B,C}作用域:模塊中的一個判定所影響的模塊。啟發(fā)性規(guī)則目前四十八頁\總數(shù)六十八頁\編于十八點2023/5/1749TOP

CD

E

FABTOP

CD

E

FAB模塊D的作用域超出控制域D的作用域在控制域內目前四十九頁\總數(shù)六十八頁\編于十八點2023/5/1750目前五十頁\總數(shù)六十八頁\編于十八點2023/5/17515、降低接口的復雜程度:接口復雜可能表明模塊的獨立性差。6、設計單入單出的模塊。當從頂部進入模塊并且從底部退出時,軟件是比較容易理解和維護的啟發(fā)性規(guī)則目前五十一頁\總數(shù)六十八頁\編于十八點啟發(fā)性規(guī)則7、模塊功能可預測——

相同輸入必產生相同輸出。反例:模塊中使用全局變量或靜態(tài)變量,則可能導致不可預測。2023/5/1752目前五十二頁\總數(shù)六十八頁\編于十八點3.查錯和改錯設計避錯設計不能完全避免錯誤需要設計能夠具有自動查錯和改錯功能的方法查錯設計被動式檢測主動式檢測目前五十三頁\總數(shù)六十八頁\編于十八點3.1被動式錯誤檢測/1適用于軟件的各種結構層次,用來檢測從一個單元、模塊向另一個單元、模塊傳遞的錯誤征兆和檢測存在于單元、模塊內部的錯誤原則相互懷疑原則立即檢測原則目前五十四頁\總數(shù)六十八頁\編于十八點3.1被動式錯誤檢測/2方法:取決于軟件的用途、功能、結構和算法,沒有通用的模式,可選擇的方法檢查每個輸入數(shù)據(jù)的屬性按照已知的數(shù)據(jù)極限檢查輸入數(shù)據(jù)檢查所有的多值數(shù)據(jù)的有效性如果輸入數(shù)據(jù)存在明顯的冗余成分,應檢查二者的一致性如果輸入數(shù)據(jù)中不存在冗余,可以對輸入數(shù)據(jù)求和,比較輸入數(shù)據(jù)與內部數(shù)據(jù)的一致性目前五十五頁\總數(shù)六十八頁\編于十八點3.1被動式錯誤檢測/3發(fā)生錯誤后立即停止程序運行,檢錯不停止程序,記錄錯誤目前五十六頁\總數(shù)六十八頁\編于十八點3.2主動式錯誤檢測/1賦予程序特殊功能,主動搜索錯誤,并進行指示由檢測監(jiān)視器承擔,對系統(tǒng)的有關的數(shù)據(jù)主動進行掃描,例如:合理運行時間的異常過程系統(tǒng)中丟失的文件長時間內未完成的輸入,輸出操作主動系統(tǒng)診斷可以作為周期性的任務來安排目前五十七頁\總數(shù)六十八頁\編于十八點3.2主動式錯誤檢測/2如操作系統(tǒng)中的存儲管理模塊,具有向用戶程序和操作系統(tǒng)的其它模塊出借存儲區(qū)域的功能,然而用戶程序或其他模塊的錯誤有時會造成借出去的存儲區(qū)域不能返回給存儲管理模塊.主動式檢測能及時發(fā)現(xiàn)這類問題目前五十八頁\總數(shù)六十八頁\編于十八點3.3改錯設計希望軟件具有自動改正錯誤的功能需要“智能”,困難很大,所以目前采用的方法多半是隔離錯誤.實現(xiàn)用戶隔離就是防止一個用戶程序的失效,影響其它用戶程序及整個系統(tǒng)正常運行的關鍵措施例如貝爾實驗室TSPS系統(tǒng),電話換接系統(tǒng),可靠性要求為40年內停止工作時間不超過兩小時,整機停機是極為嚴重的任務,而常見的故障,例如某個電話線連接中斷,則是可以允許的失誤。TSPS系統(tǒng)使用被動和主動查錯及改錯技術來減少系統(tǒng)失效,策略是盡快檢測出某些特殊類型的錯誤,并控制其擴散.即使損失某些數(shù)據(jù)也在所不惜目前五十九頁\總數(shù)六十八頁\編于十八點4.容錯設計容錯計算系統(tǒng)能夠在出現(xiàn)一定限度的失效的情況下,依舊能夠提供所需要的服務.這些失效的發(fā)生是由于系統(tǒng)的組件或者系統(tǒng)設計中存在缺陷所導致的.構造大型的計算系統(tǒng)是一個復雜的任務;要使系統(tǒng)具有容錯能力就更復雜,除非采用合適的系統(tǒng)構造概念.傳統(tǒng)的硬件系統(tǒng)的容錯方法建立在對物理組件失效模式的影響的深入了解的基礎上.傳統(tǒng)的硬件容錯方法一般不足以處理設計上的缺陷.因此,絕大多數(shù)硬件的容錯方法不能運用到軟件上,因為軟件中絕大多數(shù)的缺陷都是設計缺陷目前六十頁\總數(shù)六十八頁\編于十八點兩種方法N文本法靜態(tài)冗余恢復塊法動態(tài)冗余增加了資源消耗,容錯技術不宜普遍采用目前六十一頁\總數(shù)六十八頁\編于十八點4.1N文本法相對于一個給定的功能,由N(N>2)個不同的設計組獨立編制出N個不同的程序,然后同時在N個機器上運行并比較運行的結果如果結果一致,認為結果正確如果結果不盡相同,按多數(shù)表決或其它預先制定的策略,判定結果的正確性優(yōu)點:沒有服務中斷目前六十二頁\總數(shù)六十八頁

溫馨提示

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

評論

0/150

提交評論