深入解析UML用例圖用法
UML用例圖是軟件需求分析到最終實現(xiàn)的***步,它描述用戶如何使用系統(tǒng)及使用系統(tǒng)什么樣的功能。UML用例圖從業(yè)務(wù)角度上體現(xiàn)誰來使用系統(tǒng)、用戶希望系統(tǒng)提供什么樣的服務(wù),以及用戶需要為系統(tǒng)提供的服務(wù),也便于軟件開發(fā)人員最終實現(xiàn)這些功能。UML用例圖在開發(fā)中被廣泛的應(yīng)用,但是它最常用來描述系統(tǒng)提供了什么樣的功能給什么樣的用戶使用。
UML用例圖
在官方文檔中UML用例圖包含六個元素,分別是:執(zhí)行者(Actor)、用例(UseCase)、關(guān)聯(lián)關(guān)系(Association)、包含關(guān)系(Include)、擴展關(guān)系(Extend)以及泛化關(guān)系(Generalization)。但是有些UML的繪圖工具多提供了一種直接關(guān)聯(lián)關(guān)系(DirectedAssociation)。
UML用例圖可一個包含注釋和約束,還可一個包含包,用于將模型中的元素組合成更大的模塊。有時,可以將用例的實例引入到圖中。UML用例圖模型如下所示,執(zhí)行者用人形圖標(biāo)來標(biāo)識,用例用橢圓來表示,連線表示它們之間的關(guān)系。
一、執(zhí)行者(Actor)
1、執(zhí)行者概念
是指用戶在系統(tǒng)中扮演的角色。如圖1-1是一個用戶管理的UML用例圖,圖中的用戶、管理員就是用例的執(zhí)行者。
2、從業(yè)務(wù)中找出執(zhí)行者
獲取系統(tǒng)用例首先要找出系統(tǒng)的執(zhí)行者。我們可以通過用戶回答一些問題的答案來識別執(zhí)行者。可以參考以下問題:
誰使用系統(tǒng)的主要功能(主要使用者)?
誰需要系統(tǒng)支持他們?nèi)粘9ぷ鳎?br />
誰來維護、管理系統(tǒng)使其正常工作(輔助使用者)?
系統(tǒng)需要控制哪些硬件?
系統(tǒng)需要其他哪些系統(tǒng)交互?這里包含其他計算機系統(tǒng)或者應(yīng)用程序。
對系統(tǒng)產(chǎn)生結(jié)果感興趣的是哪些人和哪些事物?
3、執(zhí)行者之間關(guān)系
因為執(zhí)行者是類,所以多個執(zhí)行者之間可以具有與類相同的關(guān)系。在UML用例圖中,使用了泛化關(guān)系來描述多個執(zhí)行者之間的公共行為。如果系統(tǒng)中存在幾個執(zhí)行者,它們既扮演自身的角色,同時也扮演更具一般化的角色,那么就用泛化關(guān)系來描述它們。這種情況往往發(fā)生在一般角色的行為在執(zhí)行者超類中描述的場合。特殊化的執(zhí)行者繼承了該超類的行為,然后在某些方面擴展了此行為。執(zhí)行者之間的泛化關(guān)系用一個三角箭頭來表示,指向扮演一般角色的超類。這與UML中類之間的返還關(guān)系符號相同。圖1-2
二、UML用例圖中用例(UseCase)
1、用例概念
用例就是外部可見的系統(tǒng)功能,對系統(tǒng)提供的服務(wù)進行描述。
2、從業(yè)務(wù)中找出用例
找出系統(tǒng)的用例,我們從執(zhí)行者入手,對每個執(zhí)行者提出一些問題,然后從執(zhí)行者對這些問題的答案中獲取用例??梢詤⒖家韵聠栴}:
執(zhí)行者要求系統(tǒng)提供哪些功能(執(zhí)行者需要做什么)?
執(zhí)行者需要讀、產(chǎn)生、修改、刪除或者存儲系統(tǒng)中的信息有哪些類型?
執(zhí)行者必須提醒系統(tǒng)事件有哪些?把這些事件表示成系統(tǒng)用例。
二、UML用例圖中用例之間關(guān)系
1、關(guān)聯(lián)關(guān)系(Association)
關(guān)聯(lián)關(guān)系是連接執(zhí)行者和用例,表示該執(zhí)行者代表的外部系統(tǒng)實體與該用例描述的系統(tǒng)需求有關(guān)。
2、包含關(guān)系(Include)
包含關(guān)系是來自于用例的抽象,即從數(shù)個不同的UseCase中,分離出公共的部分,而成為可以復(fù)用的用例。
3、擴展關(guān)系(Extend)
擴展關(guān)系表示某一個用例的對話流程中,可能會根據(jù)條件臨時插入另外一個用例,而前者稱為基礎(chǔ)用例后者稱為擴展用例。
4、泛化關(guān)系(Generalization)
一個用例可以被特別列舉為一個或多個用例,這被稱為用例泛化,如果系統(tǒng)中一個或多個用例是某個一般用例的特殊化時,就需要使用用例的泛化關(guān)系。
【編輯推薦】
- 解析UML用例圖中include與extend的區(qū)別
- 專家指導(dǎo) 如何畫UML用例圖
- 學(xué)習(xí)筆記 解析UML用例圖元素之間的關(guān)系
- 解析繪制UML用例圖的基本步驟
- UML建模工具Rose與PowerDesigner,兩款建模工具的對比