第 6 章使用案例圖 6-1 使用案例圖的基礎 6-2 使用案例圖的符號 6-3 動作者與使用案例的關係 6-4 繪製使用案例圖 6-5 綜合練習 6-1 使用案例圖的基礎 - 說明 使用案例圖 (Use Case Diagram, 或稱為使用個案圖 ) 可以描述系統功能和其提供的服務, 它是以外部觀察者角度外部觀察者角度來描述觀察到的系統功能, 強調系統能作什麼事, 而不是如何作這些事 使用案例圖可以呈現 4+1 觀點軟體系統模型的使用案例觀點, 如下圖所示 : 1/39 2/39 Use Case Diagram 系統行為的描述 回應外部特殊請求的情節, 例如 : 使用者輸入 情節 : 是一序列動作者與系統, 子系統, 類別之間的互動操作, 即描述系統行為的故事 動作者 : 是與系統互動的實體 特定角色的使用者, 會員, 顧客, 會計, 業務 外部軟體系統 3/39 6-1 使用案例圖的基礎 - 目的 使用案例圖在軟體系統建立過程提供的幫助, 如下所示 : 需求擷取 : 在使用案例圖新增一個使用案例, 就表示擷取到一個新需求 建立使用案例模型 : 在物件導向軟體系統開發過程建立使用案例模型, 詳見第 8 章的說明 與客戶溝通的橋樑 : 使用案例圖是以客戶角度來觀察系統, 所以能夠作為系統開發者和客戶之間的溝通橋樑 產生測試計劃 : 當我們詳細描述使用案例後, 即可提供建議, 讓我們產生系統的測試計劃 4/39 1
6-2 使用案例圖的符號 6-2-1 動作者 6-2-2 使用案例 6-2-3 連接線 6-2-4 系統邊界 6-2 使用案例圖的符號 使用案例圖的符號 (Notation) 或稱為 圖示 (Icon) 是由動作者 系統邊界 使用案例和連接線組成 例如 : 圖書銷售系統 (Book Sales System) 的使用案例圖, 如下圖所示 : 動作者 系統名稱 系統邊界 連接線 5/39 6/39 6-2-1 動作者 - 說明 動作者 (Actors) 也稱為行為者 參與者或演員, 它是在系統外部與系統溝通的觀察者 動作者可以代表 : 角色 (Role): 使用者在系統扮演的角色, 請注意是角色, 不是指個人, 角色可以代表很多人, 以人來說通常就是職稱, 所以圖書銷售系統的動作者是作者, 而不是筆者陳會安 實體 (Entity): 動作者不一定是代表人的使用者, 可能是一個東西, 即與系統溝通的外部系統 (External System), 例如 : 資料庫系統和帳務系統等 7/39 6-2-1 動作者 - 種類 動作者在使用案例圖中依功能可以分為兩種, 如下所示 : 主要動作者 (Primary Actor): 指使用系統服務的使用者, 例如 : 圖書銷售系統的作者和產品經理是主要動作者 支援動作者 (Supporting Actor): 提供服務或資訊給系統的動作者, 例如 : 資料庫系統為支援動作者 動作者的命名 (p.6-4) 8/39 2
6-2-1 動作者 - 符號 1 使用案例圖的動作者是使用人形符號的棒子人 (Stick Man) 來表示, 如下圖所示 : 6-2-1 動作者 - 符號 2 我們也可以使用自訂圖示來表示動作者, 上方 <<actor>> 模版 (Stereotype) 表示是特殊化的 UML 模型元素, 型態名稱 actor 是位在 << 和 >> 符號之間, 以此例就是自訂名為 actor 動作者的模型元素 如下圖所示 : 9/39 10/39 6-2-2 使用案例 - 說明 使用案例 (Use Cases, 也稱為使用個案 ) 就是一個工作 (Jobs) 它是描述動作者和系統互動產生的可能操作, 也就是動作者能夠做什麼事? 系統需要提供什麼服務? 簡單的說, 它就是情節 (Scenario) 的摘要 請注意! 使用案例是以使用者或客戶角度來看系統, 並不是以系統開發者的角度 6-2-2 使用案例 - 符號 UML 使用案例圖的使用案例是使用橢圓形來表示, 名稱是位在橢圓形的正中央, 如下圖所示 : 11/39 12/39 3
6-2-3 連接線 連接線 (Communication Lines) 是使用結合關係 (Association) 連接動作者與使用案例, 這是一條直線, 並沒有方向性, 代表動作者參與使用案例, 並不表示之間有任何資訊交換, 如下圖所示 : 6-2-4 系統邊界 系統邊界 (System Boundaries) 可以明確標示系統的範圍, 這是使用長方形框來包圍使用案例, 而且保持動作者位在系統邊界的長方形框之外, 如下圖所示 : 13/39 14/39 6-3 動作者與使用案例的關係 6-3-1 使用案例的包含關係 - 說明 6-3-1 使用案例的包含關係 include 6-3-2 使用案例的延伸關係 extend 6-3-3 使用案例的一般關係 generalization 6-3-4 動作者的一般關係 6-3-5 使用案例的實現關係 使用案例的包含 (Inclusion) 關係, 可以讓我們在使用案例重複使用其他使用案例, 類似程式語言的程序與函數, 可以讓多個使用案例包含同一個使用案例的行為或功能 包含關係是使用 <<include>> 標示的虛線箭頭, 從包含者連接被包含者的其他使用案例, 如下圖所示 : 15/39 16/39 4
6-3-1 使用案例的包含關係 - 案例 6-3-2 使用案例的延伸關係 - 說明 案例 1 乘客 (Passenger) 使用自動購票機購票, 購票 (Purchase Ticket) 使用案例包含投幣 (Collect Money) 的使用案例, 如下圖所示 : 使用案例的延伸 (Extension) 關係是在某些情況或條件下, 可以延伸現有使用案例的行為或功能, 在此的某些情況或條件是一或多個特殊點, 稱為延伸點 (Extension Point) 不過, 延伸關係並不會影響原來的使用案例, 它只是增加一些選項的行為或功能, 例如 : 記錄錯誤資訊 不同於包含關係, 延伸使用案例是完全且獨立的使用案例, 如同電腦硬體的擴充槽, 我們是在軟體系統的延伸點 ( 即擴充槽 ) 插入 (Plug Into) 一個延伸使用案例來擴充其功能, 如果電腦硬體的擴充槽沒有插入擴充卡, 也不會影響到原來電腦的主要功能 ; 插入擴充卡只是增加電腦的額外功能 案例 2 p.6-8 17/39 18/39 6-3-2 使用案例的延伸關係 - 符號 6-3-2 使用案例的延伸關係 - 案例 UML 使用案例的延伸關係是使用 <<extend>> 的虛線箭頭線來連接 2 個使用案例, 如下圖所示 : 案例 1 乘客 (Passenger) 搭乘捷運時, 自動購票機的購票 (Purchase Ticket) 使用案例延伸取消購票 (Cancel Purchase Ticket) 使用案例, 如下圖所示 : 19/39 案例 2 20/39 5
6-3-3 使用案例的一般關係 - 說明 6-3-3 使用案例的一般關係 - 案例 使用案例的一般關係 (Generalization) 類似類別架構的繼承觀念, 父使用案例可以被子使用案例繼承, 其主要目的是為了顯示此使用案例是不同於其他使用案例的一種特殊種類的使用案例 一般來說, 當使用案例擁有共同行為 需求 限制和假設時, 我們可以將它建立成一般使用案例 (General Use Case), 然後使用一般關係來描述不同的特殊使用案例 (Specialized Use Case) 其符號是使用實線和空心三角箭頭, 從特殊使用案例連接至一般使用案例 21/39 案例 1 案例 2 網路書店客戶 (Customer) 參與的搜尋圖書 (Seaerch Books) 使用案例有多種不同搜尋條件, 我們可以繼承它建立以作者搜尋 (Search by Author) 和以書名搜尋 (Search by Title) 的子使用案例, 如右圖所示 : 22/39 6-3-4 動作者的一般關係 不只使用案例之間擁有一般關係, 在動作者之間也可以建立一般關係, 這是當不同動作者之間擁有重疊角色, 其符號是使用實線和空心三角箭頭, 從特殊動作者連接至一般動作者, 如右圖所示 : 6-3-5 使用案例的實現關係 使用案例描述是需求擷取的功能性需求, UML 提供機制可以追蹤功能性需求如何被實作, 稱為實現關係 (Realization) 簡單的說, 實現關係可以描述特殊使用案例如何在分析與設計模型中實作 23/39 24/39 6
6-3-5 使用案例的實現關係 - 符號 類似 Java 語言介面 (Interface) 的實作, 使用案例的實現關係是使用虛線空心三角箭頭從使用案例連接至合作 (Colboration), 如右圖所示 : 虛線橢圓形 - 合作 6-4 繪製使用案例圖 6-4-1 新增使用案例圖 6-4-2 繪製使用案例圖的符號 6-4-3 繪製關係 25/39 26/39 6-4-1 新增使用案例圖 6-4-2 繪製使用案例圖的符號 - 說明 SIM 塑模工具是使用模型來管理眾多的 UML 圖形, 我們可以在指定模型新增使用案例圖, 執行 專案 / 新增圖表 / 使用案例圖 指令, 可以在預設 Model1 模型新增使用案例圖, 預設名稱為 Use Case Diagram 1, 如下圖所示 : 在 SIM 左邊的 工具箱 視窗提供新增使用案例圖的相關符號, 即位在中間的 使用案例圖 區段, 如下圖所示 : 27/39 28/39 7
6-4-2 繪製使用案例圖的符號 - 新增動作者 在 工具箱 視窗拖拉 動作者 至中間編輯區域的插入位置, 放開滑鼠按鍵即可新增動作者 ( 或選工具箱的符號後, 在編輯區域插入位置左上角按一下, 即可向右下角拖拉出符號 ), 在下方顯示名稱, 請直接輸入名稱 使用者, 如下圖所示 : 6-4-2 繪製使用案例圖的符號 - 新增使用案例 請在 工具箱 視窗選 使用案例, 就可以在編輯區域插入位置左上角按一下, 往右下角拖拉出使用案例的尺寸和更改使用案例名稱為 登入, 如下圖所示 : 29/39 30/39 6-4-2 繪製使用案例圖的符號 - 新增連接線 在 工具箱 視窗選 結合關係, 然後在動作者上按一下, 從動作者拖拉至使用案例上, 放開滑鼠按鍵, 就可以建立連接線, 如下圖所示 : 6-4-2 繪製使用案例圖的符號 - 建立系統邊界 在 工具箱 視窗選 系統邊界, 就可以在編輯區域拖拉建立系統邊界的長方形框, 然後輸入上方的系統名稱, 如下圖所示 : 31/39 32/39 8
6-4-3 繪製關係 - 包含關係 選 建立帳號 使用案例後, 在下方選第二個 Include 鈕, 可以建立包含關係的使用案例, 如下圖所示 : 6-4-3 繪製關係 - 延伸關係 選 建立帳號 使用案例後, 在下方選第一個 Extend 鈕, 可以建立延伸關係的使用案例 記錄程式錯誤, 如下圖所示 : 33/39 34/39 6-4-3 繪製關係 - 一般關係 使用案例和動作者的一般關係, 其建立方式都相同, 如下圖所示 : 6-4-3 繪製關係 - 實現關係 在使用案例圖建立實現關係中的合作, 就是在 工具箱 視窗選 合作, 然後在編輯區域拖拉出合作物件, 即可選 實現關係 來建立使用案例的實現關係 35/39 36/39 9
6-5 綜合練習 - 大專院校的課程註冊系統 6-5 綜合練習 - 旅館管理系統 37/39 38/39 6-5 綜合練習 - 餐廳管理系統 39/39 10