6.8 使用案例建模軟體與模型管理
使用案例分析與建模
6.8.1 常見工具類型
使用案例模型可以用紙筆、一般繪圖軟體、文字式繪圖工具或專業建模軟體建立。工具的價值在於協助繪製、保存、共享及維護模型,但工具功能不能取代需求判斷。
| 工具類型 | 優點 | 限制 |
|---|---|---|
| 紙筆或白板 | 快速、適合討論與探索 | 不易保存版本與維持一致性 |
| 一般繪圖軟體 | 容易上手、排版彈性高 | 圖形彼此獨立,模型語意需人工維護 |
| 文字式繪圖工具 | 易於版本控制、複製與自動產生 | 需熟悉語法,工具對UML的支援程度不一 |
| 專業UML建模軟體 | 可集中管理元素、關係與多張圖 | 學習與管理成本較高 |
PlantUML與Mermaid都屬於文字式繪圖工具,但兩者的定位與支援程度不同:
| 工具 | 優點 | 限制 |
|---|---|---|
| PlantUML | 以文字描述圖形,便於版本比較與AI協作 | Markdown軟體不一定支援 |
| Mermaid | 容易嵌入Markdown,並可在支援的編輯器中直接預覽 | 12.0版以前尚未提供原生使用案例圖語法,需以流程圖元素近似呈現 |
PlantUML與Mermaid都適合搭配AI產生模型程式碼。PlantUML的UML表示能力較完整,便於版本比較與AI協作;Mermaid容易嵌入Markdown,但不同版本對UML圖形的支援程度不同。專業建模工具通常能讓同一參與者或使用案例出現在多張圖中,並集中維護名稱與屬性。
6.8.2 選擇工具的考量
可以依下列條件評估:
- 是否支援所需的UML元素與關係?
- 是否能集中管理模型元素?
- 是否支援多人協作與權限控制?
- 是否能保存版本、變更紀錄及審查意見?
- 是否容易輸出為文件、圖片或網站內容?
- 是否能與需求、原始碼或測試建立連結?
- 團隊是否具備使用及維護能力?
- 成本、授權及資料保護是否符合組織要求?
請注意,這些工具的選擇,要視專案規模而定。教學或小型專案不一定需要複雜工具;大型或長期維護的系統則較需要模型庫、版本控制及追蹤能力。
6.8.3 模型庫與單一元素來源
專業建模工具通常以模型庫保存參與者、使用案例及相關關係。圖形只是模型的不同視圖。同一個「評審」元素可以出現在整體圖與評分作業圖中,而不需要建立兩個彼此無關的圖形。
若使用一般繪圖或多份Markdown文件,也可以用下列方式降低不一致:
- 建立參與者與使用案例登錄表。
- 為正式元素配置穩定識別碼。
- 設定統一名稱與定義。
- 在各圖中引用相同識別碼。
- 指定模型負責人及變更程序。
- 定期比對圖、文字描述及需求規格。
6.8.4 版本與變更管理
模型變更可能影響需求、圖、使用案例描述及測試。每次重要變更至少應記錄:
- 變更日期與版本
- 變更原因
- 變更的模型元素
- 需求或決議依據
- 受影響的圖與文件
- 審查及核准狀態
若某項正式術語有所調整,不應只修改一張圖,而應同步檢查使用案例清單、描述、需求追蹤表及網站內容。
6.8.5 文字式模型範例
下列PlantUML範例呈現Case M01(專題競賽報名與審查系統)的部分使用案例:
查看並複製 PlantUML 程式碼
@startuml
left to right direction
actor 隊長
actor 評審
actor 競賽承辦人員
rectangle 專題競賽報名與審查系統 {
usecase "UC-01\n提交競賽報名" as UC01
usecase "UC-03\n上傳專題文件" as UC03
usecase "UC-04\n分派評審" as UC04
usecase "UC-05\n評定參賽專題" as UC05
}
隊長 -- UC01
隊長 -- UC03
競賽承辦人員 -- UC04
評審 -- UC05
@enduml若Markdown編輯器支援Mermaid,也可以使用Mermaid程式碼建立相同內容。由於本書採用Mermaid 11.13版,尚無原生使用案例圖語法,以下使用flowchart、subgraph及圓弧形節點近似呈現參與者、系統邊界與使用案例。Mermaid 12.0版(含)以後已提供原生使用案例圖語法,但本書仍以11.13版可執行的語法為準。
要同時展示原始碼與產生的圖,需要保留兩份內容相同、但標記不同的程式碼區塊。第一份標示為text,供讀者查看及複製;第二份標示為mermaid,供Typora解析並產生圖形。
Mermaid程式碼
flowchart LR
Captain["參與者:隊長"]
Judge["參與者:評審"]
Staff["參與者:競賽承辦人員"]
subgraph M01["專題競賽報名與審查系統"]
direction TB
UC01(["UC-01 提交競賽報名"])
UC03(["UC-03 上傳專題文件"])
UC04(["UC-04 分派評審"])
UC05(["UC-05 評定參賽專題"])
end
Captain --- UC01
Captain --- UC03
Staff --- UC04
Judge --- UC05程式碼產生的使用案例圖
查看並複製 Mermaid 程式碼
flowchart LR
Captain["參與者:隊長"]
Judge["參與者:評審"]
Staff["參與者:競賽承辦人員"]
subgraph M01["專題競賽報名與審查系統"]
direction TB
UC01(["UC-01 提交競賽報名"])
UC03(["UC-03 上傳專題文件"])
UC04(["UC-04 分派評審"])
UC05(["UC-05 評定參賽專題"])
end
Captain --- UC01
Captain --- UC03
Staff --- UC04
Judge --- UC05這段Mermaid程式碼包含:
- 三個位於系統邊界之外的參與者:隊長、評審及競賽承辦人員。
- 一個以
subgraph近似呈現的系統邊界。 - 四個以圓弧形節點近似呈現的使用案例。
- 參與者與使用案例之間的無方向實線關聯。
Typora顯示圖形後,Markdown文件中仍保留原始程式碼,因此可以直接修改參與者、使用案例名稱或關聯。若程式碼沒有轉換成圖形,應先確認Typora已啟用圖表功能,並確認程式碼區塊開頭使用mermaid,而不是一般未指定語言的程式碼區塊。
語法能成功產生圖,不代表內容已正確。仍須核對邊界、角色、名稱、關係及需求依據。