第 6 章

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 圖形預覽Mermaid 11.12
查看並複製 PlantUML 程式碼
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程式碼

text
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 圖形預覽Mermaid 11.12
查看並複製 Mermaid 程式碼
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,而不是一般未指定語言的程式碼區塊。

語法能成功產生圖,不代表內容已正確。仍須核對邊界、角色、名稱、關係及需求依據。