術(shù)語匯編 UML用例圖解析
在學習UML的過程中,經(jīng)常會遇到UML用例圖方面的問題,這里就和大家分享一下UML用例圖的內(nèi)容,相信通過本節(jié)的介紹你對UML用例圖一定會有深刻的認識。
UML用例圖簡介
用例圖是軟件需求分析到最終實現(xiàn)的第一步,它描述用戶如何使用系統(tǒng)及使用系統(tǒng)什么樣的功能。用例圖從業(yè)務角度上體現(xiàn)誰來使用系統(tǒng)、用戶希望系統(tǒng)提供什么樣的服務,以及用戶需要為系統(tǒng)提供的服務,也便于軟件開發(fā)人員最終實現(xiàn)這些功能。用例圖在開發(fā)中被廣泛的應用,但是它最常用來描述系統(tǒng)提供了什么樣的功能給什么樣的用戶使用。
在官方文檔中用例圖包含六個元素,分別是:執(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用例圖可一個包含注釋和約束,還可一個包含包,用于將模型中的元素組合成更大的模塊。有時,可以將用例的實例引入到圖中。用例圖模型如下所示,執(zhí)行者用人形圖標來標識,用例用橢圓來表示,連線表示它們之間的關(guān)系。
一、執(zhí)行者(Actor)
1、執(zhí)行者概念
是指用戶在系統(tǒng)中扮演的角色。如圖1-1是一個用戶管理的用例圖,圖中的用戶、管理員就是用例的執(zhí)行者。
2、從業(yè)務中找出執(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)或者應用程序。
對系統(tǒng)產(chǎn)生結(jié)果感興趣的是哪些人和哪些事物?
3、執(zhí)行者之間關(guān)系
因為執(zhí)行者是類,所以多個執(zhí)行者之間可以具有與類相同的關(guān)系。在用例圖中,使用了泛化關(guān)系來描述多個執(zhí)行者之間的公共行為。如果系統(tǒng)中存在幾個執(zhí)行者,它們既扮演自身的角色,同時也扮演更具一般化的角色,那么就用泛化關(guān)系來描述它們。這種情況往往發(fā)生在一般角色的行為在執(zhí)行者超類中描述的場合。特殊化的執(zhí)行者繼承了該超類的行為,然后在某些方面擴展了此行為。執(zhí)行者之間的泛化關(guān)系用一個三角箭頭來表示,指向扮演一般角色的超類。這與UML中類之間的返還關(guān)系符號相同。下面我們來看一下UML用例圖中用力的概念。
二、用例(UseCase)
1、用例概念
用例就是外部可見的系統(tǒng)功能,對系統(tǒng)提供的服務進行描述。
2、從業(yè)務中找出用例
找出系統(tǒng)的用例,我們從執(zhí)行者入手,對每個執(zhí)行者提出一些問題,然后從執(zhí)行者對這些問題的答案中獲取用例??梢詤⒖家韵聠栴}:
執(zhí)行者要求系統(tǒng)提供哪些功能(執(zhí)行者需要做什么)?
執(zhí)行者需要讀、產(chǎn)生、修改、刪除或者存儲系統(tǒng)中的信息有哪些類型?
執(zhí)行者必須提醒系統(tǒng)事件有哪些?把這些事件表示成系統(tǒng)用例。
3、用例之間關(guān)系
二、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中,分離出公共的部分,而成為可以復用的用例。
3、擴展關(guān)系(Extend)
擴展關(guān)系表示某一個用例的對話流程中,可能會根據(jù)條件臨時插入另外一個用例,而前者稱為基礎用例后者稱為擴展用例。
4、泛化關(guān)系(Generalization)
一個用例可以被特別列舉為一個或多個用例,這被稱為用例泛化,如果系統(tǒng)中一個或多個用例是某個一般用例的特殊化時,就需要使用用例的泛化關(guān)系。
【編輯推薦】