Posted on 2010-09-25 14:22
瘋狂 閱讀(3490)
評論(1) 編輯 收藏 所屬分類:
項目管理 、
UML
前些時間參加了潘加宇老師的技術講座,UML建模技術受益匪淺。我也把平時的一些積累和上次的收獲總結在這篇文章中,主要講解用例圖相關的知識。
用例圖是軟件需求分析到最終實現的第一步,它描述用戶如何使用系統及使用系統什么樣的功能。用例圖從業務角度上體現誰來使用系統、用戶希望系統提供什么樣的服務,以及用戶需要為系統提供的服務,也便于軟件開發人員最終實現這些功能。用例圖在開發中被廣泛的應用,但是它最常用來描述系統提供了什么樣的功能給什么樣的用戶使用。
在官方文檔中用例圖包含六個元素,分別是:執行者(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)
一個用例可以被特別列舉為一個或多個用例,這被稱為用例泛化,如果系統中一個或多個用例是某個一般用例的特殊化時,就需要使用用例的泛化關系。
