1. 用例圖概述
用例圖(Use Case Diagram):描述“用戶、需求、系統功能單元”之間的關系,是參與者所能觀察和使用到的系統功能模型圖。
用例用於軟件開發過程中的需求分析階段。
確立系統邊界分內外:
(1)外,找參與者,不需要開發,但需考慮建立接口,讓系統內外可以通過接口傳遞信息。
(2)內,找用例,需要考慮開發的部分。
先找出參與者,再從參與者角度去尋找用例。
用例圖 = 參與者(Actor) + 用例(Use Case)+ 關系(Relationship)
2. 參與者(Actor)
3.1 參與者定義
參與者是系統外部的實體,它以某種方式參與用例的執行過程。參與者位於系統邊界之外,不是系統的組成部分。
參與者通過向系統中輸入某些事件來觸發系統的執行,每個參與者可以參與一個或多個用例。
在UML中,參與者使用人形表示,每個參與者都必須有一個名稱且不能重復。參與者名稱推薦使用對象名詞。
參與者一般分為三類:系統用戶、其他系統、可運行的進程。
(1)系統用戶。最直接的參與者,需要使用系統的用戶。
(2)其他系統。在當前系統范圍之外,需要建立與其他系統的接口。
(3)一些可運行的進程。如時間,當經過一定時間段后,發生系統中的某個事件時,時間成為參與者。
3.2 識別參與者
獲取用例之前,首先要確定系統的參與者。
參與者的識別方法:
(1)系統主要功能的使用者;
(2)系統的維護/管理人員;
(3)需要接入的其它設備(如:打印機、掃碼槍等);
(4)需要接入的其它系統;
(5)時間是否會觸發某些事件。
3. 用例(Use Case)
3.1 用例定義
用例是外部可見的系統功能部分,是系統的行為,是參與者在系統中做某件事從開始到結束的一系列活動的集合,以及結束時應該返回的結果,其中可能包含各種分支情況。
每個用例的執行都獨立於其它用例,每個用例都表示一個功能模塊。
在UML中,用例用一個橢圓表示,每個用例都必須有一個名稱且不能重復,用例名稱推薦使用動賓短語(動詞+對象名詞)。
2.2 識別用例
確定用例的方法是從參與者開始,考慮每個參與者是如何使用系統的。
用例的識別方法:
(1)參與者希望系統提供什么功能?
(2)當系統改變狀態時,是否通知參與者?
(3)是否存在什么外部事件發生時需要系統知道的,哪個參與者通知系統這些事件?
(4)是否存在什么外部事件發生時,需要系統自動執行什么操作?
(5)系統是否需要定期執行什么操作?
(6)這個用例是否有多種不同結果?
3. 關系(Relationship)
在UML用例圖中,關系共包括6種:關聯(Association)、直接關聯(DirectedAssociation)、泛化(Generalization)、依賴(Dependency)、包含(Include)和擴展(Extend)。
3.1 參與者之間關系
參與者之間存在的關系:泛化(Generalization)。
參與者之間的泛化關系用來描述多個參與者之間的公共行為。
示例:
3.2 參與者與用例之間關系
參與者與用例之間關系包括:關聯(Association)、直接關聯(DirectedAssociation)。
參與者與用例之間關聯或直接關聯的關系可以為多對多,即一個參與者可以參與多個用例,一個用例可以隸屬多個參與者。
當參與者與用例之間直接關聯時,箭頭由參與者指向用例。
主參與者與次參與者:主參與者是用例的重要服務對象,而次參與者則為協助。
3.3 用例之間關系
用例之間的關系包括:包含(Include)、泛化(Generalization)和擴展(Extend)。
3.3.1 包含關系
包含關系:要完成包含用例,就一定要先執行被包含用例。
在UML中,包含關系用虛線箭頭加<<include>>來表示,箭頭指向被包含的用例。
示例:
3.3.2 泛化關系
用例泛化:一個用例可以被特別列舉為一個或多個子用例。當父用例能夠被使用時,任何子用例也可以被使用。子用例可以從父用例繼承屬性與行為,還可以添加、改變繼承的行為。
在UML中,泛化關系用一個三角箭頭從子用例指向父用例。
示例:
3.3.3 擴展關系
擴展關系是一個用例被定義為基礎用例的增量擴展,通過擴展關系把新的行為插入到已有用例中。擴展關系中,擴展用例是基礎用例的一個相對獨立並且可選的用例。
在UML中,擴展關系用虛線箭頭加<<extend>>表示,箭頭指向基礎用例,即被擴展的用例。
示例:讀者在歸還圖書館借書時,若超過應歸還日期,則需要超期罰款;若未超過歸還日期,則不需要超期罰款。
4. 用例描述
用例名稱 | |
用例編號 | |
用例描述 | 描述用例的作用,包括執行用例的不同類型用戶和通過用例所達到的效果。 |
參與者 | |
用例圖 | |
前置條件 | 用例的必須滿足的條件。置條件是另一個用例已經執行或用戶具體有運行當前用例的權限。並不是每個用例都有前置條件。 |
觸發器 | |
基本事件流 | 從用戶角度描述執行用例的具體步驟 用例的開始、交互、正常流程、結束。 |
擴展事件流 | 用例的分支事件流、錯誤事件流 |
業務規則 | |
后置條件 | 用例執行完后必須為真的條件。並不是每個用例都有后置條件。 |
特殊需求 |
5. 用例建模
用例建模方法如下:
(1)識別參與者
(2)識別用例
(3)整理用例關系
(4)編寫用例需求描述,確定用例優先級。