SA10-軟件體系結(jié)構(gòu)的分析與測(cè)試_第1頁(yè)
SA10-軟件體系結(jié)構(gòu)的分析與測(cè)試_第2頁(yè)
SA10-軟件體系結(jié)構(gòu)的分析與測(cè)試_第3頁(yè)
SA10-軟件體系結(jié)構(gòu)的分析與測(cè)試_第4頁(yè)
SA10-軟件體系結(jié)構(gòu)的分析與測(cè)試_第5頁(yè)
已閱讀5頁(yè),還剩55頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1第10章軟件體系結(jié)構(gòu)的分析與測(cè)試

10.1體系結(jié)構(gòu)的可靠性建模

概述

在基于構(gòu)件的可靠性模型中,通過(guò)狀態(tài)圖來(lái)描述系統(tǒng)的行為。軟件系統(tǒng)的可靠性依賴于狀態(tài)的執(zhí)行順序和每一個(gè)狀態(tài)的可靠性。狀態(tài)圖是一個(gè)有向圖,在狀態(tài)圖中,每一個(gè)結(jié)點(diǎn)Si表示一個(gè)狀態(tài),從狀態(tài)Si到狀態(tài)Sj的遷移通過(guò)連接邊(Si,Sj)表示。2第10章軟件體系結(jié)構(gòu)的分析與測(cè)試

10.1體系結(jié)構(gòu)的可靠性建模

概述

假設(shè)Ri表示狀態(tài)Si的可靠性,Pij表示從狀態(tài)Si到Sj的遷移的概率,基于狀態(tài)圖可以定義一個(gè)遷移矩陣M和可達(dá)值M(i,j)M(i,j)=Ri×PijM(i,j)表示能夠從狀態(tài)Si到狀態(tài)Sj成功遷移的概率。3

概述

遷移矩陣第10章軟件體系結(jié)構(gòu)的分析與測(cè)試

10.1體系結(jié)構(gòu)的可靠性建模4

概述

假設(shè)S={S1,S2,…,Sn}是一個(gè)狀態(tài)的集合,S1是開(kāi)始狀態(tài),Sn是最終狀態(tài)。Mk(i,j)表示通過(guò)k個(gè)遷移從Si成功到達(dá)Sj的概率。第10章軟件體系結(jié)構(gòu)的分析與測(cè)試

10.1體系結(jié)構(gòu)的可靠性建模5

順序結(jié)構(gòu)風(fēng)格

在順序結(jié)構(gòu)風(fēng)格中,系統(tǒng)的運(yùn)行按構(gòu)件的順序依次執(zhí)行。第10章軟件體系結(jié)構(gòu)的分析與測(cè)試

10.1體系結(jié)構(gòu)的可靠性建模6

順序結(jié)構(gòu)風(fēng)格

假設(shè)體系結(jié)構(gòu)是由k個(gè)構(gòu)件順序組成,其遷移矩陣通過(guò)下式構(gòu)造:

M(i,j)=0,Si不能夠到達(dá)Sj,for1i,jkM(i,j)=RiPij,Si能夠到達(dá)Sj其中,M(i,j)是狀態(tài)Si能夠成功到達(dá)Sj的概率。第10章軟件體系結(jié)構(gòu)的分析與測(cè)試

10.1體系結(jié)構(gòu)的可靠性建模7

并行/管道-過(guò)濾器結(jié)構(gòu)風(fēng)格

在這種風(fēng)格中,多個(gè)構(gòu)件可以在同一狀態(tài)下并行執(zhí)行。并行或管道-過(guò)濾器結(jié)構(gòu)風(fēng)格第10章軟件體系結(jié)構(gòu)的分析與測(cè)試

10.1體系結(jié)構(gòu)的可靠性建模8

并行/管道-過(guò)濾器結(jié)構(gòu)風(fēng)格

設(shè)并行結(jié)構(gòu)的狀態(tài)集為Sp,Sp1

Sp并行或管道-過(guò)濾器結(jié)構(gòu)風(fēng)格第10章軟件體系結(jié)構(gòu)的分析與測(cè)試

10.1體系結(jié)構(gòu)的可靠性建模9

并行/管道-過(guò)濾器結(jié)構(gòu)風(fēng)格

具有k個(gè)構(gòu)件的并行/管道-過(guò)濾器體系結(jié)構(gòu)風(fēng)格,其遷移矩陣通過(guò)下式構(gòu)造:第10章軟件體系結(jié)構(gòu)的分析與測(cè)試

10.1體系結(jié)構(gòu)的可靠性建模10

容錯(cuò)結(jié)構(gòu)風(fēng)格

容錯(cuò)結(jié)構(gòu)風(fēng)格是由一個(gè)原始構(gòu)件和一系列的備份構(gòu)件組成,原始構(gòu)件和備份構(gòu)件都放在一個(gè)并行結(jié)構(gòu)下,使得當(dāng)一個(gè)構(gòu)件出現(xiàn)錯(cuò)誤時(shí),其他構(gòu)件能夠繼續(xù)提供服務(wù)。第10章軟件體系結(jié)構(gòu)的分析與測(cè)試

10.1體系結(jié)構(gòu)的可靠性建模11

容錯(cuò)結(jié)構(gòu)風(fēng)格

容錯(cuò)構(gòu)件聚集在狀態(tài)Sb1內(nèi)。假設(shè)所有備份構(gòu)件的遷移概率與原始構(gòu)件的遷移概率是相同的。從狀態(tài)S1到狀態(tài)Sk-2和狀態(tài)Sk-1時(shí),如果狀態(tài)S2出現(xiàn)錯(cuò)誤,則使用S3的狀態(tài),如果S2和S3都出現(xiàn)錯(cuò)誤,則使用S4的狀態(tài),……。第10章軟件體系結(jié)構(gòu)的分析與測(cè)試

10.1體系結(jié)構(gòu)的可靠性建模12

容錯(cuò)結(jié)構(gòu)風(fēng)格

當(dāng)k=6時(shí),當(dāng)k=7時(shí),第10章軟件體系結(jié)構(gòu)的分析與測(cè)試

10.1體系結(jié)構(gòu)的可靠性建模13

容錯(cuò)結(jié)構(gòu)風(fēng)格

遷移矩陣第10章軟件體系結(jié)構(gòu)的分析與測(cè)試

10.1體系結(jié)構(gòu)的可靠性建模14

調(diào)用-返回結(jié)構(gòu)風(fēng)格

在調(diào)用-返回風(fēng)格中,被調(diào)用構(gòu)件可能被多次調(diào)用,而調(diào)用構(gòu)件只執(zhí)行一次。第10章軟件體系結(jié)構(gòu)的分析與測(cè)試

10.1體系結(jié)構(gòu)的可靠性建模15

調(diào)用-返回結(jié)構(gòu)風(fēng)格

M(1,3)=R1P13;M(2,1)=R2P21;由于從狀態(tài)S1可以多次遷移到狀態(tài)S2,在計(jì)算M(1,2)時(shí),只考慮從狀態(tài)S1到狀態(tài)S2遷移的概率,不考慮狀態(tài)S1的可靠性。第10章軟件體系結(jié)構(gòu)的分析與測(cè)試

10.1體系結(jié)構(gòu)的可靠性建模16假設(shè)存在由k個(gè)構(gòu)件組成的調(diào)用-返回結(jié)構(gòu)風(fēng)格,其狀態(tài)數(shù)量為k,其遷移矩陣通過(guò)下式構(gòu)造:

M(i,j)=RiPij,Si可以到達(dá)Sj

M(i,j)=Pij,Si可以到達(dá)Sj

,Sj是被調(diào)用構(gòu)件

M(i,j)=0,Si不能到達(dá)Sj其中,1i,jk

調(diào)用-返回結(jié)構(gòu)風(fēng)格

第10章軟件體系結(jié)構(gòu)的分析與測(cè)試

10.1體系結(jié)構(gòu)的可靠性建模17第10章軟件體系結(jié)構(gòu)的分析與測(cè)試

10.2軟件體系結(jié)構(gòu)的風(fēng)險(xiǎn)分析

風(fēng)險(xiǎn)分析的方法風(fēng)險(xiǎn)評(píng)估對(duì)于任何軟件風(fēng)險(xiǎn)管理計(jì)劃都是一個(gè)重要的過(guò)程。風(fēng)險(xiǎn)評(píng)估應(yīng)該是基于能夠通過(guò)定量的方法對(duì)軟件產(chǎn)品屬性進(jìn)行的度量。體系結(jié)構(gòu)級(jí)的風(fēng)險(xiǎn)評(píng)估是基于動(dòng)態(tài)的方法。該方法用動(dòng)態(tài)復(fù)雜性和動(dòng)態(tài)偶合性來(lái)定義用于描述體系結(jié)構(gòu)元素的復(fù)雜性因子。

18

風(fēng)險(xiǎn)分析的方法1.動(dòng)態(tài)方法動(dòng)態(tài)方法是用來(lái)評(píng)估執(zhí)行中的軟件體系結(jié)構(gòu)的動(dòng)態(tài)偶合度和動(dòng)態(tài)復(fù)雜度;動(dòng)態(tài)偶合度是用來(lái)度量在特定的執(zhí)行場(chǎng)景中,兩個(gè)互相連接的構(gòu)件或連接件之間的活躍程度。動(dòng)態(tài)復(fù)雜度方法是用來(lái)測(cè)量特定構(gòu)件在給定場(chǎng)景下的動(dòng)態(tài)行為。第10章軟件體系結(jié)構(gòu)的分析與測(cè)試

10.2軟件體系結(jié)構(gòu)的風(fēng)險(xiǎn)分析19

風(fēng)險(xiǎn)分析的方法2.構(gòu)件依賴圖構(gòu)件依賴圖(componentdependencygraph,CDG)是用于在體系結(jié)構(gòu)級(jí)進(jìn)行可靠性分析的概率模型;它是控制流圖的擴(kuò)展。CDG圖是有向圖,它描述構(gòu)件、構(gòu)件的可靠性,連接件、連接件的可靠性和遷移概率。CDG是從場(chǎng)景中開(kāi)發(fā)出來(lái)的,通常用UML的序列圖對(duì)場(chǎng)景進(jìn)行建模。第10章軟件體系結(jié)構(gòu)的分析與測(cè)試

10.2軟件體系結(jié)構(gòu)的風(fēng)險(xiǎn)分析20

風(fēng)險(xiǎn)分析的方法2.構(gòu)件依賴圖定義1

CDG=<N,E,s,t>,N是結(jié)點(diǎn)集,E是邊集,s和t分別是初始點(diǎn)和終結(jié)點(diǎn)。例如,N={n},E={e},n=<Ci,RCi,ECi>,其中Ci表示第i個(gè)構(gòu)件,RCi表示Ci的可靠性,ECi是Ci的平均執(zhí)行時(shí)間。第10章軟件體系結(jié)構(gòu)的分析與測(cè)試

10.2軟件體系結(jié)構(gòu)的風(fēng)險(xiǎn)分析21

風(fēng)險(xiǎn)分析的方法2.構(gòu)件依賴圖其中,PSk是場(chǎng)景Sk的執(zhí)行概率,|S|是場(chǎng)景的總數(shù),Time(Ci)是構(gòu)件Ci的執(zhí)行時(shí)間,Time(Ci)可以通過(guò)序列圖中構(gòu)件Ci在其生命線上的活躍時(shí)間總數(shù)進(jìn)行估計(jì)。Ci是場(chǎng)景Sk中的構(gòu)件。第10章軟件體系結(jié)構(gòu)的分析與測(cè)試

10.2軟件體系結(jié)構(gòu)的風(fēng)險(xiǎn)分析22

風(fēng)險(xiǎn)分析的方法2.構(gòu)件依賴圖其中,Tij是從結(jié)點(diǎn)ni到nj的遷移,RTij是該遷移的可靠性,PTij是遷移概率,PTij可以通過(guò)下式獲得:第10章軟件體系結(jié)構(gòu)的分析與測(cè)試

10.2軟件體系結(jié)構(gòu)的風(fēng)險(xiǎn)分析23

風(fēng)險(xiǎn)分析的方法2.構(gòu)件依賴圖其中,Ci,Cj,Cl(j,li)都是場(chǎng)景Sk中的構(gòu)件,PSk是場(chǎng)景Sk的執(zhí)行概率,|S|是場(chǎng)景的總數(shù),N是應(yīng)用系統(tǒng)中的構(gòu)件數(shù)量,|(Interact(Ci,Cj)|是構(gòu)件Ci和構(gòu)件Cj在場(chǎng)景Sk中的交互次數(shù)。第10章軟件體系結(jié)構(gòu)的分析與測(cè)試

10.2軟件體系結(jié)構(gòu)的風(fēng)險(xiǎn)分析24

風(fēng)險(xiǎn)分析的方法2.構(gòu)件依賴圖一個(gè)簡(jiǎn)單的CDG圖第10章軟件體系結(jié)構(gòu)的分析與測(cè)試

10.2軟件體系結(jié)構(gòu)的風(fēng)險(xiǎn)分析25

風(fēng)險(xiǎn)分析的步驟分析方法的主要步驟:采用體系結(jié)構(gòu)描述語(yǔ)言ADL對(duì)體系結(jié)構(gòu)進(jìn)行建模。通過(guò)模擬方法執(zhí)行復(fù)雜性分析。通過(guò)FMEA(failuremodeandeffectanalysis)和模擬運(yùn)行執(zhí)行嚴(yán)重性分析。為構(gòu)件和連接件開(kāi)發(fā)啟發(fā)式風(fēng)險(xiǎn)因子。建立用于風(fēng)險(xiǎn)評(píng)估的CDG。通過(guò)圖論中的算法執(zhí)行風(fēng)險(xiǎn)評(píng)估和分析。第10章軟件體系結(jié)構(gòu)的分析與測(cè)試

10.2軟件體系結(jié)構(gòu)的風(fēng)險(xiǎn)分析26

風(fēng)險(xiǎn)分析的步驟1.采用體系結(jié)構(gòu)描述語(yǔ)言ADL對(duì)體系結(jié)構(gòu)進(jìn)行建模軟件的風(fēng)險(xiǎn)可以和系統(tǒng)運(yùn)行時(shí)的失效性相關(guān)聯(lián),因此軟件系統(tǒng)的風(fēng)險(xiǎn)可以通過(guò)對(duì)單個(gè)構(gòu)件的行為和系統(tǒng)的動(dòng)態(tài)行為進(jìn)行分析和評(píng)估。選擇的ADL必須對(duì)構(gòu)件之間的交互和單個(gè)構(gòu)件的行為提供支持??梢允褂肬ML的狀態(tài)圖描述單個(gè)構(gòu)件的行為,使用UML的序列圖來(lái)描述構(gòu)件之間的交互。第10章軟件體系結(jié)構(gòu)的分析與測(cè)試

10.2軟件體系結(jié)構(gòu)的風(fēng)險(xiǎn)分析27

風(fēng)險(xiǎn)分析的步驟2.復(fù)雜性分析構(gòu)件的復(fù)雜性McCabe的基于程序流圖的環(huán)路復(fù)雜性度量:

VG=e–n+2其中,e是圖的邊數(shù),n是圖的結(jié)點(diǎn)數(shù)??梢曰诖朔椒槊總€(gè)構(gòu)件開(kāi)發(fā)復(fù)雜性因子,對(duì)每個(gè)場(chǎng)景統(tǒng)計(jì)Sk中的每個(gè)構(gòu)件Ci的執(zhí)行路徑的環(huán)路復(fù)雜性,這類度量稱為互操作復(fù)雜性,用cpxk(Ci)表示。第10章軟件體系結(jié)構(gòu)的分析與測(cè)試

10.2軟件體系結(jié)構(gòu)的風(fēng)險(xiǎn)分析28

風(fēng)險(xiǎn)分析的步驟2.復(fù)雜性分析構(gòu)件的復(fù)雜性復(fù)合狀態(tài)的環(huán)路復(fù)雜性:可以通過(guò)統(tǒng)計(jì)所有遷移片段的環(huán)路復(fù)雜性計(jì)算,包括起始點(diǎn)出口代碼片斷和終結(jié)點(diǎn)的入口代碼片斷。

兩個(gè)復(fù)合狀態(tài)之間的遷移圖第10章軟件體系結(jié)構(gòu)的分析與測(cè)試

10.2軟件體系結(jié)構(gòu)的風(fēng)險(xiǎn)分析29

風(fēng)險(xiǎn)分析的步驟2.復(fù)雜性分析構(gòu)件的復(fù)雜性從狀態(tài)S11到狀態(tài)S22的一個(gè)遷移的VG如下,其中,VGx是出口編碼片斷的復(fù)雜性,VGa是活動(dòng)代碼片斷的復(fù)雜性,VGe是入口代碼片斷的復(fù)雜性。第10章軟件體系結(jié)構(gòu)的分析與測(cè)試

10.2軟件體系結(jié)構(gòu)的風(fēng)險(xiǎn)分析30

風(fēng)險(xiǎn)分析的步驟2.復(fù)雜性分析構(gòu)件的復(fù)雜性使用場(chǎng)景概率PSk能夠通過(guò)下式統(tǒng)計(jì)每個(gè)構(gòu)件的操作復(fù)雜性度量,其中|S|表示場(chǎng)景數(shù)。第10章軟件體系結(jié)構(gòu)的分析與測(cè)試

10.2軟件體系結(jié)構(gòu)的風(fēng)險(xiǎn)分析31

風(fēng)險(xiǎn)分析的步驟2.復(fù)雜性分析(2)

連接件的復(fù)雜性可以使用動(dòng)態(tài)耦合法進(jìn)行分析:動(dòng)態(tài)耦合中包括輸出動(dòng)態(tài)耦合和輸入動(dòng)態(tài)耦合。假設(shè)ECk(Ci,Cj)是與構(gòu)件Cj相關(guān)的構(gòu)件Ci的輸出耦合,它等于從構(gòu)件Ci到構(gòu)件Cj所發(fā)的消息數(shù)在場(chǎng)景Sk的執(zhí)行期內(nèi)所交換的消息總數(shù)的百分比,即:Mk(Ci,Cj)是在場(chǎng)景Sk執(zhí)行期間,從構(gòu)件Ci到構(gòu)件Cj所發(fā)送的消息集;MTk是在場(chǎng)景Sk執(zhí)行期間,所有構(gòu)件進(jìn)行的消息交換總數(shù)。第10章軟件體系結(jié)構(gòu)的分析與測(cè)試

10.2軟件體系結(jié)構(gòu)的風(fēng)險(xiǎn)分析32

風(fēng)險(xiǎn)分析的步驟2.復(fù)雜性分析(2)

連接件的復(fù)雜性EC(Ci,Cj)度量公式:|S|是場(chǎng)景總數(shù),PSk是場(chǎng)景Sk的執(zhí)行概率。第10章軟件體系結(jié)構(gòu)的分析與測(cè)試

10.2軟件體系結(jié)構(gòu)的風(fēng)險(xiǎn)分析33

風(fēng)險(xiǎn)分析的步驟3.嚴(yán)重性分析構(gòu)件的復(fù)雜性并不是估計(jì)失效風(fēng)險(xiǎn)的完整方法,有些構(gòu)件的復(fù)雜度很低,但它們卻充當(dāng)一個(gè)主要的安全角色,如果失效可能導(dǎo)致災(zāi)難性的后果。通過(guò)每一個(gè)潛在的失效方式的級(jí)別和失效方式的后果來(lái)進(jìn)行嚴(yán)重性分析。FMEA技術(shù)是一個(gè)用于描述系統(tǒng)可能的失效方式和識(shí)別失效后果的系統(tǒng)方法。第10章軟件體系結(jié)構(gòu)的分析與測(cè)試

10.2軟件體系結(jié)構(gòu)的風(fēng)險(xiǎn)分析34

風(fēng)險(xiǎn)分析的步驟3.嚴(yán)重性分析(1)失效方式的識(shí)別:為簡(jiǎn)單起見(jiàn),只考慮下面一些失效分析技術(shù):?jiǎn)蝹€(gè)構(gòu)件的失效方式。在體系結(jié)構(gòu)描述模型中,每一個(gè)構(gòu)件用一個(gè)狀態(tài)圖來(lái)描述,它是一個(gè)基于狀態(tài)的構(gòu)件行為描述。在識(shí)別單個(gè)構(gòu)件的失效方式中,僅考慮功能性故障分析和基于狀態(tài)的故障分析。單個(gè)連接件的失效方式。在體系結(jié)構(gòu)模擬模型中,為了識(shí)別單個(gè)連接件的失效方式,僅考慮在消息參數(shù)與消息參數(shù)之間的接口錯(cuò)誤失效誤差。第10章軟件體系結(jié)構(gòu)的分析與測(cè)試

10.2軟件體系結(jié)構(gòu)的風(fēng)險(xiǎn)分析35

風(fēng)險(xiǎn)分析的步驟3.嚴(yán)重性分析(2)嚴(yán)重性分級(jí):本節(jié)通過(guò)以下方式對(duì)嚴(yán)重性進(jìn)行分級(jí)。災(zāi)難性的。一個(gè)錯(cuò)誤可能導(dǎo)致整個(gè)系統(tǒng)的失敗或毀滅。危急的。一個(gè)錯(cuò)誤可能導(dǎo)致嚴(yán)重的損壞、主要性能的損壞、主要系統(tǒng)的損壞,或者主要產(chǎn)品的失敗。邊際性的。一個(gè)錯(cuò)誤對(duì)性能、系統(tǒng)產(chǎn)生一個(gè)較小的損壞,或推遲產(chǎn)品的完成日期。較小的。一個(gè)錯(cuò)誤并不產(chǎn)生任何的損壞,但需要不定時(shí)地進(jìn)行維護(hù)和修理。第10章軟件體系結(jié)構(gòu)的分析與測(cè)試

10.2軟件體系結(jié)構(gòu)的風(fēng)險(xiǎn)分析36

風(fēng)險(xiǎn)分析的步驟4.開(kāi)發(fā)體系結(jié)構(gòu)元素的可靠性風(fēng)險(xiǎn)因子主要是通過(guò)復(fù)雜性和嚴(yán)重性因素,為體系結(jié)構(gòu)中的每一個(gè)構(gòu)件和連接件計(jì)算其啟發(fā)式風(fēng)險(xiǎn)因子。體系結(jié)構(gòu)的每一個(gè)構(gòu)件的啟發(fā)式風(fēng)險(xiǎn)因子可以通過(guò)下式計(jì)算:cpxi∈[0,1]是第i個(gè)構(gòu)件的動(dòng)態(tài)復(fù)雜性;svrtyi∈[0,1]是第i個(gè)構(gòu)件的嚴(yán)重性級(jí)別。第10章軟件體系結(jié)構(gòu)的分析與測(cè)試

10.2軟件體系結(jié)構(gòu)的風(fēng)險(xiǎn)分析37

風(fēng)險(xiǎn)分析的步驟4.開(kāi)發(fā)體系結(jié)構(gòu)元素的可靠性風(fēng)險(xiǎn)因子體系結(jié)構(gòu)的每一個(gè)連接件的啟發(fā)式風(fēng)險(xiǎn)因子可以通過(guò)下式計(jì)算:cpxij∈[0,1]是第i個(gè)構(gòu)件到第j個(gè)構(gòu)件之間的連接件的動(dòng)態(tài)偶合度,可以通過(guò)EC(Ci,Cj)計(jì)算;

svrtyij∈[0,1]是第i個(gè)構(gòu)件到第j個(gè)構(gòu)件之間的連接件的嚴(yán)重級(jí)別。第10章軟件體系結(jié)構(gòu)的分析與測(cè)試

10.2軟件體系結(jié)構(gòu)的風(fēng)險(xiǎn)分析38

風(fēng)險(xiǎn)分析的步驟5.CDG的開(kāi)發(fā)CDG模型可以通過(guò)下述步驟構(gòu)造:通過(guò)估計(jì)每一個(gè)場(chǎng)景執(zhí)行的頻率,來(lái)估計(jì)每個(gè)場(chǎng)景執(zhí)行的概率;對(duì)每一個(gè)場(chǎng)景中的構(gòu)件通過(guò)模擬報(bào)告來(lái)記錄每一個(gè)構(gòu)件的執(zhí)行時(shí)間;通過(guò)場(chǎng)景的使用概率和場(chǎng)景之間的遷移概率來(lái)計(jì)算構(gòu)件之間的遷移概率;通過(guò)模擬,為每個(gè)構(gòu)件、連接件估計(jì)復(fù)雜性因子和嚴(yán)重性指標(biāo),通過(guò)綜合復(fù)雜性因子和嚴(yán)重性指標(biāo)獲取每個(gè)構(gòu)件、連接件的風(fēng)險(xiǎn)因子。第10章軟件體系結(jié)構(gòu)的分析與測(cè)試

10.2軟件體系結(jié)構(gòu)的風(fēng)險(xiǎn)分析39

風(fēng)險(xiǎn)分析的步驟6.可靠性風(fēng)險(xiǎn)分析算法體系結(jié)構(gòu)的風(fēng)險(xiǎn)因子可以通過(guò)聚合單個(gè)構(gòu)件和連接件的風(fēng)險(xiǎn)因子來(lái)獲得。例如,假設(shè)存在一個(gè)有L個(gè)構(gòu)件的執(zhí)行序列,則該執(zhí)行序列L的風(fēng)險(xiǎn)因子為:第10章軟件體系結(jié)構(gòu)的分析與測(cè)試

10.2軟件體系結(jié)構(gòu)的風(fēng)險(xiǎn)分析40第10章軟件體系結(jié)構(gòu)的分析與測(cè)試

10.3基于體系結(jié)構(gòu)描述的軟件測(cè)試

概述

測(cè)試大型復(fù)雜的軟件系統(tǒng)是一項(xiàng)困難且花費(fèi)巨大的工作,但在軟件開(kāi)發(fā)和維護(hù)過(guò)程中卻是一項(xiàng)非常重要的工作。如何盡早地開(kāi)展軟件測(cè)試工作,怎樣將形式化方法與軟件測(cè)試技術(shù)結(jié)合起來(lái),已成為軟件測(cè)試研究的重點(diǎn)。由于軟件體系結(jié)構(gòu)描述語(yǔ)言具有形式化理論的基礎(chǔ),如Petri網(wǎng)、狀態(tài)圖、Z語(yǔ)言、CSP等,這為在體系結(jié)構(gòu)級(jí)對(duì)系統(tǒng)進(jìn)行分析和測(cè)試提供了理論基礎(chǔ)和數(shù)學(xué)方法。因此體系結(jié)構(gòu)描述語(yǔ)言除了具有形式化描述軟件體系結(jié)構(gòu)和相關(guān)推導(dǎo)的功能之外,還能以此為基礎(chǔ),提供體系結(jié)構(gòu)規(guī)約的形式化分析方法,從而在系統(tǒng)開(kāi)發(fā)初期就能發(fā)現(xiàn)體系結(jié)構(gòu)級(jí)的錯(cuò)誤。4141

體系結(jié)構(gòu)抽象模型

軟件體系結(jié)構(gòu)是由若干組件C、連接器O和配置D組成的集合A={C,O,D},配置D是描述如何將組件、連接器端口組裝起來(lái)以生成體系結(jié)構(gòu)的。第10章軟件體系結(jié)構(gòu)的分析與測(cè)試

10.3基于體系結(jié)構(gòu)描述的軟件測(cè)試4242

體系結(jié)構(gòu)抽象模型

抽象模型中,兩組件之間除了通過(guò)與某一連接器直接連接以外,由于事件的觸發(fā)和數(shù)據(jù)的依賴關(guān)系,還有可能通過(guò)其他連接器或其他組件進(jìn)行數(shù)據(jù)、控制和命令的消息傳遞。體系結(jié)構(gòu)將組件、連接器和接口作為結(jié)構(gòu)的基本單元,而體系結(jié)構(gòu)的語(yǔ)義和語(yǔ)法約束了這些單元的關(guān)系。第10章軟件體系結(jié)構(gòu)的分析與測(cè)試

10.3基于體系結(jié)構(gòu)描述的軟件測(cè)試4343

體系結(jié)構(gòu)抽象模型

基于結(jié)構(gòu)的單元測(cè)試關(guān)注的是程序單元、語(yǔ)句、變量和條件間的數(shù)據(jù)流和控制流;

軟件體系結(jié)構(gòu)測(cè)試關(guān)注的則是組件、連接器在結(jié)構(gòu)上和行為上的依賴關(guān)系,這種關(guān)系可以通過(guò)體系結(jié)構(gòu)描述語(yǔ)言和模型來(lái)獲得.第10章軟件體系結(jié)構(gòu)的分析與測(cè)試

10.3基于體系結(jié)構(gòu)描述的軟件測(cè)試44

測(cè)試方法軟件體系結(jié)構(gòu)測(cè)試與程序測(cè)試有所不同,它是檢查軟件設(shè)計(jì)的適用性,這種測(cè)試不考慮軟件的實(shí)現(xiàn)代碼,所以基于實(shí)現(xiàn)和說(shuō)明的程序測(cè)試方法對(duì)軟件體系結(jié)構(gòu)測(cè)試并不適用。體系結(jié)構(gòu)描述語(yǔ)言的形式規(guī)格說(shuō)明提供了精確、一致、易于被機(jī)器處理的符號(hào)來(lái)描述軟件的體系結(jié)構(gòu);因此可以通過(guò)模型檢測(cè)、形式化證明等方法分析軟件體系結(jié)構(gòu),這些方法大多是基于靜態(tài)的分析,它不能測(cè)試系統(tǒng)中的組件交互和動(dòng)態(tài)行為。第10章軟件體系結(jié)構(gòu)的分析與測(cè)試

10.3基于體系結(jié)構(gòu)描述的軟件測(cè)試45

測(cè)試內(nèi)容與傳統(tǒng)的軟件測(cè)試一樣,基于體系結(jié)構(gòu)的軟件測(cè)試也需要研究測(cè)試內(nèi)容、測(cè)試準(zhǔn)則、測(cè)試用例、測(cè)試充分性及測(cè)試方法等問(wèn)題。體系結(jié)構(gòu)的描述必須滿足一個(gè)基本的要求,即體系結(jié)構(gòu)描述的各個(gè)部分必須相互一致,不能彼此沖突,因?yàn)轶w系結(jié)構(gòu)主要關(guān)注系統(tǒng)的結(jié)構(gòu)和組裝,如果參與組裝的各個(gè)部分之間彼此沖突,那么由此組裝、精化和實(shí)現(xiàn)的系統(tǒng)一定不能工作。因此,體系結(jié)構(gòu)的分析和測(cè)試主要考慮:組件端口行為與連接器約束是否一致、兼容,單元間的消息是否一致、可達(dá),相關(guān)端口是否可連接,體系結(jié)構(gòu)風(fēng)格是否可滿足。第10章軟件體系結(jié)構(gòu)的分析與測(cè)試

10.3基于體系結(jié)構(gòu)描述的軟件測(cè)試46

測(cè)試內(nèi)容為了保證測(cè)試的充分性,必須對(duì)關(guān)聯(lián)組件、連接器的所有端口行為和約束進(jìn)行測(cè)試,即所有接口應(yīng)該是連接的,數(shù)據(jù)流、控制流和命令應(yīng)該是可達(dá)的,且在并發(fā)時(shí)應(yīng)該保證無(wú)死鎖發(fā)生。第10章軟件體系結(jié)構(gòu)的分析與測(cè)試

10.3基于體系結(jié)構(gòu)描述的軟件測(cè)試47

測(cè)試準(zhǔn)則在傳統(tǒng)測(cè)試方法中,測(cè)試準(zhǔn)則是基于實(shí)現(xiàn)和規(guī)約得到的,基于實(shí)現(xiàn)的測(cè)試準(zhǔn)則是結(jié)構(gòu)化的,它是利用軟件的內(nèi)部結(jié)構(gòu)來(lái)定義測(cè)試數(shù)據(jù)以覆蓋系統(tǒng)。例如,通過(guò)結(jié)構(gòu)技術(shù)從程序代碼中或通過(guò)功能化技術(shù)從規(guī)約說(shuō)明中得到單元測(cè)試計(jì)劃,基于數(shù)據(jù)流和控制流定義的語(yǔ)句覆蓋和分支覆蓋作為測(cè)試準(zhǔn)則。第10章軟件體系結(jié)構(gòu)的分析與測(cè)試

10.3基于體系結(jié)構(gòu)描述的軟件測(cè)試48

測(cè)試準(zhǔn)則基于體系結(jié)構(gòu)的抽象模型,通過(guò)分析體系結(jié)構(gòu)組成單元之間的關(guān)聯(lián)性,定義了如下的測(cè)試準(zhǔn)則:測(cè)試準(zhǔn)則:測(cè)試應(yīng)覆蓋所有的組件及各個(gè)組件的接口、各個(gè)連接器的接口、組件之間的直接連接、組件之間的間接連接。第10章軟件體系結(jié)構(gòu)的分析與測(cè)試

10.3基于體系結(jié)構(gòu)描述的軟件測(cè)試49

測(cè)試需求和測(cè)試用例的生成實(shí)現(xiàn)完整測(cè)試的典型方法是利用測(cè)試準(zhǔn)則定義測(cè)試需求,進(jìn)而生成測(cè)試用例。可定義以下幾種測(cè)試路徑:(1)組件或連接器內(nèi)部消息的傳遞路徑;(2)組件或連接器內(nèi)部端口的執(zhí)行順序路徑;(3)組件之間到連接器或連接器到組件的消息傳遞路徑;(4)組件之間的直接連接路徑;(5)組件之間的間接連接路徑;(6)所有組件的連接路徑。第10章軟件體系結(jié)構(gòu)的分析與測(cè)試

10.3基于體系結(jié)構(gòu)描述的軟件測(cè)試50

測(cè)試需求和測(cè)試用例的生成軟件體系結(jié)構(gòu)測(cè)試過(guò)程可以分為單元測(cè)試、集成測(cè)試和系統(tǒng)測(cè)試;單元測(cè)試是最底層的測(cè)試活動(dòng),指組件開(kāi)發(fā)者對(duì)組件本身的測(cè)試,涉及的消息流是組件內(nèi)部的消息,一般由組件開(kāi)發(fā)者完成;集成測(cè)試的主要任務(wù)是測(cè)試組件之間的接口以保證組件能夠交互,它將組件本身抽象為單元,并關(guān)注于組件間的消息傳遞,組件的交互行為可以通過(guò)形式化規(guī)約得到,因此這種測(cè)試可提前進(jìn)行;系統(tǒng)測(cè)試的主要任務(wù)是測(cè)試整個(gè)系統(tǒng)能否正常運(yùn)行,以保證系統(tǒng)符合其設(shè)計(jì)模型。第10章軟件體系結(jié)構(gòu)的分析與測(cè)試

10.3基于體系結(jié)構(gòu)描述的軟件測(cè)試51

測(cè)試需求和測(cè)試用例的生成在不同階段,測(cè)試關(guān)注的信息和特征也不相同,因此測(cè)試準(zhǔn)則的級(jí)別也就不同,根據(jù)由低到高的逐步抽象過(guò)程,可定義測(cè)試準(zhǔn)則的級(jí)別。第10章軟件體系結(jié)構(gòu)的分析與測(cè)試

10.3基于體系結(jié)構(gòu)描述的軟件測(cè)試52

測(cè)試需求和測(cè)試用例的生成在測(cè)試過(guò)程中,根據(jù)測(cè)試準(zhǔn)則級(jí)別,可選擇不的測(cè)試路徑,生成測(cè)試用例.例如,如果要進(jìn)行構(gòu)件級(jí)測(cè)試,通過(guò)對(duì)構(gòu)件行為的細(xì)化,即進(jìn)一步展開(kāi)構(gòu)件,再利用第1級(jí)測(cè)試準(zhǔn)則來(lái)覆蓋所有路徑,從而得到該構(gòu)件的測(cè)試用例。第10章軟件體系結(jié)構(gòu)的分析與測(cè)試

10.3基于體系結(jié)構(gòu)描述的軟件測(cè)試53

實(shí)例與實(shí)現(xiàn)以客戶/服務(wù)器(Client/Server)結(jié)構(gòu)為例,Client和Server這2個(gè)組件通過(guò)客戶服務(wù)器協(xié)議連接,連接器有2個(gè)角色Role(C)、Role(S),它們分別負(fù)責(zé)與Client端和Server端的連接;Role(C)的事件集為{開(kāi)始,請(qǐng)求,接收結(jié)果,成功}Role(S)的事件集為{開(kāi)始,激發(fā),返回結(jié)果,成功}第10章軟件體系結(jié)構(gòu)的分析與測(cè)試

10.3基于體系結(jié)構(gòu)描述的軟件測(cè)試54

實(shí)例與實(shí)現(xiàn)Client/Server遵循以下規(guī)則:客戶端首先初始化進(jìn)程并與Server連接,一旦連接,Client端通過(guò)Role(C)向Server發(fā)出請(qǐng)求;Server在收到Client端連接請(qǐng)求后,與Client端進(jìn)行連接,當(dāng)請(qǐng)求被激發(fā)后,將請(qǐng)求結(jié)果返回給Client端,然后等待Client端的其他請(qǐng)求;Client端接收結(jié)果后,可以發(fā)出更多的請(qǐng)求或終止連接;如果Client端終止了連接,Server也就中斷了與Client的連接。第10章軟件體系結(jié)構(gòu)的分析與測(cè)試

10.3基于體系結(jié)構(gòu)描述的軟件測(cè)試55

實(shí)例與實(shí)現(xiàn)Server端的應(yīng)用構(gòu)件描述如下:TypeApplisinterfaceExternalActionRequest(Msg:String)PublicActionResults(Msg:String)Behavior

(

M∈Msgs(Appl))∧Receive(Appl,M)

Results(Appl,M)Cons(

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 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)論