面向?qū)ο蠓治鯻第1頁(yè)
面向?qū)ο蠓治鯻第2頁(yè)
面向?qū)ο蠓治鯻第3頁(yè)
面向?qū)ο蠓治鯻第4頁(yè)
面向?qū)ο蠓治鯻第5頁(yè)
已閱讀5頁(yè),還剩71頁(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、1第第8章章 面向?qū)ο蠓治雒嫦驅(qū)ο蠓治?領(lǐng)域分析 使用實(shí)例的需求獲取 用類進(jìn)行建模 對(duì)象-行為模型 RUP分析活動(dòng) OO分析小結(jié)28.1 領(lǐng)域分析領(lǐng)域分析 1、領(lǐng)域分析的概念、領(lǐng)域分析的概念 面向?qū)ο蟮南到y(tǒng)分析可以發(fā)生在許多不同的抽象層次。在業(yè)務(wù)或企業(yè)級(jí)層次,可定義模擬整個(gè)業(yè)務(wù)的類、對(duì)象、關(guān)系和行為。在業(yè)務(wù)域?qū)哟?,可定義描述某特殊的業(yè)務(wù)域的工作的對(duì)象模型和行為模型;在應(yīng)用層次,建模著重于特定的用戶需求。 Firesmith對(duì)軟件領(lǐng)域分析的定義是:領(lǐng)域分析(Domain Analysis)指特定應(yīng)用領(lǐng)域中公共需求的標(biāo)識(shí)、分析和規(guī)約,即發(fā)現(xiàn)或創(chuàng)建那些可廣泛應(yīng)用的類,其目的目的使它們?cè)趹?yīng)用域中多個(gè)項(xiàng)

2、目間能被復(fù)用在應(yīng)用域中多個(gè)項(xiàng)目間能被復(fù)用。領(lǐng)域分析的角色是設(shè)計(jì)和建造可復(fù)用構(gòu)件(類似于制造環(huán)境中工具制造者的角色),它們被很多相似但不一定是相同的應(yīng)用開(kāi)發(fā)的人所使用。 3 Lethbridge的定義是:領(lǐng)域分析是軟件工程師了了解背景信息的過(guò)程解背景信息的過(guò)程。為了理解問(wèn)題并在需求分析和軟件工程過(guò)程的其他階段作出合理的決策,軟件工程師必須了解使用該類軟件的一般性商業(yè)和技術(shù)領(lǐng)域中足夠的信息。2、領(lǐng)域分析過(guò)程的活動(dòng)、領(lǐng)域分析過(guò)程的活動(dòng) (1)定義將被調(diào)查的領(lǐng)域 分離感興趣的業(yè)務(wù)域、系統(tǒng)類型或產(chǎn)品范疇,抽取OO和非OO的“項(xiàng)”。OO項(xiàng)包括:現(xiàn)存OO應(yīng)用的類的規(guī)約、設(shè)計(jì)和代碼,支持類(如GUI類或數(shù)據(jù)庫(kù)

3、訪問(wèn)類),和領(lǐng)域相關(guān)的構(gòu)件庫(kù)以及測(cè)試案例。非OO項(xiàng)包括:政策、規(guī)程、計(jì)劃、標(biāo)準(zhǔn),非OO應(yīng)用文檔和構(gòu)件。4 (2)對(duì)從領(lǐng)域中抽取出來(lái)的項(xiàng)進(jìn)行分類并建立分類層次。 (3)收集領(lǐng)域中應(yīng)用的代表性樣本。 (4)分析樣本中的每個(gè)應(yīng)用 標(biāo)識(shí)候選的每個(gè)可復(fù)用對(duì)象。 指明對(duì)象被標(biāo)識(shí)為可復(fù)用的理由。 定義對(duì)象的適應(yīng)性。 估算在領(lǐng)域中復(fù)用這些對(duì)象的應(yīng)用的百分率。 使用配置管理技術(shù)控制這些對(duì)象。 (5)為對(duì)象開(kāi)發(fā)分析模型。5 3、領(lǐng)域分析的價(jià)值、領(lǐng)域分析的價(jià)值 領(lǐng)域分析除了為軟件復(fù)用奠定基礎(chǔ)外,還為較低抽象層次的一般的面向?qū)ο蠓治鰩?lái)如下好處: 快速開(kāi)發(fā)。有助于集中精力關(guān)注最重要的問(wèn)題,更有效地與相關(guān)人員進(jìn)行交流,

4、可以更快的確定需求。 優(yōu)化系統(tǒng)。了解領(lǐng)域的細(xì)節(jié)有助于保證所采納的解決方案更有效地解決用戶的問(wèn)題。會(huì)少犯錯(cuò)誤,知道應(yīng)該遵循那些規(guī)程和標(biāo)準(zhǔn)。領(lǐng)域分析給出一個(gè)應(yīng)用領(lǐng)域的總體視圖,會(huì)引導(dǎo)出更好的抽象從而改進(jìn)設(shè)計(jì)。 有了領(lǐng)域知識(shí),就可以洞察新興趨勢(shì)及進(jìn)一步開(kāi)發(fā)的機(jī)會(huì),有助于創(chuàng)建適應(yīng)性更強(qiáng)的系統(tǒng)。 了解通用性和特殊性,有助于創(chuàng)建出具有更好的可重用性和更寬的銷售市場(chǎng)的軟件。 6 專家提出,沒(méi)有堅(jiān)實(shí)的領(lǐng)域分析,任何重大的軟件項(xiàng)目都不應(yīng)該進(jìn)行。對(duì)應(yīng)用領(lǐng)域的深入理解能極大的提高成功的幾率。許多非常成功的軟件產(chǎn)品的開(kāi)發(fā)人員以前都在業(yè)務(wù)領(lǐng)域工作過(guò)段時(shí)間,對(duì)實(shí)際需要有著深切的感受。 一旦對(duì)領(lǐng)域有了真正的理解,就可進(jìn)行某

5、一個(gè)項(xiàng)目(或產(chǎn)品)的需求分析,包括定義待解決的問(wèn)題以及開(kāi)發(fā)什么軟件來(lái)解決它。然而,領(lǐng)域分析永遠(yuǎn)也不應(yīng)該結(jié)束:開(kāi)發(fā)人員有責(zé)任在開(kāi)發(fā)過(guò)程中不斷增進(jìn)他們的理解,后續(xù)版本的系統(tǒng)擴(kuò)充通常需要對(duì)子領(lǐng)域進(jìn)行進(jìn)一步的領(lǐng)域分析。78.2 使用實(shí)例的需求獲取使用實(shí)例的需求獲取 面向?qū)ο蟮姆治鲞^(guò)程并不從考慮對(duì)象開(kāi)始,而是從對(duì)系統(tǒng)將被使用的方式的理解開(kāi)始。如果系統(tǒng)是人機(jī)交互的,則考慮被人使用的方式;如果系統(tǒng)是涉及過(guò)程控制的,則考慮被機(jī)器使用的方式;如果系統(tǒng)是協(xié)調(diào)和控制應(yīng)用的,則考慮被其他系統(tǒng)使用的方式。一旦使用的場(chǎng)景(scenario) 被定義,軟件的建模活動(dòng)就開(kāi)始了。 1、use-case(用例或使用實(shí)例)(用例或

6、使用實(shí)例) 在OOA中,用例是分析模型的第一個(gè)元素的基礎(chǔ),以終端用戶的觀點(diǎn)對(duì)系統(tǒng)建模。 用例在需求獲取時(shí)創(chuàng)建,應(yīng)達(dá)到下列目標(biāo)目標(biāo): 通過(guò)定義由終端用戶和開(kāi)發(fā)人員共同認(rèn)可的使用場(chǎng)景,定義系統(tǒng)的功能和運(yùn)行需求。 場(chǎng)景是用例的一個(gè)實(shí)例,表達(dá)用例的一個(gè)特定發(fā)生,在特定的時(shí)間,使用特定的數(shù)據(jù)進(jìn)行操作 。8 提供清楚的、無(wú)二義性的終端用戶和系統(tǒng)如何相互交 互的描述。 提供確認(rèn)測(cè)試的基礎(chǔ)。 用例的描述以及用例圖構(gòu)成了參與者與系統(tǒng)交互的用 例模型(1)用例的描述 建議:其中只有名稱和步驟是必須的。 名稱(name) 參與者(actor) 目標(biāo)(goal) : 參與者要完成的任務(wù)。 前置條件(precondit

7、ion): 列出參與者啟動(dòng)用例前所有必需為真的條件。 相關(guān)用例(related use cases): 列出可能是此用例的擴(kuò)展、包含的用例。9 步驟(step): 用兩列的格式描述用例的每一步(見(jiàn)例)。 后置條件(postcondition): 用例完成后系統(tǒng)所處的狀態(tài)。 例1:描述應(yīng)用程序中打開(kāi)文件的用例 用例用例:打開(kāi)文件 步驟步驟: 參與者動(dòng)作 系統(tǒng)響應(yīng) 選擇“打開(kāi)”命令 顯示“打開(kāi)文件”對(duì)話框 指定文件名 確認(rèn)選擇 關(guān)閉對(duì)話框10 例例2、圖書(shū)管理系統(tǒng)借書(shū)、圖書(shū)管理系統(tǒng)借書(shū) 用例用例 用例用例:為借閱者借出一本書(shū) 參與者參與者:借書(shū)員 目標(biāo)目標(biāo):幫助借閱者借閱書(shū)籍并確保輸出正確的借出記

8、錄 前置條件前置條件:借閱者必須有一張有效的借書(shū)卡并且沒(méi)有欠費(fèi); 該書(shū)藉必須具有有效的條形碼并且不是來(lái)自于 參考文獻(xiàn)區(qū)。 步驟步驟: 參與者動(dòng)作 系統(tǒng)響應(yīng) 掃描書(shū)籍和借書(shū)卡 顯示允許借閱的信息 在書(shū)籍上標(biāo)記到期日期 確認(rèn)借出開(kāi)始 顯示借出已被記錄的確 認(rèn)的信息 后置條件后置條件:系統(tǒng)有一個(gè)該書(shū)藉被借出以及到期時(shí)間的記錄 11例3、某商店P(guān)OS系統(tǒng)用例描述實(shí)例用例: 購(gòu)買商品參與者:顧客(發(fā)起者)、收款員類型: 主要的描述: 顧客帶著所要購(gòu)買商品到付款處,收款 員記錄商品信息并收款。用例: 啟動(dòng)/關(guān)閉系統(tǒng)參與者:管理員類型: 主要的描述: 管理員接通一臺(tái)POS機(jī)電源,檢查時(shí) 間、日期正確性,檢查

9、完成后,系統(tǒng)處 于就緒 狀態(tài),以備收款員使用。12(2)用例圖 用來(lái)顯示一系列用例和參與者之間的關(guān)系,有助于開(kāi)發(fā)人員表達(dá)系統(tǒng)功能的不同的抽象層次的描述。房主房主傳感器傳感器SafeHome高層用例圖13啟動(dòng)啟動(dòng)/ /關(guān)閉系統(tǒng)關(guān)閉系統(tǒng)房主房主輸入密碼輸入密碼詢問(wèn)區(qū)域狀態(tài)詢問(wèn)區(qū)域狀態(tài)SafeHome交互用例圖詢問(wèn)傳感器狀態(tài)詢問(wèn)傳感器狀態(tài) 按緊急按鈕按緊急按鈕驗(yàn)證密碼驗(yàn)證密碼詢問(wèn)傳感器詢問(wèn)傳感器includeincludeinclude(參考教材1 P415)14 用例分析是理解和組織系統(tǒng)應(yīng)完成任務(wù)的直觀方法。它還可以用來(lái)驅(qū)動(dòng)開(kāi)發(fā)過(guò)程驅(qū)動(dòng)開(kāi)發(fā)過(guò)程。特別是,用例: 可以幫助定義系統(tǒng)的范圍,即必須做什么

10、和不必做什么。 可用來(lái)計(jì)劃開(kāi)發(fā)過(guò)程。確定的用例數(shù)量決定了項(xiàng)目的大 小,開(kāi)發(fā)進(jìn)度可用完成的用例數(shù)量來(lái)測(cè)量。 用來(lái)開(kāi)發(fā)和確認(rèn)需求。 構(gòu)成測(cè)試用例定義的基礎(chǔ)。 可用來(lái)構(gòu)造用戶手冊(cè)。 但是用例也不是萬(wàn)能的!注意:(Lethbridge的觀點(diǎn)) 用例必須經(jīng)確認(rèn)。用例集應(yīng)是完全的、表達(dá)是一致的和 明確的。 用例分析不一定覆蓋到功能需求的所有方面。如,不被 參與者觸發(fā)的活動(dòng)不會(huì)出現(xiàn)在用例中。 當(dāng)軟件需求來(lái)自用例時(shí),軟件往往只是簡(jiǎn)單的反映開(kāi)發(fā) 軟件前用戶的工作方式,可能沒(méi)有考慮到創(chuàng)新的解決方 案。152、獲取需求的主要活動(dòng)、獲取需求的主要活動(dòng) (1)確定參與者和用例 與用戶一起確定與系統(tǒng)有交互活動(dòng)的所有角色,

11、并為每個(gè)角色設(shè)計(jì)用例。確定用例的準(zhǔn)則: 每個(gè)用例都應(yīng)該為其角色提供有價(jià)值的服務(wù)避免確定的用例太??;確保每個(gè)用例都向主要角色提供有價(jià)值的服務(wù)避免用例太大。 (2)定義用例的優(yōu)先級(jí) (3)描述每個(gè)用例 用例描述可有不同的抽象層次與描述模板。概要描述主要強(qiáng)調(diào)每個(gè)用例的主要功能。詳細(xì)描述包括每個(gè)用例的事件流(如何開(kāi)始,與角色如何交互,如何終止)、每個(gè)用例中所涉及到的對(duì)象(編入術(shù)語(yǔ)表)、執(zhí)行一個(gè)用例所要求的非功能性需求等。16(4)建立用例圖 用例圖用來(lái)顯示一系列用例和參與者之間的關(guān)系。它有助于表達(dá)系統(tǒng)功能的高層表述。 用例有特化、擴(kuò)展和包含關(guān)系。特化的使用同類圖。一個(gè)特化用例代表了幾個(gè)相似用例,一個(gè)或

12、多個(gè)特化提供了這些相似用例的細(xì)節(jié)。 使用包含關(guān)系減少用例之間的冗余。即 確定用例中可以被共享的功能。檢查每個(gè)用例抽取出公共部分創(chuàng)建單獨(dú)用例。 使用擴(kuò)展關(guān)系區(qū)分事件的例外和事件的共有流程,即確定補(bǔ)充功能或可選功能。如果發(fā)現(xiàn)一個(gè)用例比較復(fù)雜,既包含了一般處理又包含了特殊處理,將特殊處理的部分抽取出來(lái),創(chuàng)建單獨(dú)的用例。17打開(kāi)文件用戶通過(guò)鍵入文件名打開(kāi)文件通過(guò)瀏覽打開(kāi)文件試圖打開(kāi)不存在的文件瀏覽文件extendinclude用例的特化、擴(kuò)展和包含18 (5)建立用戶界面原型 在面向?qū)ο蟮能浖_(kāi)發(fā)中,用例模型和用戶界面設(shè)計(jì)息息相關(guān)。用例模型創(chuàng)建后,就可確定參與者如何驅(qū)動(dòng)用例,以及用例以什么形式向參與者

13、提供信息。因此可開(kāi)始用戶界面原型化的迭代過(guò)程,和構(gòu)造系統(tǒng)的其他部分并行進(jìn)行。198.3 用類進(jìn)行建模用類進(jìn)行建模 面向?qū)ο蠓治觯褪浅槿『驼碛脩粜枨蟛⒔?wèn)題域精確模型的過(guò)程。在需求獲取階段已經(jīng)建立了用例模型等階段產(chǎn)品,但都是為了容易溝通信息,以用戶語(yǔ)言描述的,存在著模糊、冗余、二義性、不一致性等問(wèn)題。 系統(tǒng)分析階段要進(jìn)一步分析、完善前一階段獲取的需求,細(xì)化用例模型中的用例、確定系統(tǒng)中的對(duì)象、對(duì)象的靜態(tài)和動(dòng)態(tài)特征、對(duì)象間的關(guān)系及對(duì)象的行為約束,建立滿足用戶需求的、精確的、穩(wěn)定的、易于維護(hù)的、便于后續(xù)設(shè)計(jì)的分析模型。 20用例圖:視圖功能模型:模型分析模型:模型類圖:視圖對(duì)象模型:模型順序圖:

14、視圖狀態(tài)圖:視圖活動(dòng)圖:視圖動(dòng)態(tài)模型:模型分析模型的構(gòu)成分析模型的構(gòu)成21 幾條通用的分析原則: (1)組裝與分解相結(jié)合的原則 基本對(duì)象可組裝成復(fù)雜對(duì)象,對(duì)復(fù)雜對(duì)象進(jìn)行分解從而完成系統(tǒng)模型的細(xì)化。 (2)抽象化與具體化相結(jié)合的原則 數(shù)據(jù)抽象將數(shù)據(jù)及作用在其上的操作抽象成對(duì)象。過(guò)程抽象為對(duì)象的相互作用提供了依據(jù)。 抽象強(qiáng)調(diào)對(duì)象的本質(zhì)和內(nèi)在屬性,忽視與問(wèn)題無(wú)關(guān)的屬性。而具體化指在細(xì)化過(guò)程中,描述對(duì)象的某些特性,加強(qiáng)系統(tǒng)模型的穩(wěn)定性。 抽象化與具體化相結(jié)合可以使具體對(duì)象直接從抽象對(duì)象的定義中獲得已有特性,而不必重復(fù)定義它們。 22 (3)封裝原則 將對(duì)象的各種獨(dú)立的外部特性與內(nèi)部實(shí)現(xiàn)細(xì)節(jié)分開(kāi)。對(duì)象接

15、口定義要盡可能的與其內(nèi)部工作狀態(tài)相分離。封裝有助于減少由于需求的改變而對(duì)整個(gè)系統(tǒng)所造成的影響。 (4)相關(guān)性原則 在分析中要考慮對(duì)象間的各種關(guān)聯(lián),包括靜態(tài)結(jié)構(gòu)的關(guān)聯(lián)、動(dòng)態(tài)特征的關(guān)聯(lián)。這些關(guān)聯(lián)是對(duì)象協(xié)作的基礎(chǔ)。 (5)行為約束的原則 通過(guò)語(yǔ)義特征來(lái)刻畫(huà)。表示了對(duì)象合法存在、對(duì)象合法操作應(yīng)滿足的條件,有助于深刻理解對(duì)象和系統(tǒng)。 23 一旦建立了系統(tǒng)的用例模型,則可以開(kāi)始標(biāo)識(shí)候選類,并指明它們的責(zé)任和協(xié)作。Wirfs-Brock等人提出了一種類類-責(zé)任責(zé)任-協(xié)作者協(xié)作者(Class-responsibility-collaborator,CRC)開(kāi)發(fā)類圖的卡片技術(shù)。該技術(shù)使用實(shí)際的或虛擬的索引卡片(

16、參考教材P417),為定義類提供較多的信息。其中責(zé)任是與該類相關(guān)的屬性和操作,協(xié)作者是為一個(gè)類提供要完成的責(zé)任所需要的信息的那些類。通常,協(xié)作意味著對(duì)信息的請(qǐng)求或者對(duì)某種操作的請(qǐng)求。 在確定屬性和操作時(shí),可把它們列在卡片上。由于卡片的空間有限,使得每一個(gè)類都不能太復(fù)雜。如果不能在一張卡片上列出所有的職責(zé),該類應(yīng)分成兩個(gè)相關(guān)的類。可在白板上自由移動(dòng)卡片以組成類圖,在卡片之間畫(huà)線表示關(guān)聯(lián)與泛化。低科技的卡片技術(shù)可能比操作軟件用戶界面要快,對(duì)開(kāi)發(fā)人員通過(guò)會(huì)議討論確定方案很有效。 24 1、標(biāo)識(shí)類及對(duì)象、標(biāo)識(shí)類及對(duì)象 無(wú)論是面向?qū)ο蠓治鲞€是面向?qū)ο笤O(shè)計(jì)與實(shí)現(xiàn),建立類圖都是核心技術(shù)。類圖是定義其他圖的基

17、礎(chǔ),在該基礎(chǔ)上用交互圖、狀態(tài)圖等進(jìn)一步描述系統(tǒng)其他方面的特性。 如何識(shí)別對(duì)象?對(duì)象以一系列不同形式展示自身:外部實(shí)體、事物、發(fā)生的事件、角色、組織單位、位置或結(jié)構(gòu)。一種最簡(jiǎn)單的方法是從系統(tǒng)處理說(shuō)明中找出名詞。例如,在SafeHome的需求陳述中,找出相關(guān)的名詞是:用戶、傳感器 、 控制面板、系統(tǒng)(安全系統(tǒng))、 傳感器編號(hào)、 傳感器類型、密碼、 電話號(hào)碼、 傳感器事件、 警報(bào)器 等。 這些候選的對(duì)象是否都可作為在系統(tǒng)中承擔(dān)責(zé)任的有用對(duì)象?要根據(jù)一定原則篩選。見(jiàn)下表:25幾條篩選特征: 例:SafeHome中潛在的對(duì)象及篩選理由 (1)保留的信息 潛在對(duì)象 選取理由 篩選理由 (2)需要的服務(wù) 用

18、戶 角色或外部實(shí)體 不符合1/2 (3)多個(gè)屬性 傳感器 外部實(shí)體 符合1-6 (4)公共屬性 控制面板 外部實(shí)體 符合1-6 (5)公共操作 系統(tǒng)(安全系統(tǒng)) 事物或聚集對(duì)象 符合1-6 (6)基本的需求 傳感器編號(hào) 事物或概念實(shí)體 不符合3 傳感器類型 事物或概念實(shí)體 不符合3 密碼 事物或概念實(shí)體 不符合3 電話號(hào)碼 事物或概念實(shí)體 不符合3 傳感器事件 事件 符合1-6 警報(bào)器 外部實(shí)體 符合1-6 幾乎滿足所有特征的對(duì)象才會(huì)被考慮為分析模型中的合法對(duì)象.26 在RUP中,將對(duì)象分為三種類型: (1) 邊界對(duì)象(或邊界類) 是參與者與系統(tǒng)交互的接口,這些對(duì)象位于系統(tǒng)與外部世界的邊界上,

19、代表如界面窗口、通信接口、打印機(jī)接口、傳感器等的抽象,用于闡明和收集系統(tǒng)的邊界需求,這樣,可把用戶界面或通信接口的變化隔離在一個(gè)或多個(gè)邊界類中。在分析問(wèn)題域時(shí),邊界類仍保持較高的概念層次,說(shuō)明通過(guò)交互所實(shí)現(xiàn)的目標(biāo)就可以了。在設(shè)計(jì)活動(dòng)中(如用戶界面設(shè)計(jì))才根據(jù)參與者操作需求,添加具體的邊界對(duì)象。 (2) 控制對(duì)象(或控制類) 控制用例的流程,表示協(xié)調(diào)、順序、事務(wù)處理以及對(duì)其他對(duì)象的控制(如分派任務(wù)給其他對(duì)象)。主要用來(lái)體現(xiàn)應(yīng)用程序的執(zhí)行邏輯,可以使得變化不影響用戶界面和數(shù)據(jù)庫(kù)中的表。27 (3) 實(shí)體對(duì)象(或?qū)嶓w類) 負(fù)責(zé)保存長(zhǎng)效且持久的信息。實(shí)體類大多數(shù)是直接從業(yè)務(wù)模型或 領(lǐng)域模型中相應(yīng)實(shí)體類

20、得到的。實(shí)體類一般表示為一種邏輯數(shù)據(jù)結(jié)構(gòu)(通常映射為數(shù)據(jù)表格或文件),有助于開(kāi)發(fā)人員理解系統(tǒng)所依賴的信息。實(shí)體對(duì)象不一定都是被動(dòng)的,有時(shí)可能具有與它所表示的信息有關(guān)的復(fù)雜行為。實(shí)體對(duì)象能夠?qū)⒆兓c它們所表示的信息隔離開(kāi)。 在RUP的分析中,三類對(duì)象分別用下圖表示:邊界對(duì)象控制對(duì)象實(shí)體對(duì)象28 2、定義屬性、定義屬性 類的屬性與操作和該類在系統(tǒng)中承擔(dān)的責(zé)任有關(guān)。屬性表示了類的特性,即類必須保持的以完成軟件目標(biāo)的信息。屬性的取值決定了對(duì)象可能的狀態(tài)。 傳感器有類型、編號(hào)、位置、顏色、重量、工作狀態(tài)(關(guān)閉、待機(jī)、監(jiān)控)、采樣頻率、報(bào)警閾值等特性,哪些與系統(tǒng)責(zé)任有關(guān)呢? 定義屬性的一些經(jīng)驗(yàn): 一般常識(shí)

21、; 分析問(wèn)題域,檢查與對(duì)象相聯(lián)系的形容詞或名詞短語(yǔ); 責(zé)任; 保存管理信息; 有些屬性在對(duì)象模型穩(wěn)定之前可暫不考慮。 293、定義操作、定義操作 操作反映對(duì)象的行為并以某種方式修改對(duì)象的屬性。對(duì)象行為可理解為對(duì)象應(yīng)展現(xiàn)的外部服務(wù)的總和。對(duì)象的行為分為三類: 對(duì)象生命周期中的創(chuàng)建、維護(hù)、刪除行為。 計(jì)算行為 監(jiān)控行為 通過(guò)這些行為體現(xiàn)對(duì)象的責(zé)任。對(duì)象以兩種方式完成它們的責(zé)任: 使用它自己的操作去操作自己的屬性, 對(duì)象和其他對(duì)象協(xié)作。 因此對(duì)象的操作可以有以下幾種類型幾種類型: 實(shí)現(xiàn)功能的操作:可追溯到用戶需求。30 管理對(duì)象創(chuàng)建和刪除的操作。在分析階段,這些操作可 暫緩定義。 訪問(wèn)屬性的操作。一

22、個(gè)類的屬性通常是私有的或受保護(hù) 的,只有通過(guò)該類提供的操作來(lái)訪問(wèn)。 輔助一個(gè)類完成其任務(wù)的操作,即協(xié)作操作。 如何定義操作呢? 分析問(wèn)題域:有哪些行為,找有關(guān)動(dòng)詞。 如“傳感器被賦予一個(gè)編號(hào)和類型”。 系統(tǒng)的責(zé)任:找與責(zé)任有關(guān)的對(duì)象,這些對(duì)象為承擔(dān)責(zé)任 應(yīng)提供哪些服務(wù)。 分析類的狀態(tài)轉(zhuǎn)換,引起類狀態(tài)轉(zhuǎn)換的動(dòng)作。 追蹤一個(gè)用例的執(zhí)行路線,如順序圖,通過(guò)對(duì)象間通信發(fā) 現(xiàn)操作。 因此類的有些操作是在對(duì)象-行為模型建立后才補(bǔ)充進(jìn)來(lái)。下圖是傳感器類的較為詳細(xì)的定義及它的STD: 31傳感器類類型;編號(hào);位置;工作狀態(tài);采樣頻率;警報(bào)閾值;初始化;關(guān)閉;監(jiān)視;待機(jī);顯示;振鈴;撥號(hào);關(guān)閉狀態(tài)待機(jī)狀態(tài)監(jiān)視狀

23、態(tài)初始化命令關(guān)閉命令監(jiān)視命令待機(jī)命令關(guān)閉命令超越閾值/激活顯示、振鈴、撥號(hào)傳感器類的STD32 4、定義結(jié)構(gòu)與層次、定義結(jié)構(gòu)與層次 類圖中的類并非孤立存在,類之間有很多關(guān)系。應(yīng)該關(guān)注類模型的結(jié)構(gòu)以及類和子類出現(xiàn)時(shí)產(chǎn)生的類層次。 尋找關(guān)系的具體方法如下: 檢查交互圖,如果一個(gè)類向另一個(gè)類有請(qǐng)求,則它們之間通常有關(guān)聯(lián)關(guān)系。 檢查類的聚合關(guān)系。 檢查類的泛化關(guān)系,尋找相似對(duì)象的不同點(diǎn),抽取不同的部分定義為特殊類(自頂向下),或?qū)⒐残缘牟糠痔嵘秊榛悾ㄗ缘紫蛏希?檢查其他類,發(fā)現(xiàn)不同類中的共同點(diǎn),將共同的部分定義一個(gè)新類。其他類和新類之間的關(guān)系也是泛化關(guān)系。 但關(guān)系太多的類往往對(duì)其他類有更多的要求,

24、較難復(fù)用且維護(hù)的工作量也很大,一旦其他類發(fā)生變化,則對(duì)該類產(chǎn)生影響。33 ( 1)關(guān)聯(lián)關(guān)系 是類之間的連接關(guān)系,可以是雙向的也可以是單向的。兩個(gè)關(guān)聯(lián)之間可以相互發(fā)送消息。 訂單類的屬性放入客戶類中,可以找到客戶的訂單;而客戶類的屬性放入訂單類中,可以找到訂單的客戶。 在一對(duì)多或多對(duì)多的關(guān)聯(lián)中,從重?cái)?shù)為1的對(duì)象中找到它所對(duì)應(yīng)的類的對(duì)象通常是比較困難的。解決的辦法是在關(guān)聯(lián)中加入限定,它可以唯一地識(shí)別重?cái)?shù)為“多”端的對(duì)象,以便快速定位到要查找的對(duì)象。訂單客戶* 屬于 1擁有訂單訂單號(hào)客戶 屬于 34systemsensoralarmsensor event1 檢測(cè) *1 0.*識(shí)別1*激活SafeH

25、ome中幾個(gè)對(duì)象類的關(guān)聯(lián)(參考教材1P423)35 (2)聚合關(guān)系 表示類之間整體與部分的關(guān)系。 標(biāo)識(shí)類的聚合的優(yōu)越性: 清晰的表達(dá)語(yǔ)義并用重?cái)?shù)約束之間的關(guān)系。 簡(jiǎn)化對(duì)象的定義。 支持復(fù)用。如“發(fā)動(dòng)機(jī)類”可以是一個(gè)可復(fù)用構(gòu)件,用于其他系統(tǒng)定義中。 飛機(jī)內(nèi)嵌發(fā)動(dòng)機(jī)和導(dǎo)航儀的屬性內(nèi)嵌發(fā)動(dòng)機(jī)和導(dǎo)航儀的操作飛機(jī)發(fā)動(dòng)機(jī)導(dǎo)航儀36身份人員會(huì)計(jì)師身份經(jīng)理身份穩(wěn)定部分可變部分 在強(qiáng)聚合關(guān)系中,部分依賴于整體,如果整體不存在了,部分會(huì)隨之消失。實(shí)現(xiàn)時(shí)一同刪除。聚合關(guān)系使得類具有了層次結(jié)構(gòu)。 能表示動(dòng)態(tài)變化的對(duì)象特征。不需要經(jīng)常變化的屬性與操作放在整體類,需要?jiǎng)討B(tài)變化的特征放在部分類。37(3)泛化關(guān)系 是一般與

26、特殊關(guān)系。將具有共同特性的元素抽象成一般類,通過(guò)增加其內(nèi)涵生成特殊類。 通常,符合下屬條件之一類的泛化才有存在的價(jià)值: 便于實(shí)現(xiàn)軟件重用。 一般類有兩個(gè)或兩個(gè)以上的特殊類。(消除冗余) 需要用它們創(chuàng)建對(duì)象實(shí)例。 但要避免過(guò)渡泛化,否則會(huì)增加系統(tǒng)的復(fù)雜性。 泛化關(guān)系使得類具有了層次結(jié)構(gòu)。下圖是SafeHome的部分類圖。 38systemcontrol panelsensoralarmentry sensorsmoke sensormotion sensorSafeHome的部分類圖39(4)包 復(fù)雜系統(tǒng)的分析模型可能有數(shù)十個(gè)結(jié)構(gòu)、上百個(gè)類,難以理解與實(shí)現(xiàn)。當(dāng)所有類的某個(gè)子集相互協(xié)作以完成一組內(nèi)

27、聚的責(zé)任(功能)時(shí),劃分為子系統(tǒng)(UML稱為包)。 包確定了整個(gè)系統(tǒng)抽象粒度更大的結(jié)構(gòu)。包圖可產(chǎn)生于類圖之后(將類圖組合成包),或?qū)⒂美墓δ芊峙山o包,再細(xì)化包以產(chǎn)生類圖。 如參考教材1P421中將“控制面板類”的整個(gè)聚合結(jié)構(gòu)劃分成“控制面板包”。下圖是某一教學(xué)管理系統(tǒng)的包圖及包圖的細(xì)化:40MFC類類用戶接口用戶接口出錯(cuò)處理出錯(cuò)處理教學(xué)管理教學(xué)管理數(shù)據(jù)庫(kù)數(shù)據(jù)庫(kù)教學(xué)管理系統(tǒng)的包圖教學(xué)管理系統(tǒng)的包圖41subsystem課程注冊(cè)子系統(tǒng)課程注冊(cè)子系統(tǒng)系統(tǒng)與子系統(tǒng)包圖系統(tǒng)與子系統(tǒng)包圖subsystem成績(jī)管理子系統(tǒng)成績(jī)管理子系統(tǒng) system 教學(xué)管理系統(tǒng)教學(xué)管理系統(tǒng)42選課管理選課管理成績(jī)管理成績(jī)

28、管理人事信息人事信息教學(xué)管理教學(xué)管理課程課程學(xué)生登記學(xué)生登記課程登記課程登記開(kāi)設(shè)課程開(kāi)設(shè)課程選課統(tǒng)計(jì)選課統(tǒng)計(jì)學(xué)生成績(jī)登記學(xué)生成績(jī)登記成績(jī)統(tǒng)計(jì)成績(jī)統(tǒng)計(jì)學(xué)生學(xué)生教師教師身份驗(yàn)證身份驗(yàn)證438.4 對(duì)象對(duì)象-行為模型行為模型 用例中的每個(gè)用例都是通過(guò)若干對(duì)象相互合作實(shí)現(xiàn)的。對(duì)象-行為模型指明一個(gè)系統(tǒng)對(duì)外部事件的激勵(lì)所作出的響應(yīng)。為創(chuàng)建該模型,應(yīng)該完成以下工作: 評(píng)估所有use-case以完全理解系統(tǒng)中的交互順序。 標(biāo)識(shí)驅(qū)動(dòng)交互序列的事件并理解這些事件如何和特定的對(duì)象相關(guān)聯(lián)。 為每個(gè)use-case創(chuàng)建交互圖。 為具有主要?jiǎng)討B(tài)特征的類建立狀態(tài)轉(zhuǎn)換圖。 為描述對(duì)象的工作流同時(shí)便于識(shí)別并發(fā)活動(dòng)建立相應(yīng)的活

29、動(dòng)圖。 評(píng)價(jià)對(duì)象-行為模型以驗(yàn)證精確性和一致性。 44 1、通過(guò)use-case識(shí)別事件,為對(duì)象的交互行為建模 事件是某個(gè)時(shí)刻發(fā)生的事,包括所有來(lái)自或發(fā)往用戶的信息、外部設(shè)備的信號(hào)、輸入、策略、中斷、轉(zhuǎn)換和動(dòng)作。當(dāng)系統(tǒng)與參與者(人、設(shè)備或外部系統(tǒng))交換信息時(shí)則一個(gè)事件發(fā)生。為了方便分析對(duì)象對(duì)外部事件的響應(yīng),有必要建立交互圖(協(xié)作圖、順序圖),用于顯示一個(gè)用例實(shí)現(xiàn)中涉及到的對(duì)象和這些對(duì)象間的消息傳遞情況。 (1)順序圖 下面通過(guò)SafeHome的用例說(shuō)明,識(shí)別出事件,找出與該事件相關(guān)的對(duì)象,并將用例的責(zé)任分派給它們,通過(guò)它們的交互,體現(xiàn)了系統(tǒng)完成一個(gè)用例的整體行為。 45 檢查SafeHome的

30、use-case,帶下劃線的部分指明了事件。(參考教材1P424) 房主觀察控制面板以確定是否系統(tǒng)以準(zhǔn)備好接收輸入。如果系統(tǒng)未準(zhǔn)備好,房主必須物理地關(guān)閉門/窗戶,以便使“準(zhǔn)備好”指示燈亮。 房主使用鍵盤輸入4位密碼,系統(tǒng)將密碼與存儲(chǔ)在配置庫(kù)中的有效密碼比較,如果密碼不正確,控制面板鳴叫一次并復(fù)位等待再次輸入。如果密碼正確,控制面板等待進(jìn)一步的動(dòng)作。 房主選擇鍵入“stay”(僅激活外部的傳感器)或“away”(激活所有的傳感器)以啟動(dòng)系統(tǒng)。 當(dāng)處于激活狀態(tài)時(shí),房主可觀察到一個(gè)紅色指示燈。46 一旦所有事件被標(biāo)識(shí),將它門分配給所涉及的對(duì)象。對(duì)象可以生成事件(如房主生成密碼輸入事件)或識(shí)別發(fā)生在其

31、他地方的事件(如控制面板識(shí)別密碼比較事件的二進(jìn)制結(jié)果)。 下圖是SafeHome的部分順序圖: 房主 控制面板 系統(tǒng)輸入密碼密碼比較密碼正確/不正確不正確啟動(dòng)蜂鳴器蜂鳴器聲響等待下一個(gè)動(dòng)作47房主 控制面板 系統(tǒng)選擇stay/away激活傳感器傳感器被激活請(qǐng)求指示燈亮紅燈亮等待下一個(gè)動(dòng)作 Rumbaugh等人在OMT方法中提出,建立反映系統(tǒng)交互行為的動(dòng)態(tài)模型時(shí),需描述正常交互的腳本和例外的腳本。腳本也稱為場(chǎng)景,是用例的一個(gè)實(shí)例。通過(guò)腳本中的步驟確定事件,比較方便的建立順序圖、協(xié)作圖等視圖。48 如ATM系統(tǒng)示意圖:分行計(jì)算機(jī)分理處計(jì)算機(jī)分理處計(jì)算機(jī)帳戶帳戶ATMATM自動(dòng)出納機(jī)與用戶交互的正常

32、腳本:(1)ATM請(qǐng)求用戶插入卡:用戶插入現(xiàn)金卡。(2)ATM接受卡片并讀出它的卡號(hào)。(3)ATM要求密碼:用戶輸入密碼401230。(4)ATM請(qǐng)求分行確認(rèn)卡號(hào)和密碼:由分理處檢驗(yàn)并 通知ATM。(5)ATM要求用戶選擇事務(wù)類型:用戶選擇取款。49 (6)ATM要求輸入現(xiàn)金數(shù)量:用戶輸入$200。 (7)ATM請(qǐng)求分行處理事務(wù),分行把請(qǐng)求傳給分理處, 確認(rèn)事務(wù)成功。 (8)ATM分發(fā)現(xiàn)金并要求用戶取現(xiàn)金:用戶取現(xiàn)金。 (9)ATM提示用戶是否要繼續(xù):用戶鍵入不繼續(xù)。 (10)ATM打印收據(jù),退出卡,并提示用戶取走它們: 用戶取走收據(jù)和卡。 (11)ATM請(qǐng)求用戶插入卡。(回到初始狀態(tài)) 還可

33、列出用戶與自動(dòng)取款機(jī)交互的例外的腳本。 通過(guò)腳本,比較容易確定用例(如取款用例)中的事件(交互信息)、以及事件的發(fā)送者和接收者(完成該用例所涉及到的對(duì)象)。50 (2)協(xié)作圖 用于快速瀏覽對(duì)象間的相互合作。強(qiáng)調(diào)對(duì)象間的通信,不像順序圖那樣強(qiáng)調(diào)傳遞消息間的時(shí)序性,它用數(shù)字順序標(biāo)號(hào)表示消息的順序。 (3)活動(dòng)圖 用來(lái)描述對(duì)象或構(gòu)件執(zhí)行的工作流。突出的優(yōu)點(diǎn):用來(lái)表示并發(fā)活動(dòng)及活動(dòng)的執(zhí)行者。 在分析階段,活動(dòng)圖用來(lái)描述滿足用例要求所要進(jìn)行的活動(dòng)及之間的約束關(guān)系。(有些專家認(rèn)為用活動(dòng)圖建立用戶業(yè)務(wù)模型比對(duì)象模型更易理解)。 在設(shè)計(jì)階段,活動(dòng)圖可以反映對(duì)象內(nèi)部的工作流程,可由狀態(tài)圖演化過(guò)去,是狀態(tài)圖的一個(gè)

34、實(shí)例。 51 2、為單個(gè)對(duì)象類的重要行為建模 Pressman提出,在OO系統(tǒng)的語(yǔ)境內(nèi),必須考慮兩種不同的狀態(tài)特征: (1)當(dāng)系統(tǒng)完成其功能時(shí)每個(gè)對(duì)象的狀態(tài); (2)當(dāng)系統(tǒng)完成其功能時(shí)從外界觀察到的系統(tǒng)狀態(tài),即系統(tǒng)的整體行為。 類的狀態(tài)圖反映了該類中每個(gè)對(duì)象內(nèi)部的工作,在它的生命周期內(nèi)遇到某個(gè)事件或動(dòng)作使它從一種狀態(tài)轉(zhuǎn)換到另一種狀態(tài)。通過(guò)狀態(tài)圖關(guān)注對(duì)象類應(yīng)負(fù)有的責(zé)任,防止遺漏一些功能,幫助標(biāo)識(shí)對(duì)象類的操作,因此需要對(duì)有重要行為的對(duì)象類建立狀態(tài)圖。 狀態(tài)圖還能為對(duì)象設(shè)計(jì)中建立每個(gè)操作體的內(nèi)部邏輯提供幫助。 52 例如,SafeHome系統(tǒng)中的傳感器類是比較重要的類,觀察它的狀態(tài)特征(詳見(jiàn)3.4例

35、2)對(duì)了解整個(gè)系統(tǒng)的動(dòng)態(tài)行為很有幫助。 ATM系統(tǒng)中,自動(dòng)取款機(jī)的行為特征比較重要。下圖是自動(dòng)取款機(jī)類在正常取款行為下的狀態(tài)轉(zhuǎn)換圖。53 開(kāi)始do:請(qǐng)求插入卡 檢查do:要求密碼 核對(duì)do:確認(rèn)帳戶 選擇do:要求類型 輸數(shù)據(jù)do:要求數(shù)量 事務(wù)do:處理事務(wù) 發(fā)現(xiàn)金do:分發(fā)現(xiàn)金 繼續(xù)否do:詢問(wèn)繼續(xù)否 結(jié)束do:打印收據(jù) 退卡do:請(qǐng)求取卡插入卡輸入密碼密碼錯(cuò)帳戶正確輸入類型輸入數(shù)量事務(wù)成功取現(xiàn)金繼續(xù)終止打印指令發(fā)出取走卡ATM類的部分類的部分STD54范例:移動(dòng)電話系統(tǒng)范例:移動(dòng)電話系統(tǒng) 功能:功能: 用手機(jī)做移動(dòng)通訊用手機(jī)做移動(dòng)通訊 下載鈴聲下載鈴聲 下載圖片下載圖片 管理電話簿。管理

36、電話簿。55Talk to OthersTalk to OthersDownload PictureDownload PictureManage PhonebookManage PhonebookDownload RingsDownload RingsMobile userMobile userMobile NetworkMobile Network56定義移動(dòng)電話系統(tǒng)的對(duì)象(簡(jiǎn)化)定義移動(dòng)電話系統(tǒng)的對(duì)象(簡(jiǎn)化) 手機(jī)包括的對(duì)象:手機(jī)包括的對(duì)象: 手機(jī)屏幕手機(jī)屏幕 手機(jī)按鈕手機(jī)按鈕 手機(jī)(屏幕、按鈕以外的部件)手機(jī)(屏幕、按鈕以外的部件) 其它對(duì)象:其它對(duì)象: 基站基站MButtonMDisp

37、lqyMmobileStationMmobileHandset移動(dòng)電話系統(tǒng)的類圖移動(dòng)電話系統(tǒng)的類圖57 移動(dòng)電話系統(tǒng)對(duì)象間的通信移動(dòng)電話系統(tǒng)對(duì)象間的通信 :MButton:MDisplqy:MMobileStation :MMobileHandsetMobile user1:pushDigButton()3:pushSendButton()2:displayButtonNumber()4:connectStation()6:connectSuccess ()5:createConnection()移動(dòng)電話系統(tǒng)移動(dòng)電話系統(tǒng)的協(xié)作圖的協(xié)作圖7:displayConnectSuccess()58 移

38、動(dòng)電話系統(tǒng)的順序圖移動(dòng)電話系統(tǒng)的順序圖 :MButton:MDisplqyMobile userpushSendButton()displayButtonNumber()displayConnectSuccess()connectSuccess ()createConnection()pushDigButton()connectStation():MMobileStation :MMobileHandset59MButtonMDisplqyMmobileStationMmobileHandsetpushDigButton()pushSendButton()pushDisconnectButto

39、n()createConnection()cancelConnection ()responseError()displayError()displayButtonNumber()displayConnectSuccess()displayIncomingCall()connectStation()disconnectStation()connectSuccess ()Disconnectsuccess()移動(dòng)電話系統(tǒng)的類圖之二移動(dòng)電話系統(tǒng)的類圖之二(接口)(接口)608.5 RUP的分析活動(dòng)的分析活動(dòng) 在統(tǒng)一過(guò)程中,用工作流來(lái)描述過(guò)程。工作人員執(zhí)行工作流中的一組活動(dòng)而產(chǎn)生相應(yīng)的工作產(chǎn)品。 有

40、7種過(guò)程工作流,它們是業(yè)務(wù)建模、需求、分析、設(shè)計(jì)、實(shí)現(xiàn)、測(cè)試和實(shí)施。其中需求、分析、設(shè)計(jì)、實(shí)現(xiàn)和測(cè)試是核心工作流。 需求工作流:列舉出候選需求,捕獲功能性需求, 捕獲非功能性需求。 分析工作流:構(gòu)架分析,分析用例,分析類,分析包。 設(shè)計(jì)工作流:構(gòu)架設(shè)計(jì),設(shè)計(jì)一個(gè)用例,設(shè)計(jì)一個(gè)類, 設(shè)計(jì)一個(gè)子系統(tǒng)。 實(shí)現(xiàn)工作流:構(gòu)架實(shí)現(xiàn),系統(tǒng)集成,實(shí)現(xiàn)一個(gè)子系統(tǒng), 實(shí)現(xiàn)一個(gè)類,執(zhí)行單元測(cè)試。 測(cè)試工作流:制定測(cè)試計(jì)劃,設(shè)計(jì)測(cè)試,實(shí)現(xiàn)測(cè)試, 執(zhí)行集成測(cè)試,執(zhí)行系統(tǒng)測(cè)試,評(píng)估測(cè)試。 實(shí)施工作流:可交付系統(tǒng)的配置。 61 分析工作流的任務(wù)是通過(guò)精化和組織需求捕獲階段所描述的需求來(lái)對(duì)其進(jìn)行分析,工作結(jié)果是分析模型。下表

41、列出了用例模型和分析模型的簡(jiǎn)單比較: 用例模型 分析模型 使用用戶的語(yǔ)言進(jìn)行描述; 使用開(kāi)發(fā)人員的語(yǔ)言進(jìn)行描述; 系統(tǒng)的外部視圖; 系統(tǒng)的內(nèi)部試圖; 通過(guò)用例來(lái)構(gòu)造,提供外部 通過(guò)類、包來(lái)構(gòu)造,提供內(nèi)部視圖 視圖的結(jié)構(gòu); 的結(jié)構(gòu) ; 主要用于用戶和開(kāi)發(fā)人員簽 主要為開(kāi)發(fā)人員使用,以理解如何 署合同時(shí)明確系統(tǒng)應(yīng)該做什么; 設(shè)計(jì)和實(shí)現(xiàn)系統(tǒng); 需求中可能存在冗余和不一致; 不應(yīng)該存在冗余和不一致等問(wèn)題; 捕獲系統(tǒng)的功能; 概述如何實(shí)現(xiàn)系統(tǒng)的功能; 定義在分析階段中進(jìn)一步進(jìn)行 定義用例實(shí)現(xiàn),每個(gè)實(shí)現(xiàn)代表對(duì) 分析的用例 ; 用例模型中一個(gè)用例的分析;621、分析活動(dòng)、分析活動(dòng) (1)構(gòu)架分析)構(gòu)架分析

42、確定系統(tǒng)的總體框架結(jié)構(gòu)。 以業(yè)務(wù)模型和用例模型為基礎(chǔ),確定分析包。 一個(gè)大的系統(tǒng)包含有許多功能,通過(guò)分析業(yè)務(wù)模型、用例模型,將系統(tǒng)功能組織成大小適中的包。劃分包的原則是將與一個(gè)業(yè)務(wù)過(guò)程相關(guān)的所有用例及其有擴(kuò)展關(guān)系、包含關(guān)系的用例都放在一個(gè)包中。 好處: 便于實(shí)現(xiàn)和管理; 將變化局限在一個(gè)包內(nèi),減少由于需求變化對(duì)整個(gè)系統(tǒng)結(jié)構(gòu)的影響。 劃分了分析包后,檢查每個(gè)包是否有公共特性 ,提取出組成公共的分析包,便于其他包使用。要定義分析包之間的依賴關(guān)系。63 檢查每個(gè)分析包,如果包中含有一些可共享的、較低層的、可選擇的功能,將它們組織成獨(dú)立的服務(wù)包,便于為不同的系統(tǒng)復(fù)用與選擇。 重要的實(shí)體類對(duì)理解系統(tǒng)結(jié)構(gòu)

43、很有幫助,對(duì)它們進(jìn)行概要說(shuō)明,包括屬性、操作及與其他實(shí)體類的關(guān)聯(lián)。 定義系統(tǒng)級(jí)的公共特殊需求:系統(tǒng)的可靠性、安全性、可用性、可維護(hù)性、容錯(cuò)、分布等非功能性需求。 (2 2)確定用例實(shí)現(xiàn))確定用例實(shí)現(xiàn) 在需求獲取階段是從系統(tǒng)外部來(lái)看系統(tǒng)的功能。功能功能放在用例中描述,功能實(shí)現(xiàn)的過(guò)程功能實(shí)現(xiàn)的過(guò)程用活動(dòng)圖描述,用例中各個(gè)對(duì)象之間、與外部參與者之間發(fā)生的交互關(guān)系交互關(guān)系用協(xié)作圖、順序圖來(lái)反映,一個(gè)對(duì)象一個(gè)對(duì)象跨越多個(gè)用例的完整的行為完整的行為描述用狀態(tài)圖來(lái)反映。但僅有這些還不能滿足系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)的需要,因此,要細(xì)化每個(gè)用例。具體步驟如下: 64 分析用例模型的每個(gè)用例,確定用例實(shí)現(xiàn)的分析類和事件流。

44、分析類代表了類的抽象。將參與用例實(shí)現(xiàn)的分析類收集到類圖中。分析模型中使用了分析類的3種構(gòu)造型(邊界類、控制類、實(shí)體類)。確定分析類注意以下幾點(diǎn): 為以人充當(dāng)?shù)慕巧⒁粋€(gè)主要邊界類(通常實(shí)現(xiàn)為一個(gè)主窗口)。 為每個(gè)外部系統(tǒng)充當(dāng)?shù)慕巧x一個(gè)主要邊界類,使其代表通信接口。 確定一個(gè)控制類負(fù)責(zé)處理用例實(shí)現(xiàn)的控制和協(xié)調(diào)關(guān)系。有時(shí),一些控制信息是由參與者在與系統(tǒng)交互時(shí)處理的,這種情況下可將控制封裝在邊界對(duì)象中。 仔細(xì)研究用例說(shuō)明和已有的業(yè)務(wù)模型確定實(shí)體類。 考慮每個(gè)用例實(shí)現(xiàn)所涉及到的信息,將它們分配到3類對(duì)象中。65 描述每個(gè)對(duì)象之間的交互。 描述每個(gè)用例實(shí)現(xiàn)的特殊需求。 用例實(shí)現(xiàn)是對(duì)用例內(nèi)部比較細(xì)節(jié)

45、的描述,是分析類之間相互協(xié)作的構(gòu)造??赏ㄟ^(guò)用例實(shí)現(xiàn)回溯到用例模型,保持需求獲取和分析之間的無(wú)縫連接。 ( 3)分析每個(gè)類的職責(zé)、屬性和關(guān)聯(lián))分析每個(gè)類的職責(zé)、屬性和關(guān)聯(lián) 確定分析類的職責(zé) 通過(guò)研究一個(gè)分析類在每個(gè)用例實(shí)現(xiàn)中充當(dāng)?shù)慕巧?,將其在各個(gè)用例實(shí)現(xiàn)中的職責(zé)組合在一起,構(gòu)成分析類的職責(zé)。 確定分析類的屬性 注意幾點(diǎn):與人交互的邊界類的屬性通常是參與者錄入的信息項(xiàng)。與外部系統(tǒng)交互的邊界類的屬性表現(xiàn)為通信接口。實(shí)體類的屬性往往作為重要信息被錄入系統(tǒng)。 66 從幾個(gè)分析類中抽取出公共的或可共享的特性,組成新的類。 確定分析類的關(guān)聯(lián)。類之間的關(guān)系盡可能簡(jiǎn)單。 定義分析類的特殊需求。參照用例實(shí)現(xiàn)的特殊

46、需求,避免重復(fù)定義。 (4)檢查分析模型)檢查分析模型 用例實(shí)現(xiàn)、分析類和分析包構(gòu)成了不同層次的分析模型,隋著分析的用例越來(lái)越多,分析模型會(huì)逐步完善起來(lái)。要檢查分析模型中各種成分的準(zhǔn)確性、一致性、完整性。在分析階段的后期要檢查分析包之間的關(guān)系,盡量獨(dú)立且內(nèi)聚性高,每個(gè)包實(shí)現(xiàn)一個(gè)完整的業(yè)務(wù)邏輯。67 2、實(shí)例、實(shí)例 ATM系統(tǒng)的用例模型和分析模型 在ATM系統(tǒng)中,儲(chǔ)戶是參與者,取款、存款和轉(zhuǎn)帳是3個(gè)用例。ATM的用例模型如圖所示。取款存款轉(zhuǎn)帳儲(chǔ)戶68 根據(jù)用例建立分析模型: 現(xiàn)在只考慮“取款”用例。完成取款用例動(dòng)作序列的簡(jiǎn)化路徑是:儲(chǔ)戶表明自己的身份;儲(chǔ)戶選擇從哪個(gè)帳戶取款;確定取款金額;系統(tǒng)從帳戶扣除取款金額;發(fā)給儲(chǔ)戶相應(yīng)金額的現(xiàn)金。 通過(guò)分析取款用例實(shí)現(xiàn)時(shí)的角色,確定所需的分析類包括: 分發(fā)分發(fā)邊界類(指分發(fā)金額)、出納接口出納接口邊界類、 取款取款控制類、 帳戶帳戶實(shí)體類 。邊界類負(fù)責(zé)與用戶進(jìn)行交互并且處理交互的信息;控制類負(fù)責(zé)取款的事務(wù)處理;實(shí)體類負(fù)責(zé)保存和管理帳戶信息。 “取款”用例的分析模型如下圖所示。在圖中還表示了分析模型的“取款”用例實(shí)現(xiàn)跟蹤依賴于用例模型的“取款”用例。69取款存款轉(zhuǎn)帳儲(chǔ)戶取款參與者跟蹤用例模型分析模型分發(fā)出納接口取款帳戶 下圖中

溫馨提示

  • 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)論