用例圖是軟件需求分析到最終實現的第一步,它描述用戶如何使用系統及使用系統什么樣的功能。用例圖從業務角度上體現誰來使用系統、用戶希望系統提供什么樣的服務,以及用戶需要為系統提供的服務,也便于軟件開發人員最終實現這些功能。用例圖在開發中被廣泛的應用,但是它最常用來描述系統提供了什么樣的功能給什么樣的用戶使用。
??????
?
在官方文檔中用例圖包含六個元素,分別是:執行者
(Actor)
、用例
(Use Case)
、關聯關系
(Association)
、包含關系
(Include)
、擴展關系
(Extend)
以及泛化關系
(Generalization)
。但是有些
UML
的繪圖工具多提供了一種直接關聯關系
(DirectedAssociation)
。
???????
?
用例圖可一個包含注釋和約束,還可一個包含包,用于將模型中的元素組合成更大的模塊。有時,可以將用例的實例引入到圖中。用例圖模型如下所示,執行者用人形圖標來標識,用例用橢圓來表示,連線表示它們之間的關系。
?
?
一、執行者(
Actor
)
??????
?
1
、執行者概念
????
是指用戶在系統中扮演的角色。如圖
1-1
是一個用戶管理的用例圖,圖中的用戶、管理員就是用例的執行者。
????????????????????
圖
1-1
?????????2
、從業務中找出執行者
????
獲取系統用例首先要找出系統的執行者。我們可以通過用戶回答一些問題的答案來識別執行者。可以參考以下問題:
-
誰使用系統的主要功能(主要使用者)?
-
誰需要系統支持他們日常工作?
-
誰來維護、管理系統使其正常工作(輔助使用者)?
-
系統需要控制哪些硬件?
-
系統需要其他哪些系統交互?這里包含其他計算機系統或者應用程序。
-
對系統產生結果感興趣的是哪些人和哪些事物?
?????? 3
、執行者之間關系
因為執行者是類,所以多個執行者之間可以具有與類相同的關系。在用例圖中,使用了泛化關系來描述多個執行者之間的公共行為。如果系統中存在幾個執行者,它們既扮演自身的角色,同時也扮演更具一般化的角色,那么就用泛化關系來描述它們。這種情況往往發生在一般角色的行為在執行者超類中描述的場合。特殊化的執行者繼承了該超類的行為,然后在某些方面擴展了此行為。執行者之間的泛化關系用一個三角箭頭來表示,指向扮演一般角色的超類。這與
UML
中類之間的返還關系符號相同。圖1-2
????????????????????
圖1-2
?
二、用例(
Use Case
)
???????? 1
、用例概念
????
用例就是外部可見的系統功能,對系統提供的服務進行描述。
?????????2
、從業務中找出用例
????
找出系統的用例,我們從執行者入手,對每個執行者提出一些問題,然后從執行者對這些問題的答案中獲取用例。可以參考以下問題:
-
執行者要求系統提供哪些功能(執行者需要做什么)?
-
執行者需要讀、產生、修改、刪除或者存儲系統中的信息有哪些類型?
-
執行者必須提醒系統事件有哪些?把這些事件表示成系統用例。
???????? 3
、用例之間關系
二、用例之間關系
????????1
、關聯關系(
Association
)
關聯關系是連接執行者和用例,表示該執行者代表的外部系統實體與該用例描述的系統需求有關。
圖1-3
????????2
、包含關系(
Include
)
包含關系是來自于用例的抽象,即從數個不同的Use Case中,分離出公共的部分,而成為可以復用的用例。
圖
1-4
??????? 3
、擴展關系(
Extend
)
????
擴展關系表示某一個用例的對話流程中,可能會根據條件臨時插入另外一個用例,而前者稱為基礎用例后者稱為擴展用例。
????
????????????????圖1-5
4、泛化關系(
Generalization
)
????
一個用例可以被特別列舉為一個或多個用例,這被稱為用例泛化,如果系統中一個或多個用例是某個一般用例的特殊化時,就需要使用用例的泛化關系。
????
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
