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