第3章系統(tǒng)健壯性分析_第1頁
第3章系統(tǒng)健壯性分析_第2頁
第3章系統(tǒng)健壯性分析_第3頁
第3章系統(tǒng)健壯性分析_第4頁
第3章系統(tǒng)健壯性分析_第5頁
已閱讀5頁,還剩29頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、第第3 3章章 系統(tǒng)健壯性分析系統(tǒng)健壯性分析3.1 3.1 什么是健壯性分析什么是健壯性分析 3.1.1 3.1.1 健壯性分析的作用健壯性分析的作用 3.1.2 3.1.2 健壯性分析的對象健壯性分析的對象3.2 3.2 開始健壯性分析開始健壯性分析 3.2.1 3.2.1 通過事件流尋找邊界對象通過事件流尋找邊界對象 3.2.2 3.2.2 從概念模型及用例描述中尋找實體對象從概念模型及用例描述中尋找實體對象3.3 3.3 完善概念模型完善概念模型1第第3 3章章 系統(tǒng)健壯性分析系統(tǒng)健壯性分析通過前面兩章的工作,我們已經(jīng)建立起一靜(概念模型)通過前面兩章的工作,我們已經(jīng)建立起一靜(概念模型

2、)一動(用例模型)兩個模型,從靜態(tài)和動態(tài)兩個方面描一動(用例模型)兩個模型,從靜態(tài)和動態(tài)兩個方面描述了系統(tǒng)的概貌。接下來,我們該做哪些事情呢?述了系統(tǒng)的概貌。接下來,我們該做哪些事情呢?絕大多數(shù)軟件工程教科書都告訴我們,面向?qū)ο蠓椒ū冉^大多數(shù)軟件工程教科書都告訴我們,面向?qū)ο蠓椒ū冉Y(jié)構(gòu)化方法先進,前者用直接的手段反映現(xiàn)實世界,而結(jié)構(gòu)化方法先進,前者用直接的手段反映現(xiàn)實世界,而后者是用間接的手段來反映現(xiàn)實世界。后者的致命弱點后者是用間接的手段來反映現(xiàn)實世界。后者的致命弱點就是在分析階段以數(shù)據(jù)流圖作為表達工具,而在設(shè)計階就是在分析階段以數(shù)據(jù)流圖作為表達工具,而在設(shè)計階段用系統(tǒng)結(jié)構(gòu)圖等作為表達手段,

3、從而使得分析和設(shè)計段用系統(tǒng)結(jié)構(gòu)圖等作為表達手段,從而使得分析和設(shè)計兩個階段存在著難以跨越的鴻溝,導(dǎo)致了設(shè)計和分析的兩個階段存在著難以跨越的鴻溝,導(dǎo)致了設(shè)計和分析的脫節(jié)。而在面向?qū)ο蠓椒ㄖ?,由于表達工具的一致性,脫節(jié)。而在面向?qū)ο蠓椒ㄖ校捎诒磉_工具的一致性,加上通常采用的是迭代的軟件過程,使分析和設(shè)計沒有加上通常采用的是迭代的軟件過程,使分析和設(shè)計沒有明顯的界限,從而不會導(dǎo)致分析結(jié)果在設(shè)計中的變形。明顯的界限,從而不會導(dǎo)致分析結(jié)果在設(shè)計中的變形。2那么,面向?qū)ο蠓椒ǚ治龊驮O(shè)計中的各步驟工作是否就那么,面向?qū)ο蠓椒ǚ治龊驮O(shè)計中的各步驟工作是否就真的能無縫的集成在一起,是否不存在任何障礙和鴻溝。真

4、的能無縫的集成在一起,是否不存在任何障礙和鴻溝。實際上,當(dāng)我們對問題域完成了用例建模之后,接下來實際上,當(dāng)我們對問題域完成了用例建模之后,接下來的工作就是繪制系統(tǒng)順序圖或時序圖,并進而把它們演的工作就是繪制系統(tǒng)順序圖或時序圖,并進而把它們演化成設(shè)計類圖,在這個過程中,我們依然會感到無從下化成設(shè)計類圖,在這個過程中,我們依然會感到無從下手。也就是說,當(dāng)我們完成了傳統(tǒng)意義上的分析工作手。也就是說,當(dāng)我們完成了傳統(tǒng)意義上的分析工作建立概念模型和用例模型建立概念模型和用例模型之后,從分析階段向設(shè)之后,從分析階段向設(shè)計階段轉(zhuǎn)換中,依然存在著一定程度的鴻溝,只不過沒計階段轉(zhuǎn)換中,依然存在著一定程度的鴻溝,

5、只不過沒有結(jié)構(gòu)化方法那么明顯而已。有結(jié)構(gòu)化方法那么明顯而已。第第3 3章章 系統(tǒng)健壯性分析系統(tǒng)健壯性分析3第第3 3章章 系統(tǒng)健壯性分析系統(tǒng)健壯性分析3.1 什么是健壯性分析什么是健壯性分析健壯性分析通常也叫魯棒分析。魯棒是健壯性分析通常也叫魯棒分析。魯棒是RobustRobust的音譯,也的音譯,也就是健壯和強壯的意思。就是健壯和強壯的意思。魯棒性(魯棒性(robustnessrobustness)就是系統(tǒng)的健壯性。它是在異常和)就是系統(tǒng)的健壯性。它是在異常和危險情況下系統(tǒng)生存的關(guān)鍵。比如說,計算機軟件在輸入危險情況下系統(tǒng)生存的關(guān)鍵。比如說,計算機軟件在輸入錯誤、磁盤故障、網(wǎng)絡(luò)過載或惡意攻擊

6、情況下,能否不死錯誤、磁盤故障、網(wǎng)絡(luò)過載或惡意攻擊情況下,能否不死機、不崩潰,就是該軟件的魯棒性。所謂機、不崩潰,就是該軟件的魯棒性。所謂“魯棒性魯棒性”,是,是指控制系統(tǒng)在一定(結(jié)構(gòu),大小)的參數(shù)攝動下,維持某指控制系統(tǒng)在一定(結(jié)構(gòu),大?。┑膮?shù)攝動下,維持某些性能的特性。根據(jù)對性能的不同定義,可分為穩(wěn)定魯棒些性能的特性。根據(jù)對性能的不同定義,可分為穩(wěn)定魯棒性和性能魯棒性。以閉環(huán)系統(tǒng)的魯棒性作為目標(biāo)設(shè)計得到性和性能魯棒性。以閉環(huán)系統(tǒng)的魯棒性作為目標(biāo)設(shè)計得到的固定控制器稱為魯棒控制器。的固定控制器稱為魯棒控制器。19911991年,年,Ivar Jacobson Ivar Jacobson 把

7、魯棒分析引進了面向?qū)ο箢I(lǐng)域。為了適合我們的理解習(xí)把魯棒分析引進了面向?qū)ο箢I(lǐng)域。為了適合我們的理解習(xí)慣,以下一律叫健壯性分析。慣,以下一律叫健壯性分析。 4健壯性分析盡管也有分析兩字,但它的工作有很健壯性分析盡管也有分析兩字,但它的工作有很多與設(shè)計類似,而從嚴(yán)格的意義上來說,它又不多與設(shè)計類似,而從嚴(yán)格的意義上來說,它又不是真正的設(shè)計,即是一種介乎于分析與設(shè)計中間是真正的設(shè)計,即是一種介乎于分析與設(shè)計中間地帶的東西。因此,用它來填補上面所提到的鴻地帶的東西。因此,用它來填補上面所提到的鴻溝,卻是非常合適的。現(xiàn)在大多數(shù)面向?qū)ο蟮臅鴾?,卻是非常合適的?,F(xiàn)在大多數(shù)面向?qū)ο蟮臅校紱]有提到健壯性分析

8、,我們在這里對它籍中,都沒有提到健壯性分析,我們在這里對它進行介紹,也算是一家之言吧。進行介紹,也算是一家之言吧。第第3 3章章 系統(tǒng)健壯性分析系統(tǒng)健壯性分析5第第3 3章章 系統(tǒng)健壯性分析系統(tǒng)健壯性分析在面向?qū)ο蟮姆治雠c設(shè)計中,健壯性分析可以完成以下的在面向?qū)ο蟮姆治雠c設(shè)計中,健壯性分析可以完成以下的任務(wù):任務(wù):1) 正確性檢查:健壯性分析將通過比順序圖更簡單、更有正確性檢查:健壯性分析將通過比順序圖更簡單、更有效的圖形來描述用例中的傳遞過程,從而確保用例是正確效的圖形來描述用例中的傳遞過程,從而確保用例是正確的,同時沒有指定對于特定對象來說不合理、不可能的系的,同時沒有指定對于特定對象來說

9、不合理、不可能的系統(tǒng)行為。如果熟練掌握了健壯性分析,還可以在編寫用例統(tǒng)行為。如果熟練掌握了健壯性分析,還可以在編寫用例描述時,多了一種有效的對比和檢驗方法。描述時,多了一種有效的對比和檢驗方法。2) 完整性檢查:通過健壯性分析,你可以很容易的找到用完整性檢查:通過健壯性分析,你可以很容易的找到用例描述中所有必須的擴展路徑。例描述中所有必須的擴展路徑。3.1.1 健壯性分析的作用健壯性分析的作用64) 初步設(shè)計:健壯性分析將類分成了實體類、控制類、邊初步設(shè)計:健壯性分析將類分成了實體類、控制類、邊界類三種,組裝觀點正好與界類三種,組裝觀點正好與MVC體系結(jié)構(gòu)不謀而合,這可體系結(jié)構(gòu)不謀而合,這可以

10、保證設(shè)計出更加穩(wěn)健的應(yīng)用系統(tǒng)。以保證設(shè)計出更加穩(wěn)健的應(yīng)用系統(tǒng)。3) 持續(xù)發(fā)現(xiàn)及確認(rèn)類:在做健壯性分析時,你將會關(guān)注持續(xù)發(fā)現(xiàn)及確認(rèn)類:在做健壯性分析時,你將會關(guān)注具體的細(xì)節(jié)問題,從而很容易發(fā)現(xiàn)在問題域建模時漏掉的具體的細(xì)節(jié)問題,從而很容易發(fā)現(xiàn)在問題域建模時漏掉的類。這些漏掉的類讓你在繪制順序圖時感覺到好像缺少了類。這些漏掉的類讓你在繪制順序圖時感覺到好像缺少了一些什么,但又不容易被重新找到。同時,你也可以通過一些什么,但又不容易被重新找到。同時,你也可以通過健壯性分析來確認(rèn)先前所確定的類中哪些是不正確的,從健壯性分析來確認(rèn)先前所確定的類中哪些是不正確的,從而修改或刪除不正確的類。而修改或刪除不正

11、確的類。第第3 3章章 系統(tǒng)健壯性分析系統(tǒng)健壯性分析7第第3 3章章 系統(tǒng)健壯性分析系統(tǒng)健壯性分析附:附:MVC簡介簡介MVCMVC是是Model-View-ControllerModel-View-Controller的縮寫,的縮寫,是一種常用的設(shè)是一種常用的設(shè)計模式。計模式。模型模型- -視圖視圖- -控制結(jié)構(gòu)是交互式應(yīng)用程序廣泛使控制結(jié)構(gòu)是交互式應(yīng)用程序廣泛使用的一種體系結(jié)構(gòu)。它有效地在存儲和展示數(shù)據(jù)的對象用的一種體系結(jié)構(gòu)。它有效地在存儲和展示數(shù)據(jù)的對象中區(qū)分功能模塊以降低它們之間的連接度,這種體系結(jié)中區(qū)分功能模塊以降低它們之間的連接度,這種體系結(jié)構(gòu)將傳統(tǒng)的輸入、處理和輸出模型轉(zhuǎn)化為圖形

12、顯示的用構(gòu)將傳統(tǒng)的輸入、處理和輸出模型轉(zhuǎn)化為圖形顯示的用戶交互模型,或者換一種說法,是多層次的戶交互模型,或者換一種說法,是多層次的WebWeb商業(yè)應(yīng)商業(yè)應(yīng)用;用;MVCMVC體系結(jié)構(gòu)具有三個層面:模型體系結(jié)構(gòu)具有三個層面:模型 (ModelModel)、視)、視圖圖(View)(View)和控制和控制(Controller)(Controller),每個層面有其各自的功,每個層面有其各自的功能作用,能作用,MVCMVC體系結(jié)構(gòu)如下:體系結(jié)構(gòu)如下:8圖圖3.1 MVC模型結(jié)構(gòu)模型結(jié)構(gòu)模型層負(fù)責(zé)表達和訪問商業(yè)數(shù)據(jù),執(zhí)行商業(yè)邏輯和操作。模型層負(fù)責(zé)表達和訪問商業(yè)數(shù)據(jù),執(zhí)行商業(yè)邏輯和操作。也就是說,這

13、一層就是現(xiàn)實生活中功能的軟件模擬;在模也就是說,這一層就是現(xiàn)實生活中功能的軟件模擬;在模型層變化的時候,它將通知視圖層并提供后者訪問自身狀型層變化的時候,它將通知視圖層并提供后者訪問自身狀態(tài)的能力,同時控制層也可以訪問其功能函數(shù)以完成相關(guān)態(tài)的能力,同時控制層也可以訪問其功能函數(shù)以完成相關(guān)的任務(wù)。的任務(wù)。 第第3 3章章 系統(tǒng)健壯性分析系統(tǒng)健壯性分析9第第3 3章章 系統(tǒng)健壯性分析系統(tǒng)健壯性分析視圖層負(fù)責(zé)顯示模型層的內(nèi)容。它從模型層取得數(shù)據(jù)并指視圖層負(fù)責(zé)顯示模型層的內(nèi)容。它從模型層取得數(shù)據(jù)并指定這些數(shù)據(jù)如何被顯示出來。在模型層變化的時候,它將定這些數(shù)據(jù)如何被顯示出來。在模型層變化的時候,它將自動

14、更新。另外視圖層也會將用戶的輸入傳送給控制層。自動更新。另外視圖層也會將用戶的輸入傳送給控制層??刂茖迂?fù)責(zé)定義應(yīng)用程序的行為。它可以分派用戶的請求控制層負(fù)責(zé)定義應(yīng)用程序的行為。它可以分派用戶的請求并選擇恰當(dāng)?shù)囊晥D以用于顯示,同時它也可以解釋用戶的并選擇恰當(dāng)?shù)囊晥D以用于顯示,同時它也可以解釋用戶的輸入并將它們映射為模型層可執(zhí)行的操作;在一個圖形界輸入并將它們映射為模型層可執(zhí)行的操作;在一個圖形界面中,常見的用戶輸入包括點擊按鈕和菜單選擇。控制層面中,常見的用戶輸入包括點擊按鈕和菜單選擇。控制層可以基于用戶的交互和模型層的操作結(jié)果來選擇下一個可可以基于用戶的交互和模型層的操作結(jié)果來選擇下一個可以顯

15、示的視圖,一個應(yīng)用程序通常會基于一組相關(guān)功能設(shè)以顯示的視圖,一個應(yīng)用程序通常會基于一組相關(guān)功能設(shè)定一個控制層的模塊,甚至一些應(yīng)用程序會根據(jù)不同的用定一個控制層的模塊,甚至一些應(yīng)用程序會根據(jù)不同的用戶類型具有不同的控制層設(shè)定,這主要是由于不同用戶的戶類型具有不同的控制層設(shè)定,這主要是由于不同用戶的視圖交互和選擇也是不同的。視圖交互和選擇也是不同的。 10第第3 3章章 系統(tǒng)健壯性分析系統(tǒng)健壯性分析在模型層、視圖層和控制層之間劃分責(zé)任可以減少代碼的在模型層、視圖層和控制層之間劃分責(zé)任可以減少代碼的重復(fù)度,并使應(yīng)用程序維護起來更簡單。同時由于數(shù)據(jù)和重復(fù)度,并使應(yīng)用程序維護起來更簡單。同時由于數(shù)據(jù)和商

16、務(wù)邏輯的分開,在新的數(shù)據(jù)源加入和數(shù)據(jù)顯示變化的時商務(wù)邏輯的分開,在新的數(shù)據(jù)源加入和數(shù)據(jù)顯示變化的時候,數(shù)據(jù)處理也會變得更簡單。候,數(shù)據(jù)處理也會變得更簡單。 MVC是現(xiàn)有的編程語言中制作圖形用戶界面的一種通用的思是現(xiàn)有的編程語言中制作圖形用戶界面的一種通用的思想,它把數(shù)據(jù)的內(nèi)容本身和顯示方式分離開,這樣就使得數(shù)想,它把數(shù)據(jù)的內(nèi)容本身和顯示方式分離開,這樣就使得數(shù)據(jù)的顯示更加靈活。比如,某年級各個班級的學(xué)生人數(shù)是數(shù)據(jù)的顯示更加靈活。比如,某年級各個班級的學(xué)生人數(shù)是數(shù)據(jù),則顯示方式是多種多樣的,可以采用柱狀圖顯示,也可據(jù),則顯示方式是多種多樣的,可以采用柱狀圖顯示,也可以采用餅圖顯示,也可以采用直接

17、的數(shù)據(jù)輸出。因此在設(shè)計以采用餅圖顯示,也可以采用直接的數(shù)據(jù)輸出。因此在設(shè)計的時候,就考慮把數(shù)據(jù)和顯示方式分開,對于實現(xiàn)多種多樣的時候,就考慮把數(shù)據(jù)和顯示方式分開,對于實現(xiàn)多種多樣的顯示是非常有幫助的。的顯示是非常有幫助的。11第第3 3章章 系統(tǒng)健壯性分析系統(tǒng)健壯性分析3.1.2 健壯性分析的對象健壯性分析的對象健壯性分析的健壯性分析的圖形表示法如圖圖形表示法如圖3.23.2所示:所示:實體類實體類控制類控制類邊界類邊界類圖圖3.2 3.2 健壯性分析圖形表示法健壯性分析圖形表示法1) 邊界類邊界類:用于建立系統(tǒng)與其參與者(即用戶和外部系:用于建立系統(tǒng)與其參與者(即用戶和外部系統(tǒng))之間交互的模

18、型。這種交互通常包括接收來自用戶統(tǒng))之間交互的模型。這種交互通常包括接收來自用戶和外部系統(tǒng)的信息與請求以及將信息與請求提交到用戶和外部系統(tǒng)的信息與請求以及將信息與請求提交到用戶和外部系統(tǒng)。和外部系統(tǒng)。邊界類對系統(tǒng)中依賴于參與者的部分建模,也就是說,邊界類對系統(tǒng)中依賴于參與者的部分建模,也就是說,邊界類用于闡明和收集系統(tǒng)的邊界需求。這樣,通常就邊界類用于闡明和收集系統(tǒng)的邊界需求。這樣,通常就把用戶界面或通信接口的變化隔離在一個或多個邊界類把用戶界面或通信接口的變化隔離在一個或多個邊界類中,從而不會影響系統(tǒng)的數(shù)據(jù)和系統(tǒng)的控制邏輯。中,從而不會影響系統(tǒng)的數(shù)據(jù)和系統(tǒng)的控制邏輯。12邊界類通常代表對對話

19、框、菜單、接口等的抽象。在我邊界類通常代表對對話框、菜單、接口等的抽象。在我們工作的這個階段,只要邊界類能夠說明通過交互(即們工作的這個階段,只要邊界類能夠說明通過交互(即在系統(tǒng)與參與者之間來回傳遞的信息與請求)所實現(xiàn)的在系統(tǒng)與參與者之間來回傳遞的信息與請求)所實現(xiàn)的目標(biāo)就足夠了,而不必描述如何具體實現(xiàn)這種交互,因目標(biāo)就足夠了,而不必描述如何具體實現(xiàn)這種交互,因為這是在后續(xù)的設(shè)計與實現(xiàn)活動中所要考慮的問題。為這是在后續(xù)的設(shè)計與實現(xiàn)活動中所要考慮的問題。每個邊界類至少應(yīng)該與一個參與者有關(guān),反之亦然。每個邊界類至少應(yīng)該與一個參與者有關(guān),反之亦然。2)2)實體類實體類:實體類通常用于對持久的信息建模

20、,即主要:實體類通常用于對持久的信息建模,即主要對諸如個體、實際對象或?qū)嶋H事件的某些現(xiàn)象或概念的對諸如個體、實際對象或?qū)嶋H事件的某些現(xiàn)象或概念的信息及相關(guān)行為建模。大多數(shù)情況下,實體類來自現(xiàn)實信息及相關(guān)行為建模。大多數(shù)情況下,實體類來自現(xiàn)實世界,也就是來自先前所建立的問題域模型,用來描述世界,也就是來自先前所建立的問題域模型,用來描述具體的實體,并經(jīng)常表示為一種邏輯數(shù)據(jù)結(jié)構(gòu),一般映具體的實體,并經(jīng)常表示為一種邏輯數(shù)據(jù)結(jié)構(gòu),一般映射到數(shù)據(jù)庫表格與文件中。射到數(shù)據(jù)庫表格與文件中。第第3 3章章 系統(tǒng)健壯性分析系統(tǒng)健壯性分析13第第3 3章章 系統(tǒng)健壯性分析系統(tǒng)健壯性分析3)3) 控制類控制類:代表

21、協(xié)調(diào)、排序、事務(wù)處理以及對其他對象的:代表協(xié)調(diào)、排序、事務(wù)處理以及對其他對象的控制,經(jīng)常用于封裝與某個具體用例有關(guān)的控制??刂祁惪刂疲?jīng)常用于封裝與某個具體用例有關(guān)的控制。控制類還可用來表示復(fù)雜的派生與演算,如業(yè)務(wù)邏輯,它們與系還可用來表示復(fù)雜的派生與演算,如業(yè)務(wù)邏輯,它們與系統(tǒng)存儲的任何具體的持久信息(即某個具體的實體類)都統(tǒng)存儲的任何具體的持久信息(即某個具體的實體類)都沒有關(guān)系。沒有關(guān)系。系統(tǒng)的動態(tài)特征通過控制類來建模,因為控制類處理和協(xié)系統(tǒng)的動態(tài)特征通過控制類來建模,因為控制類處理和協(xié)調(diào)主要的動作和控制流,并將任務(wù)委派給其他對象(即邊調(diào)主要的動作和控制流,并將任務(wù)委派給其他對象(即邊界

22、對象和實體對象)。界對象和實體對象)。控制類并不封裝與參與者交互有關(guān)的問題,也不封裝與系控制類并不封裝與參與者交互有關(guān)的問題,也不封裝與系統(tǒng)處理的持久信息有關(guān)的問題,這些問題分別是由邊界類統(tǒng)處理的持久信息有關(guān)的問題,這些問題分別是由邊界類和實體類封裝的。而控制類對控制、協(xié)調(diào)、排序、事務(wù)處和實體類封裝的。而控制類對控制、協(xié)調(diào)、排序、事務(wù)處理、復(fù)雜業(yè)務(wù)邏輯(涉及其他多個對象)進行封裝,因而理、復(fù)雜業(yè)務(wù)邏輯(涉及其他多個對象)進行封裝,因而能將它們與變化隔離開來,即可以使得應(yīng)用系統(tǒng)的變化不能將它們與變化隔離開來,即可以使得應(yīng)用系統(tǒng)的變化不影響用戶界面和數(shù)據(jù)庫中的表。影響用戶界面和數(shù)據(jù)庫中的表。14第

23、第3 3章章 系統(tǒng)健壯性分析系統(tǒng)健壯性分析除了以上的圖形表示之外,健壯性分析也制定了一些繪制分除了以上的圖形表示之外,健壯性分析也制定了一些繪制分析圖的規(guī)則。通過這些規(guī)則,使我們能夠更好地理解健壯性析圖的規(guī)則。通過這些規(guī)則,使我們能夠更好地理解健壯性分析的本質(zhì)特征。這些規(guī)則為:分析的本質(zhì)特征。這些規(guī)則為: 參與者只能通過邊界類與系統(tǒng)交互;參與者只能通過邊界類與系統(tǒng)交互; 邊界類只能與控制類或參與者交互;邊界類只能與控制類或參與者交互; 實體類也只能與控制類交互;實體類也只能與控制類交互; 控制類可以與邊界類、控制類、實體類交互,但不能與參控制類可以與邊界類、控制類、實體類交互,但不能與參與者交

24、互。與者交互。這些規(guī)則如圖這些規(guī)則如圖3.3所示。所示。15第第3 3章章 系統(tǒng)健壯性分析系統(tǒng)健壯性分析允許允許不允許不允許圖圖3.3 健壯性分析圖規(guī)則健壯性分析圖規(guī)則16第第3 3章章 系統(tǒng)健壯性分析系統(tǒng)健壯性分析3.2 開始健壯性分析開始健壯性分析通過上面的介紹,我們已經(jīng)了解了什么是健壯性分析,也通過上面的介紹,我們已經(jīng)了解了什么是健壯性分析,也了解了健壯性分析在面向?qū)ο蠓治龊驮O(shè)計中所起的橋梁作了解了健壯性分析在面向?qū)ο蠓治龊驮O(shè)計中所起的橋梁作用,以及繪制健壯性分析圖所應(yīng)遵循的一些簡單規(guī)則。用,以及繪制健壯性分析圖所應(yīng)遵循的一些簡單規(guī)則。3.2.1 通過事件流尋找邊界類通過事件流尋找邊界類

25、健壯性分析是針對某個具體用例的,其分析的基礎(chǔ)是具體健壯性分析是針對某個具體用例的,其分析的基礎(chǔ)是具體用例描述中關(guān)于事件流的部分,同時綜合考慮基本路徑和用例描述中關(guān)于事件流的部分,同時綜合考慮基本路徑和擴展路徑兩方面。在第擴展路徑兩方面。在第2章中,我們曾以章中,我們曾以“新增書籍信息新增書籍信息”(用例(用例UC01)為例說明了如何編寫用例描述,并得到了如)為例說明了如何編寫用例描述,并得到了如表表3.1的事件流描述。的事件流描述。17第第3 3章章 系統(tǒng)健壯性分析系統(tǒng)健壯性分析3.3.事件流事件流 3.1 3.1 基本事件流基本事件流 1)1)圖書管理員向系統(tǒng)發(fā)出圖書管理員向系統(tǒng)發(fā)出”新增書

26、籍信息新增書籍信息“請求;請求; 2)2)系統(tǒng)要求圖書管理員選擇要新增的書籍是計算機類還系統(tǒng)要求圖書管理員選擇要新增的書籍是計算機類還是非計算機類;是非計算機類; 3)3)圖書管理員做出選擇后,顯示相應(yīng)界面,讓圖書管理圖書管理員做出選擇后,顯示相應(yīng)界面,讓圖書管理員輸入信息,并自動根據(jù)書號規(guī)則生成書號;員輸入信息,并自動根據(jù)書號規(guī)則生成書號; 4)4)圖書管理員輸入書籍的相關(guān)信息,包括:書名、作者、圖書管理員輸入書籍的相關(guān)信息,包括:書名、作者、出版社、出版社、ISBNISBN號、開本、頁數(shù)、定價、是否有光盤等;號、開本、頁數(shù)、定價、是否有光盤等; 5)5)系統(tǒng)確認(rèn)輸入的信息中書名沒有重名;系

27、統(tǒng)確認(rèn)輸入的信息中書名沒有重名; 6)6)系統(tǒng)將所輸入的信息存儲建檔;系統(tǒng)將所輸入的信息存儲建檔; 表表3.1 ”新增書籍信息新增書籍信息“用例事件流用例事件流183.2 3.2 擴展事件流擴展事件流 5a)5a)如果輸入的書名有重名現(xiàn)象,則顯示出重名的書如果輸入的書名有重名現(xiàn)象,則顯示出重名的書籍,并要求圖書管理員選擇修改書名或取消輸入;籍,并要求圖書管理員選擇修改書名或取消輸入; 5a1)5a1)圖書管理員選擇取消輸入,則結(jié)束用例,不做存圖書管理員選擇取消輸入,則結(jié)束用例,不做存儲建檔工作;儲建檔工作; 5a2)5a2)圖書管理員選擇修改書名后,轉(zhuǎn)到圖書管理員選擇修改書名后,轉(zhuǎn)到5)5);

28、在我們討論的這個用例中,不存在外部系統(tǒng),而且參與者在我們討論的這個用例中,不存在外部系統(tǒng),而且參與者也只有一個也只有一個“圖書管理員圖書管理員”,因此尋找邊界類比較簡單,因此尋找邊界類比較簡單,即從即從“圖書管理員圖書管理員”這個參與者出發(fā),認(rèn)真分析用例描述這個參與者出發(fā),認(rèn)真分析用例描述的每一句話,從中進行選擇:的每一句話,從中進行選擇:第第3 3章章 系統(tǒng)健壯性分析系統(tǒng)健壯性分析19第第3 3章章 系統(tǒng)健壯性分析系統(tǒng)健壯性分析1) 圖書管理員向系統(tǒng)發(fā)出圖書管理員向系統(tǒng)發(fā)出“新增書籍信息新增書籍信息”請求請求圖書圖書管理員在什么地方向系統(tǒng)發(fā)出管理員在什么地方向系統(tǒng)發(fā)出“新增書籍信息新增書籍信

29、息”的請求呢?的請求呢?一般情況下我們會設(shè)計一個主窗口,并在上面擺放一些按一般情況下我們會設(shè)計一個主窗口,并在上面擺放一些按鈕來實現(xiàn),所以我們通過該描述可以發(fā)現(xiàn)兩個邊界類:主鈕來實現(xiàn),所以我們通過該描述可以發(fā)現(xiàn)兩個邊界類:主窗口、窗口、“新增書籍信息新增書籍信息”按鈕。按鈕。2) 系統(tǒng)要求圖書管理員選擇要新增的書籍是計算機類還系統(tǒng)要求圖書管理員選擇要新增的書籍是計算機類還是非計算機類,從該描述中我們可以發(fā)現(xiàn)一個新的邊界類:是非計算機類,從該描述中我們可以發(fā)現(xiàn)一個新的邊界類:書籍類別列表框。書籍類別列表框。3) 圖書管理員做出選擇后,顯示相應(yīng)界面,讓圖書管理圖書管理員做出選擇后,顯示相應(yīng)界面,讓

30、圖書管理員輸入信息,并根據(jù)書號生成規(guī)則自動生成書號,從該描員輸入信息,并根據(jù)書號生成規(guī)則自動生成書號,從該描述中,我們可以發(fā)現(xiàn)很關(guān)鍵的一個邊界類:述中,我們可以發(fā)現(xiàn)很關(guān)鍵的一個邊界類:“新書錄入信新書錄入信息息”窗口以及輔助的窗口以及輔助的“提交提交”按鈕。按鈕。除此之外,我們還應(yīng)該發(fā)現(xiàn)新增書籍信息按鈕是主窗口的除此之外,我們還應(yīng)該發(fā)現(xiàn)新增書籍信息按鈕是主窗口的一個組成部分,而書籍類別列表框、提交按鈕則是新書信一個組成部分,而書籍類別列表框、提交按鈕則是新書信息錄入窗口的必要組成部分。息錄入窗口的必要組成部分。20第第3 3章章 系統(tǒng)健壯性分析系統(tǒng)健壯性分析3.2.2 從概念模型及用例描述中尋

31、找實體類從概念模型及用例描述中尋找實體類在第在第1章中,我們已經(jīng)找到了與問題域相關(guān)的各個類,并建章中,我們已經(jīng)找到了與問題域相關(guān)的各個類,并建立了問題域概念模型如圖立了問題域概念模型如圖3.4所示。所示。書籍列表書籍列表借閱記錄列表借閱記錄列表書籍書籍借閱記錄借閱記錄非計算機類書籍非計算機類書籍計算機類書籍計算機類書籍圖圖3.4 最初的概念模型最初的概念模型21圖圖3.4中的類,就是系統(tǒng)中的實體類。當(dāng)然,并中的類,就是系統(tǒng)中的實體類。當(dāng)然,并不是概念模型中所有的類都是我們要找的實體類,不是概念模型中所有的類都是我們要找的實體類,而是在用例描述中涉及到概念模型中的類才是我而是在用例描述中涉及到概

32、念模型中的類才是我們要找的實體類。因此,結(jié)合概念模型和用例描們要找的實體類。因此,結(jié)合概念模型和用例描述,我們就能夠很容易地找到四個實體類:書籍、述,我們就能夠很容易地找到四個實體類:書籍、計算機書籍、非計算機書籍以及書籍列表。計算機書籍、非計算機書籍以及書籍列表。第第3 3章章 系統(tǒng)健壯性分析系統(tǒng)健壯性分析22第第3 3章章 系統(tǒng)健壯性分析系統(tǒng)健壯性分析3.2.3 繪制健壯性分析圖繪制健壯性分析圖當(dāng)我們找出了邊界類和實體類之后,就可以從邊界類出當(dāng)我們找出了邊界類和實體類之后,就可以從邊界類出發(fā),根據(jù)用例描述逐步找到控制類。一般對于每個用例發(fā),根據(jù)用例描述逐步找到控制類。一般對于每個用例而言,

33、合適的控制類的數(shù)量大約是而言,合適的控制類的數(shù)量大約是25個之間。同時,個之間。同時,在繪制健壯性分析圖時要注意:在繪制健壯性分析圖時要注意:1) 圖中的箭頭與順序圖不一樣,并不代表信息傳遞,而圖中的箭頭與順序圖不一樣,并不代表信息傳遞,而是代表邏輯流。因此,你所要做的事情是理清楚對象之是代表邏輯流。因此,你所要做的事情是理清楚對象之間的邏輯關(guān)系,而不是產(chǎn)生一個定義嚴(yán)密的設(shè)計方案。間的邏輯關(guān)系,而不是產(chǎn)生一個定義嚴(yán)密的設(shè)計方案。2) 圖中出現(xiàn)的控制類并不一定就是一個未來的設(shè)計類,圖中出現(xiàn)的控制類并不一定就是一個未來的設(shè)計類,也許僅僅是類中的一個方法。因此沒有必要花太多時間也許僅僅是類中的一個方

34、法。因此沒有必要花太多時間去考慮它是否是一個類。去考慮它是否是一個類。23第第3 3章章 系統(tǒng)健壯性分析系統(tǒng)健壯性分析1 繪制邊界類繪制邊界類我們可以先繪制參與者與邊界類,如圖我們可以先繪制參與者與邊界類,如圖3.5所示。所示。圖書管理員圖書管理員主窗口主窗口“新增圖書信息新增圖書信息”按鈕按鈕“新書錄入新書錄入”窗窗口口“書籍類別書籍類別”列表框列表框“提交提交”按鈕按鈕圖圖3.5 健壯性分析圖之一健壯性分析圖之一24第第3 3章章 系統(tǒng)健壯性分析系統(tǒng)健壯性分析在前面關(guān)于健壯性分析圖的繪制規(guī)則中,我們曾規(guī)定邊界在前面關(guān)于健壯性分析圖的繪制規(guī)則中,我們曾規(guī)定邊界類與邊界類之間是不能進行交互的,

35、而圖類與邊界類之間是不能進行交互的,而圖3.5中連接中連接“新增新增圖書信息圖書信息”按鈕和按鈕和“新書錄入新書錄入”窗口兩個邊界類之間的虛窗口兩個邊界類之間的虛箭頭,表示的是箭頭,表示的是“新書錄入新書錄入”窗口是按下窗口是按下“新增圖書信息新增圖書信息”按鈕時才顯示出來的,并不是表示兩個邊界類之間的交互。按鈕時才顯示出來的,并不是表示兩個邊界類之間的交互。也就是說,這樣畫并沒有違反規(guī)則。也就是說,這樣畫并沒有違反規(guī)則。2 引入控制類及實體類引入控制類及實體類根據(jù)表根據(jù)表3.1中事件流步驟中事件流步驟5以及擴展路徑的描述,我們就可以以及擴展路徑的描述,我們就可以在圖在圖3.5中添加相應(yīng)的控制

36、類,得到包括控制類在內(nèi)的進一中添加相應(yīng)的控制類,得到包括控制類在內(nèi)的進一步的健壯性分析圖如圖步的健壯性分析圖如圖3.6所示。所示。再考慮表再考慮表3.1中事件流步驟中事件流步驟2、步驟、步驟3的內(nèi)容,即根據(jù)所選的的內(nèi)容,即根據(jù)所選的書籍類別,自動按規(guī)則生成書號,并把書號作為創(chuàng)建書籍的書籍類別,自動按規(guī)則生成書號,并把書號作為創(chuàng)建書籍的相關(guān)信息,把這些信息添加進圖相關(guān)信息,把這些信息添加進圖3.6中,就得到了最后的健中,就得到了最后的健壯性分析圖如圖壯性分析圖如圖3.7所示。所示。25第第3 3章章 系統(tǒng)健壯性分析系統(tǒng)健壯性分析圖書管理員圖書管理員主窗口主窗口“新增圖書信息新增圖書信息”按鈕按鈕

37、“新書錄入新書錄入”窗口窗口“書籍類別書籍類別”列表框列表框“提交提交”按鈕按鈕書名重復(fù)性檢查書名重復(fù)性檢查書籍列表書籍列表加入書籍列表加入書籍列表創(chuàng)建書籍創(chuàng)建書籍書籍書籍圖圖3.6 加入控制類和實體類的初步健壯性分析圖加入控制類和實體類的初步健壯性分析圖在圖在圖3.6中,我們所表達中,我們所表達的是:當(dāng)按下的是:當(dāng)按下“提交提交”按鈕后,就將進行書名按鈕后,就將進行書名的重復(fù)性檢查,檢查的的重復(fù)性檢查,檢查的依據(jù)是書籍列表,如果依據(jù)是書籍列表,如果重名則回到重名則回到“新書錄入新書錄入”窗口重新輸入,如果不窗口重新輸入,如果不重名就創(chuàng)建新的書籍,重名就創(chuàng)建新的書籍,并加入書籍列表。并加入書籍

38、列表。26第第3 3章章 系統(tǒng)健壯性分析系統(tǒng)健壯性分析圖書管理員圖書管理員主窗口主窗口“新增圖書信息新增圖書信息”按鈕按鈕“新書錄入新書錄入”窗口窗口“書籍類別書籍類別”列表框列表框“提交提交”按鈕按鈕書名重復(fù)性檢查書名重復(fù)性檢查書籍列表書籍列表加入書籍列表加入書籍列表創(chuàng)建書籍創(chuàng)建書籍書籍書籍獲得類別獲得類別生成書號生成書號書號規(guī)則書號規(guī)則圖圖3.7 最后的健壯性分析圖最后的健壯性分析圖27第第3 3章章 系統(tǒng)健壯性分析系統(tǒng)健壯性分析通過仔細(xì)分析,并把分析結(jié)果繪制成健壯性分析圖,將有通過仔細(xì)分析,并把分析結(jié)果繪制成健壯性分析圖,將有助于開發(fā)人員更加深入的了解系統(tǒng)細(xì)節(jié)。與此同時找到了助于開發(fā)人員

39、更加深入的了解系統(tǒng)細(xì)節(jié)。與此同時找到了邊界類(系統(tǒng)的各種界面信息)和控制類(系統(tǒng)的關(guān)鍵業(yè)邊界類(系統(tǒng)的各種界面信息)和控制類(系統(tǒng)的關(guān)鍵業(yè)務(wù)邏輯)。務(wù)邏輯)。健壯性分析也不一定是一個獨立的分析階段,我們可以在健壯性分析也不一定是一個獨立的分析階段,我們可以在編寫用例描述的同時,結(jié)合健壯性分析來啟發(fā)思路,完善編寫用例描述的同時,結(jié)合健壯性分析來啟發(fā)思路,完善細(xì)節(jié)。細(xì)節(jié)。3.3 完善概念模型完善概念模型健壯性分析圖的繪制過程,是對用例描述的正確性和完整性健壯性分析圖的繪制過程,是對用例描述的正確性和完整性進行檢查的過程,也是不斷發(fā)現(xiàn)新的類或修正先前發(fā)現(xiàn)的類進行檢查的過程,也是不斷發(fā)現(xiàn)新的類或修正先

40、前發(fā)現(xiàn)的類的過程。因此,它在細(xì)化用例描述的同時,也包含了對我們的過程。因此,它在細(xì)化用例描述的同時,也包含了對我們在前面的工作中已經(jīng)完成的靜態(tài)模型(問題域概念模型)的在前面的工作中已經(jīng)完成的靜態(tài)模型(問題域概念模型)的不斷細(xì)化(設(shè)計完成后的類模型也屬于靜態(tài)模型的范疇)。不斷細(xì)化(設(shè)計完成后的類模型也屬于靜態(tài)模型的范疇)。28因此,在繪制完健壯性分析圖之后,我們還必須回頭修改因此,在繪制完健壯性分析圖之后,我們還必須回頭修改問題域概念模型,把新發(fā)現(xiàn)的類、屬性等加進去。在圖問題域概念模型,把新發(fā)現(xiàn)的類、屬性等加進去。在圖3.7中的書號規(guī)則就是一個新的實體類,是我們在問題域建模中的書號規(guī)則就是一個新的實體類,是我們在問題域建模中所遺漏的類,必須把它加進問題域概念模型中。中所遺漏的類,必須把它加進問題域概念模型中。另外,我們通過仔細(xì)分析用例描述,還發(fā)現(xiàn)了另一個細(xì)節(jié):另外,我們通過仔細(xì)分析用例描述,還發(fā)現(xiàn)了另一個細(xì)節(jié):書

溫馨提示

  • 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論