UML基礎(chǔ)與建模實(shí)踐:6、第六章 用例圖_第1頁(yè)
UML基礎(chǔ)與建模實(shí)踐:6、第六章 用例圖_第2頁(yè)
UML基礎(chǔ)與建模實(shí)踐:6、第六章 用例圖_第3頁(yè)
UML基礎(chǔ)與建模實(shí)踐:6、第六章 用例圖_第4頁(yè)
UML基礎(chǔ)與建模實(shí)踐:6、第六章 用例圖_第5頁(yè)
已閱讀5頁(yè),還剩48頁(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)介

UML基礎(chǔ)與建模實(shí)踐

第六章用例圖

主講人:內(nèi)容摘要什么是用例圖1參與者與用例2參與者之間的關(guān)系3用例之間的關(guān)系4參與者與用例之間的關(guān)系5內(nèi)容摘要組織用例7用例規(guī)格描述8活動(dòng)圖的分類9用例建模要點(diǎn)10小結(jié)與習(xí)題116.1什么是用例圖1.用例圖 用例圖是描述用例、參與者及其關(guān)系的圖。與所有UML的其他圖一樣,用例圖可以包括注釋、約束。2.用例圖的作用3.用例圖的組成元素6.2參與者與用例參與者是系統(tǒng)外部的一個(gè)實(shí)體,它以某種方式與系統(tǒng)交互,請(qǐng)求系統(tǒng)執(zhí)行用例,以獲得參與者需要實(shí)現(xiàn)的目標(biāo)。6.2.1參與者的表示1.參與者的表示參與者有兩種表示方法,如圖6-2所示。圖6-2參與者的兩種表示法2.參與者分類

參與者可能是人、其他系統(tǒng)、硬件設(shè)備、時(shí)鐘。對(duì)參與者有以下兩種分類方法。

(1)按參與者本身的性質(zhì)分

(2)按參與者的重要性分3.參與者和角色6.2.2用例的表示用例是對(duì)一組場(chǎng)景共同行為的描述,場(chǎng)景就是用例的一次完整的、具體的執(zhí)行過(guò)程。6.2.2用例的表示1.場(chǎng)景下面列舉一個(gè)場(chǎng)景例子。 一個(gè)場(chǎng)景就是描述用戶與系統(tǒng)之間的一系列交互活動(dòng),描述了系統(tǒng)一次具體執(zhí)行的行為路徑,即一次完整的事件流。如小劉通過(guò)銀行柜員機(jī)(ATM系統(tǒng))取款3000元的場(chǎng)景,如圖6-3所示。圖6-3小劉取款場(chǎng)景6.2.2用例的表示 圖6-3是小劉取款3000元的場(chǎng)景,我們可以想象,還有小李取款2000元,小陳取款6000元的場(chǎng)景,所有這些取款行為是一樣的。只是輸入的密碼,取款數(shù)量不同,步驟是一樣的。我們對(duì)所有取款場(chǎng)景的共同特征進(jìn)行抽象,就是“取款”用例。用例是對(duì)一組類似場(chǎng)景的共同行為的描述,每個(gè)場(chǎng)景是用例的一次具體執(zhí)行。6.2.2用例的表示2.用例的表示 在UML表示法中,用例用一個(gè)帶標(biāo)簽的橢圓形表示,這個(gè)標(biāo)簽描述了參與者的目標(biāo)。參與者與用例之間用直線表示,直線表示了參與者與用例間的通信。用例可以連接到一個(gè)或者多個(gè)參與者。例如,客戶在與ATM系統(tǒng)的交互過(guò)程中,客戶的目標(biāo)之一是向賬戶中存款。如圖6-4所示給出了存款用例的表示方法。圖6-4客戶、存用例和通信鏈接6.3參與者之間的關(guān)系6.3.1識(shí)別參與者開(kāi)發(fā)者通過(guò)回答下面問(wèn)題來(lái)尋找參與者:(1)系統(tǒng)支持哪些用戶組完成他們的工作?(2)哪些用戶執(zhí)行系統(tǒng)的主要功能?(3)那些用戶執(zhí)行次要功能?比如誰(shuí)維護(hù)或管理?(4)與系統(tǒng)進(jìn)行交互的外部硬件和軟件系統(tǒng)有哪些?6.3.2參與者間的關(guān)系參與者是一種類,因此,可以將參與者之間的關(guān)系進(jìn)行泛化。實(shí)現(xiàn)參與者泛化可以簡(jiǎn)化模型,并使模型更簡(jiǎn)潔。6.3.2參與者間的關(guān)系例如,在軟件系統(tǒng)開(kāi)發(fā)過(guò)程中,系統(tǒng)分析師(子類)和項(xiàng)目經(jīng)理(子類)都屬于系統(tǒng)設(shè)計(jì)師(父類),他們都能承擔(dān)系統(tǒng)設(shè)計(jì)師的工作。用UML圖表示他們之間的關(guān)系,如圖6-6所示。。圖6-6參與者是泛化關(guān)系6.4用例之間的關(guān)系UML有3種用例關(guān)系:<<include>>、<<extend>>和泛化。下面將詳細(xì)討論這3種關(guān)系。6.4.1包含關(guān)系如圖6-7所示,“取款”、“存款”、“查詢余額”3個(gè)用例都要求用戶登錄到ATM系統(tǒng)。為了有效的組織用例,我們可以從上面3個(gè)用例中抽取共同的行為(事件流中1~4步),創(chuàng)建一個(gè)單獨(dú)的名稱為“登錄賬戶”的用例,由這個(gè)用例執(zhí)行公共行為,然后在其他用例中共享這個(gè)用例。圖6-7取款、存款和查詢余額用例6.4.1包含關(guān)系我們把公共行為從3個(gè)用例中抽出,單獨(dú)封裝為“登錄帳戶”用例,這時(shí),原先的3個(gè)用例就分成了4個(gè)用例,如圖6-8所示。圖6-8從3個(gè)用例中提取“登錄帳戶”用例Usecase:存款事件流:1.include(登錄帳戶)。。。Usecase:查詢余額事件流:1.include(登錄帳戶)。。。Usecase:取款事件流:1.include(登錄帳戶)。。。Usecase:登錄帳戶事件流:用戶插入ATM卡系統(tǒng)提示用戶輸入密碼用戶輸入密碼系統(tǒng)驗(yàn)證用戶密碼。。。6.4.1包含關(guān)系包含是指一個(gè)用例調(diào)用另一個(gè)用例,被調(diào)用的用例稱為包含用例,調(diào)用包含用例的用例是基用例。在UML中,用例間的包含關(guān)系用構(gòu)造型《include》表示,它是指在基用例內(nèi)部的某一個(gè)位置上顯式地調(diào)用另一個(gè)用例。在包含用例關(guān)系中,箭頭由基用例指向包含用例。6.4.1包含關(guān)系例如,在ATM系統(tǒng)中,多個(gè)用例都調(diào)用了包含用例“登錄賬戶”,比如“取款”、“存款”和“查詢余額”等用例都調(diào)用了包含用例“登錄賬戶”,如圖6-9所示。圖6-9組織用例6.4.2擴(kuò)展關(guān)系如果兩個(gè)用例相似,其中,A用例由較小的行為集合構(gòu)成,B用例由較大的行為集合構(gòu)成,B用例的行為集合包含了A用例的行為集合,B用例減去A用例的行為集合后,剩余部分在一定條件下才執(zhí)行。這時(shí),我們可以把A用例定義為基用例,把B用例中減去A用例后的剩余部分定義為擴(kuò)展用例。在UML中,用例間的擴(kuò)展關(guān)系用構(gòu)造型《extend》表示(箭頭方向是從擴(kuò)展用例指向基用例),它表示基用例在某個(gè)條件成立時(shí)執(zhí)行擴(kuò)展用例。6.4.2擴(kuò)展關(guān)系例如,ATM系統(tǒng)中,當(dāng)客戶取款時(shí),若取款金額大于正常數(shù)額,這時(shí),ATM系統(tǒng)就會(huì)調(diào)用“超額取款”用例。用UML表示“超額取款”這種可選行為。如圖6-10所示。圖6-10擴(kuò)展關(guān)系6.4.3泛化關(guān)系在UML中,用例的泛化關(guān)系和類圖中的泛化關(guān)系是一樣的。用例的泛化就是指父用例的行為被子用例繼承或覆蓋。6.4.3泛化關(guān)系例如,在ATM系統(tǒng)中,對(duì)于支付賬單用例來(lái)說(shuō)。我們可以定義兩個(gè)子用例,用例“支付賬單”有兩個(gè)子用例“信用卡支付”和“現(xiàn)金支付”。如圖6-12所示。圖6-12泛化關(guān)系6.5參與者與用例之間的關(guān)系參與者與用例之間是關(guān)聯(lián)關(guān)系,表示了參與者與用例間的通信,這里的通訊是雙向的。用一條實(shí)線箭頭表示,由參與者指向用例。6.6組織用例 從用戶的角度看,有的用例就是用戶的最終目標(biāo),我們把能實(shí)現(xiàn)用戶目標(biāo)的用例稱為基本用例;把輔助用戶實(shí)現(xiàn)目標(biāo)的用例稱為抽象用例。總之,基本用例是指那些對(duì)用戶而言有價(jià)值的用例,用戶執(zhí)行基本用例后能直接實(shí)現(xiàn)用戶的目標(biāo);抽象用例包括擴(kuò)展用例和包含用例。 一旦識(shí)別出系統(tǒng)中的一組用例后,我們就對(duì)這組用例進(jìn)行比較,把從一組用例中公共的行為抽取出來(lái)封裝為包含用例;若某些用例比其它用例多出一些行為,我們就把多6.6組織用例出的行為封裝為擴(kuò)展用例。這樣,系統(tǒng)就由一組基本用例、包含用例和擴(kuò)展用例組成。基本用例可以直接由參與者實(shí)例化,他本身可以實(shí)現(xiàn)用戶觀測(cè)到的價(jià)值;包含用例和擴(kuò)展用例由基本用例實(shí)例化。 場(chǎng)景分為普通場(chǎng)景和可選場(chǎng)景。基本用例可以用來(lái)表示普通場(chǎng)景;而一個(gè)擴(kuò)展用例可以展示可選場(chǎng)景。6.6組織用例如圖6-14所示給出了一部分ATM系統(tǒng)的用例模型。“取款”是一個(gè)基本用例,因?yàn)樗怯脩舫晒Φ卿浵到y(tǒng)后的普通場(chǎng)景,它指定交易類型并輸入取款的有效金額。“超額取款”屬于抽象用例(擴(kuò)展用例,該用例是為基本用例服務(wù)的)。圖6-14基本用例中的擴(kuò)展點(diǎn)6.6組織用例參與者可能只直接調(diào)用基本用例,由基本用例對(duì)抽象用例進(jìn)行實(shí)例化(實(shí)例化指執(zhí)行用例的過(guò)程)。抽象用例是從其他用例中提取出來(lái)的部分組成,其中基本用例就像是主程序,抽象用例類似于子程序。6.6組織用例如圖6-15所示,我們將ATM系統(tǒng)分解為基本用例(取款、存款和轉(zhuǎn)賬)和抽象用例(登錄帳戶、超額取款)兩類,三個(gè)基本用例與“登錄帳戶”用例是包含關(guān)系,“取款“用例與“超額取款”用例是擴(kuò)展關(guān)系。客戶實(shí)例化三個(gè)基本用例,由基本用例實(shí)例化2個(gè)抽象用例。圖6-15用關(guān)系組織用例6.7用例規(guī)格描述用例模型顯示了系統(tǒng)能做什么以及誰(shuí)使用系統(tǒng),然而,用例并沒(méi)有描述系統(tǒng)具體執(zhí)行的細(xì)節(jié)。只有用例規(guī)格描述才對(duì)用例的詳細(xì)執(zhí)行流程進(jìn)行了描述。用例規(guī)格描述中的事件流描述了用例執(zhí)行時(shí)的具體流程。6.7.1事件流為了全面描述一個(gè)用例的詳細(xì)流程,用例描述應(yīng)該包括的關(guān)鍵要素是:用例何時(shí)開(kāi)始(前置條件)、何時(shí)結(jié)束(后置條件)、參與者何時(shí)與用例交互、交互了什么信息,以及用例執(zhí)行的基本事件流和擴(kuò)展事件流。6.7.1事件流事件流就是用例執(zhí)行時(shí),由一序列活動(dòng)組成的控制流。事件流分為基本事件流和擴(kuò)展事件流兩種。事件流模型如圖6-16所示。圖6-16事件流模型6.7.2用例模板用例描述有兩種格式:一種是自然語(yǔ)言格式,另一種是表格形式。 表6-1所示就是一個(gè)經(jīng)典的表格形式,其中用斜體字顯示的項(xiàng)目是必須編寫(xiě)的部分。表6-1用例描述模板用例編號(hào)為用例制定一個(gè)唯一的編號(hào),通常格式為UCxx用例名稱應(yīng)為一個(gè)動(dòng)詞短語(yǔ),讓讀者一目了然地知道用例的目標(biāo)用例概述用例的目標(biāo),一個(gè)概要性的描述范圍用例的設(shè)計(jì)范圍主參與者該用例的主參與者(Actor),在此列出名稱,并簡(jiǎn)要地描述它次要參與者該用例的次要參與者(Actor),在此列出名稱,并簡(jiǎn)要地描述它項(xiàng)目相關(guān)人利益說(shuō)明項(xiàng)目相關(guān)人利益項(xiàng)目相關(guān)人員名稱從該用例獲取的利益…………前置條件即啟動(dòng)該用例所應(yīng)該滿足的條件后置條件即該用例完成之后,將執(zhí)行什么動(dòng)作成功保證描述當(dāng)前目標(biāo)完成后,環(huán)境變化情況基本事件流步驟活動(dòng)1在這里寫(xiě)出觸發(fā)事件到目標(biāo)完成以及清除的步驟2……(其中可以包含子事件流,以子事件流編號(hào)來(lái)表示)擴(kuò)展事件流1a1a表示是對(duì)1的擴(kuò)展,其中應(yīng)說(shuō)明條件和活動(dòng)1b……(其中可以包含子事件流,以子事件流編號(hào)來(lái)表示)子事件流對(duì)多次重復(fù)的事件流可以定義為子事件流,這也是抽取被包含用例的地方規(guī)則與約束對(duì)該用例實(shí)現(xiàn)時(shí)需要考慮的業(yè)務(wù)規(guī)則、非功能需求、設(shè)計(jì)約束等6.7.3用例優(yōu)先級(jí) 根據(jù)系統(tǒng)的規(guī)模,應(yīng)該首先開(kāi)發(fā)那些在架構(gòu)上非常重要的用例,其次,開(kāi)發(fā)那些可選的或者重要性相對(duì)較低的用例。下面的因素通常可能會(huì)提高用例的優(yōu)先級(jí)。用例在架構(gòu)上的重要性;使用了未經(jīng)測(cè)試的新技術(shù);需要仔細(xì)研究的問(wèn)題;能夠比較明顯地提高業(yè)務(wù)處理效率(或者收益);支持主要業(yè)務(wù)過(guò)程的用例。

6.7.4用例粒度用例的粒度,就是用來(lái)描述用戶目標(biāo)大小的程度。從大到小可將用例分成3個(gè)層次,即概述級(jí)、用戶目標(biāo)級(jí)和子功能級(jí)。下面以讀者閱讀圖書(shū)為例,說(shuō)明用例的3個(gè)級(jí)別。6.7.4用例粒度1.概述級(jí) 概述級(jí)是指參與者把整個(gè)系統(tǒng)看成一個(gè)用例,如圖6-17所示。圖6-17概述級(jí)6.7.4用例粒度2.用戶目標(biāo)級(jí) 用戶目標(biāo)級(jí)是對(duì)概述級(jí)進(jìn)一步細(xì)化,如圖6-18所示。圖6-18用戶目標(biāo)級(jí)還書(shū)借書(shū)讀者6.7.4用例粒度3.子功能級(jí) 子功能級(jí)是對(duì)用戶目標(biāo)級(jí)用例的進(jìn)一步細(xì)化,如圖6-19所示。圖6-19子功能級(jí)還書(shū)借書(shū)讀者身份驗(yàn)證《include》《include》6.8用例描述實(shí)例用例模板有各種格式。自20世紀(jì)90年代早期以來(lái),使用最為廣泛的格式是alistair.cockburn.us上提供的模板,該模板由AlistairCockburn創(chuàng)建,他是用例建模方法和暢銷書(shū)的作者。6.8用例描述實(shí)例下面的用例描述就是采用這種風(fēng)格 用例UC1:處理銷售范圍:NextGenPOS應(yīng)用級(jí)別:用戶目標(biāo)主要參與者:收銀員涉眾及其關(guān)注點(diǎn):-收銀員:希望能夠準(zhǔn)確、快速地輸入,而且沒(méi)有支付錯(cuò)誤,因?yàn)槿绻偈召J款,將從其薪水中扣除。6.8用例描述實(shí)例-售貨員:希望自動(dòng)更新銷售提成。-顧客:希望以最少代價(jià)完成購(gòu)買活動(dòng)并得到快速服務(wù)。希望便捷、清晰地看到所輸入的商品項(xiàng)目和價(jià)格。希望得到購(gòu)買憑證,以便退貨。-公司:希望準(zhǔn)確地記錄交易,滿足顧客要求.希望確保記錄了支付授權(quán)服務(wù)的支付票據(jù)。希望有一定的容錯(cuò)性,即使在某些服務(wù)器構(gòu)件不可用時(shí)(如遠(yuǎn)程信用卡驗(yàn)證),也能夠完成銷售。希望能夠自動(dòng)、快速地更新帳務(wù)和庫(kù)存信息。6.8用例描述實(shí)例-經(jīng)理:希望能夠快速執(zhí)行超控操作,并易于收銀員的不當(dāng)操作。-政府稅收代理:希望能從每筆交易中抽取稅金。可能存在多級(jí)稅務(wù)代理,比如國(guó)家級(jí)、州級(jí)和縣級(jí)。-支付授權(quán)服務(wù):希望接受到格式和協(xié)議正確的數(shù)字授權(quán)請(qǐng)求。希望準(zhǔn)確計(jì)算對(duì)商店的應(yīng)付款。前置條件:收銀員必須經(jīng)過(guò)確認(rèn)和認(rèn)證。

6.8用例描述實(shí)例后置條件:存儲(chǔ)銷售信息。準(zhǔn)確計(jì)算稅金。更新帳務(wù)和庫(kù)存信息。記錄提成。生成票據(jù)。記錄支付授權(quán)的批準(zhǔn)。基本流程:1、顧客攜帶所購(gòu)商品或服務(wù)到收銀臺(tái)通過(guò)POS機(jī)付款。2、收銀員開(kāi)始一次新的銷售交易。3、收銀員輸入商品條碼。

6.8用例描述實(shí)例4、系統(tǒng)逐條記錄出售的商品,并且顯示該商品的描述、價(jià)格和累積額。價(jià)格通過(guò)一組價(jià)格規(guī)則來(lái)計(jì)算。收銀員重復(fù)3~4步,直到輸入結(jié)束。5、系統(tǒng)顯示總額和所計(jì)算的稅金。6、收銀員告知顧客總額,并請(qǐng)顧客付款。7、顧客付款,系統(tǒng)處理支付。8、系統(tǒng)記錄完整的銷售信息,并將銷售和支付信息發(fā)送到外部的帳務(wù)系統(tǒng)(進(jìn)行帳務(wù)處理和提成)和庫(kù)存系統(tǒng)(更新庫(kù)存)。

6.8用例描述實(shí)例9、系統(tǒng)打印票據(jù)。10、顧客攜帶商品和票據(jù)離開(kāi)(如果有)。擴(kuò)展事件流(下面是部分?jǐn)U展事件流):1a.經(jīng)理在任意時(shí)刻要求進(jìn)行的操作: 1.系統(tǒng)進(jìn)入經(jīng)理授權(quán)模式。2.經(jīng)理或收銀員執(zhí)行某一經(jīng)理模式的操作。例如,變更現(xiàn)金結(jié)余,恢復(fù)其他登錄者中斷的銷售交易,取消銷售交易等。3.系統(tǒng)回到收銀員授權(quán)模式。

6.8用例描述實(shí)例1b.系統(tǒng)在任意時(shí)刻失敗: 為了支持恢復(fù)和更正帳務(wù)處理,要保證所有交易能夠從任何一個(gè)中斷點(diǎn)上完全恢復(fù)。 1、收銀員重啟系統(tǒng)、登錄、請(qǐng)求恢復(fù)上次狀態(tài)。 2、系統(tǒng)重建上次狀態(tài)。2a.客戶或經(jīng)理需要恢復(fù)一個(gè)中斷的銷售交易 1、收銀員執(zhí)行恢復(fù)操作,并且輸入銷售ID,以提取對(duì)應(yīng)的銷售交易。 2、系統(tǒng)顯示被恢復(fù)的銷售交易狀態(tài)及其金額合計(jì)。6.8用例描述實(shí)例3a.未發(fā)現(xiàn)對(duì)應(yīng)的銷售交易。 1、系統(tǒng)向收銀員提示錯(cuò)誤。 2、收銀員可能需要建立一個(gè)新的銷售交易,并重新輸入所有商品。2b.系統(tǒng)內(nèi)不存在該商品ID,但是該商品附有價(jià)簽。 1、收銀員請(qǐng)求經(jīng)理執(zhí)行超級(jí)別操作。 2、經(jīng)理執(zhí)行相應(yīng)的超級(jí)別操作。 3、收銀員選擇手工輸入價(jià)格,輸入商品標(biāo)簽上的價(jià)格,并且請(qǐng)求對(duì)該價(jià)目進(jìn)行標(biāo)準(zhǔn)計(jì)稅。6.8用例描述實(shí)例

溫馨提示

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