文章目錄
- 用例圖
- 用例圖的概念
- 用例圖的基本思想
- 用例圖的作用
- 用例圖的構成
-
- 用例圖的構成元素
-
- 參與者
-
- 什麼是參與者?
- 參與者的種類
- 用例
-
- 用例的名稱:
- 用例規約(Use Case Specification)
- 用例圖的關系
-
- 關聯關系
- 包含關系
-
- 使用包含關系的情形
- 擴充關系
-
- 使用擴充用例的情形
- 擴充點
- 泛化關系
-
- 參與者間的泛化關系
- 用例描述和模組化過程
- 用例描述一般包含的方面
-
- 用例名稱
- 辨別符[可選]編号
- 參與者[可選]
- 簡要說明
- 前置條件
- 後置條件
- 擴充點
- 基本事件流(主事件流)
- 其它事件流(擴充事件流,錯誤事件流)
- 用例模組化過程
用例圖
UML中的用例圖的相關知識。
用例圖的概念
用例是一種*描述系統需求的方法,使用用例的方法來描述系統需求的過程就是用例模組化。
用例圖的基本思想
用例圖是從使用者角度來描述系統功能的,隻關心系統所能提供的服務,并不需要了解系統的内部結構和設計細節
用例圖的作用
作為整個系統開發過程中的開發依據,指導和驅動其它模型。用例驅動的軟體開發
用例圖的構成
- 用例圖用于定義系統的功能需求,描述了系統的參與者與系統提供的用例之間的連接配接關系。
用例圖的構成元素
(1)參與者(Actor) (活動者、角色)
(2)用例(Use Case)
(3)關系(Relationship )
(參與者與參與者之間的關系,參與者與用例之間的關系,用例之間的關系)
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLicmbw5yTmVGaWp0LcdTMvwFNw8CXwIDMy8CXt92YugXM4FmLxM3Lc9CX6MHc0RHaiojIsJye.png)
參與者
- 參與者(actor) 是系統外部與系統直接互動的事物,也稱為活動者。
參與者參與用例的執行過程。
- 每個參與者可以參與一個或多個用例,每個用例可以被多個參與者使用。
- 參與者是由參與用例時所擔當的角色來表示。
什麼是參與者?
參與者的特征是其作為外部使用者與系統發生互動。
參與者的種類
(1)與系統直接互動的真實的人
(2) 與系統直接互動的其它系統:與系統進行資訊交換的計算機外部裝置、資料庫系統,其它軟體系統等。
(3)一些可以運作的程序:時間(經過一段時間或到達某一個時間點,觸發系統中某個事件時,時間就是參與者)
用例
用例是外部可見的系統功能單元,是對功能需求的描叙。
用例的名稱:
①簡單名
②路徑名:指出用例所在的包
用例規約(Use Case Specification)
(用例描述、用例說明)
針對每一個用例都應該有一個用例規約文檔與之相對應,該文檔描述用例的細節内容,例如描述參與者與系統互動實作用例功能的事件流。
用例圖的關系
關聯(association)
包含(include)
擴充(extend)
泛化(generalization)
注意:
- 關聯指參與者與用例之間的關系
- 包含、擴充、泛化指用例之間的關系
- 泛化即可以用于參與者之間的關系,也能用于用例之間的關系。
關聯關系
- 表示參與者與用例之間進行通信。
- 每個用例都有參與者關聯,除了包含和擴充用例。
- 一個參與者可以通路多個的用例,一個用例可以被多個參與者通路。
- 關聯關系可以是單向的,也可以是雙向的。
包含關系
- 一個用例可以包含其它用例具有的行為,并把它作為自身行為的一部分,稱為包含依賴關系。
- 基用例把被包含的用例行為作為自身行為的一部分。
例如:
注意:
- 箭頭方向由基用例指向被包含的用例,被包含用例如果不存在了,基用例就不完整了。
- 執行基用例時,每次都必須調用被包含的用例。
- 被包含的用例也可以單獨執行。
使用包含關系的情形
- 如果兩個以上用例有大量一緻的功能,可以将一緻的功能抽取到另一個用例中,其它用例和這個用例建立包含關系。------展現複用
- 一個用例的功能太多太複雜時,可以将功能分解成小功能小用例,然後使用包含關系。------功能分解
擴充關系
- 一個用例在一定條件下(擴充點)擴充另一個用例的功能,構成新用例,稱為擴充用例,被擴充的用例稱為基用例。
- 擴充用例被定義為基用例的增量
- 擴充用例依賴于基用例。
注意:
- 基用例本身是一個完整的用例,可以單獨執行,在每次執行基用例時,擴充用例不是每次都被執行。
- 擴充用例本身不是完整獨立的用例,無法單獨執行,擴充用例的執行必須依賴于基礎用例。
使用擴充用例的情形
UML提供了擴充點來為基用例擴充新的行為。
擴充點
擴充點的定義:基礎用例中的一個或多個位置,在該位置會衡量某個條件以決定是否啟用擴充用例。
- 一旦基用例中擴充點給出條件滿足,則擴充用例将被執行。
- 一個用例可以有多個擴充點,每個擴充點也可以出現多次。
- 擴充關系為分支處理、異常處理、建構靈活的系統架構提供了一種非常有效的方法。
泛化關系
展現一般和特殊之間的關系。
用例之間可以泛化,參與者之間也可以泛化。
- 子用例表示父用例的特殊形式,通過插入額外的步驟或細節步驟,子用例特化父用例。
參與者間的泛化關系
- 在用例圖中,使用泛化關系來描述多個參與者之間的公共行為。
例如:
用例描述和模組化過程
●用例圖描述參與者和系統功能之間的關系,但是它缺乏描述系統行為的細節。
●用例描述用來更詳細地描述用例的功能。
●用例描述常以書面文檔的方式進行表達,可以使用 文本方式進行文字描述,也可以使用圖形的方式可視化描述,例如活動圖有助于描述複雜用例實作的決策流程,狀态轉移圖有助于描述與狀态相關的系統行為,順序圖适合于描述基于時間順序的消息傳遞。
用例描述一般包含的方面
在UML中對用例的描述并沒有硬性規定,但一般情況下用例描述
應包括以下幾個方面:
用例名稱
表明用例的用途,如上面示例中的“借閱圖書”、“歸還圖書”,
辨別符[可選]編号
惟一辨別符一個用例,如“UC200601”。這樣就可在項目的其他元素(如
類模型)中用它來引用這個用例。
參與者[可選]
與此用例相關的參與者清單。盡管這則資訊包含在用例本身當中,但在沒
有用例圖時,它有助于增加對該用例的了解。
簡要說明
對該用例進行說明,描述用例作用。注意語言簡要,使用自然語言。
前置條件
一個條件清單。前置條件描述了用例之前系統必須滿足的條件。如果條件不滿足,則用例不會被執行。
例如:借閱圖書用例
前置條件:學生出示的借書證必須是合法的借書證。
後置條件
後置條件在用例成功完成後得到滿足,它提供了系統的部分描述。用例結束後,系統處于什麼狀态。
例如:借閱圖書用例
後置條件:借書成功,則傳回該學生借閱資訊;結束失敗,則傳回失敗的原因。
擴充點
如果包括擴充用例,則寫出擴充用例在什麼情況下使用。應該在編寫事件流的同時編寫。
基本事件流(主事件流)
描述當各項工作都正常進行時用例的工作方式。
事件流描述了使用者和執行用例之間互動的每一步。.
事件流是将個别用例進行合适的細化任務。
可以發現原始用例圖遺漏的内容。
其它事件流(擴充事件流,錯誤事件流)
在變更工作方式、出現異常或發生錯誤的情況下所遵循的步驟
例如:
用例模組化過程
■捕獲需求;
■确定系統的邊界範圍,找出系統外部的參與者和外部系統;
■确定每-一個參與者所希望的系統行為,命名用例;
■把公共系統行為分解為新用例,供其他用例引用;
■把一些變更的行為分解為擴充用例;
■編制用例的腳本;編寫用例描述
■繪制用例圖;
■把特殊情況的用例畫成單獨的子用例圖。