UML基礎:用例圖Use Case Diagram(1)


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)編寫用例需求描述,確定用例優先級。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM