1. 簡介
專案名稱:基於雲端的醫院預約系統敏捷開發
客戶:CityCare醫療集團(擁有5間診所的多專科醫院網絡)
專案期間:6個月(3個每週2週的迭代)
團隊人數:6人(Scrum團隊:產品負責人、Scrum主管、2名前端開發人員、1名後端開發人員、1名品質保證工程師)
技術堆疊:React.js(前端)、Node.js + Express(後端)、MongoDB(資料庫)、AWS(雲端部署)、JWT(驗證)、Docker(容器化)
方法論:敏捷(Scrum)方法,並使用UML建模進行設計與文件編製
2. 商業背景
CityCare醫療集團因預約排程效率低下,面臨日益增加的患者不滿。透過電話或櫃檯手動預約導致:
-
長時間等候
-
重複預約問題
-
無法即時查看醫生可預約狀態
-
無提醒或數位確認
醫院尋求一個可擴展、安全且使用者友善的數位預約系統,以改善患者體驗、降低行政負擔並提升預約完成率。
3. 敏捷方法(Scrum架構)
專案遵循Scrum,包含:
-
迭代期間:2週
-
每日站會:15分鐘同步會議
-
迭代規劃、審查與回顧:在每個迭代的開始和結束時舉行
-
產品待辦事項梳理:每周優化會議
應用的關鍵敏捷原則:
-
根據商業價值優先處理功能(例如,患者登入優先於進階分析)。
-
迭代交付:MVP(最小可行產品)在第二個迭代後交付。
-
來自利益相關者(醫生、護士、患者)的持續反饋。
-
適應性:根據使用者反饋在迭代中調整範圍。
4. 系統設計的UML建模
UML(統一建模語言)在整個專案中被用來視覺化、規範、建構和文件化系統。
4.1 用例圖(參與者與系統互動)
參與者:
-
患者
-
醫生
-
護士/管理員
-
系統(自動提醒)
用例圖:

@startuml
skinparam linetype ortho
skinparam defaultFontSize 14
skinparam defaultFontColor #333333
‘ 參與者樣式
skinparam actor {
BackgroundColor #E8F5E9
}
‘ 用例樣式
skinparam usecase {
BackgroundColor #BBDEFB
BorderColor #1976D2
ArrowColor #1976D2
}
從左到右的方向
角色「病人n(主要)」作為病人
角色「醫生n(主要)」作為醫生
角色「護士/行政人員n(主要)」作為護士行政人員
角色「系統n(次要)」作為系統
矩形「醫院系統」{
用例「預約門診」作為UC1
用例「查看時程」作為UC2
用例「取消預約」作為UC3
用例「發送通知」作為UC4
用例「管理醫生」作為UC5
用例「管理可診時間」作為UC6
用例「產生報表」作為UC7
用例「接收提醒」作為UC8
}
‘ 主要角色與用例之間的關聯
病人 -[#黑色]- UC1
病人 -[#黑色]- UC2
病人 -[#黑色]- UC3
病人 -[#黑色]- UC8
醫生 -[#深紅]- UC2
醫生 -[#深紅]- UC6
護士行政人員 -[#金黃]- UC5
護士行政人員 -[#金黃]- UC6
護士行政人員 -[#金黃]- UC7
‘ 用例與次要角色(系統)之間的關聯
UC4 -[#深青綠]- 系統
UC8 -[#深青綠]- 系統
‘ 包含關係(強制共享行為)
UC1 …> UC6 : <<包含>>
UC2 …> UC6 : <<包含>>
‘ 延伸關係(可選行為)
UC1 <… UC8 : <<延伸>>
@enduml
目的: 識別核心功能與使用者角色。於第一個衝刺中用於待辦事項的優先排序。
4.2 類圖(核心領域模型)
主要類別:
-
病患(id, 姓名, 電子郵件, 電話, 密碼) -
醫生(id, 姓名, 專長, 可用性) -
預約(id, 病患ID, 醫生ID, 日期時間, 狀態, 備註) -
使用者(抽象基類:id, 電子郵件, 密碼, 角色) -
通知(id, 接收者, 訊息, 發送時間, 類型)
關聯:
-
一個
醫生擁有許多預約 -
一個
病患擁有許多預約 -
預約與…連結通知透過sendNotification()方法

@startuml
skinparam {
‘ 整體風格
roundcorner 8
‘ 顏色
ArrowColor #444444
ArrowFontColor #444444
BorderColor #444444
‘ 類別樣式
Class {
BorderColor #1A237E
BackgroundColor #E8EAF6
FontColor #1A237E
}
‘ 接口樣式
Interface {
BorderColor #A7C5C5
BackgroundColor #E0F2F1
FontColor #444444
}
‘ 套件樣式
Package {
BorderColor #6D876D
BackgroundColor #E6F0E6
FontColor #3D553D
}
}
套件「醫院管理系統」{
類別「病人」{
-id : 字串
-name : 字串
-email : 字串
-phone : 字串
-password : 字串
}
類別「醫生」{
-id : 字串
-name : 字串
-specialty : 字串
-availability : 字串
}
類別「預約」{
-id : 字串
-patientId : 字串
-doctorId : 字串
-dateTime : 日期
-status : 字串
-notes : 字串
}
類別「通知」{
-id : 字串
-recipient : 字串
-message : 字串
-sentAt : 日期時間
-type : 字串
}
}
‘ 關係
患者 –|> 預約 : “有許多”
醫生 –|> 預約 : “有許多”
預約 ..> 通知 : “透過 sendNotification() 發送通知”
隱藏類別圓形
@enduml
目的:指導資料庫結構設計與後端 API 開發。
4.3 序列圖(預約流程)

@startuml
skinparam sequenceParticipant underline
skinparam {
‘ 整體風格
字型大小 14
‘ 顏色
箭頭顏色 #4A4A4A
箭頭字型顏色 #4A4A4A
背景顏色 #FFFFFF
邊框顏色 #DEDEDE
字型顏色 #333333
‘ 參與者樣式
Participant {
邊框顏色 #0077B6
背景顏色 #F0F8FF
字型顏色 #005691
}
‘ 行動者樣式
Actor {
邊框顏色 #6A057F
背景顏色 #F5EEF8
字體顏色 #510363
}
‘ 序列特定
序列 {
箭頭粗細 2
生命線邊框顏色 #444444
生命線背景顏色 #F7F7F7
框體邊框顏色 #AAAAAA
框體背景顏色 #FFFFFF
框體字體顏色 #333333
}
}
角色 “患者” 稱為 PAT
參與者 “預約系統” 稱為 AS
參與者 “使用者資料庫” 稱為 UD
參與者 “可用性資料庫” 稱為 AD
參與者 “電子郵件服務” 稱為 ES
PAT -> AS: BookAppointment()
啟用 PAT
啟用 AS
AS -> UD: 驗證使用者
啟用 UD
否則 使用者驗證成功
UD –> AS: 使用者已驗證
停用 UD
AS -> AD: 檢查可用性
啟用 AD
否則 時段可用
AD –> AS: 時段可用
停用 AD
AS -> ES:發送確認郵件
啟用 ES
ES –> AS:郵件已發送
停用 ES
AS –> PAT:收到預約 ID
停用 AS
停用 PAT
否則 沒有可用時段
AD –> AS:沒有可用時段
停用 AD
AS –> PAT:無法預約
停用 AS
停用 PAT
結束
否則 使用者驗證失敗
UD –> AS:找不到使用者
停用 UD
AS –> PAT:無效的使用者憑證
停用 AS
停用 PAT
結束
@enduml
目的: 明確了核心使用者流程的互動流程。用於撰寫整合測試並引導前端邏輯。
4.4 活動圖(預約取消工作流程)

@startuml
<style>
element {MaximumWidth 150}
start {
背景顏色 #00695C
}
停止 {
背景顏色 #C2185B
}
活動 {
背景顏色 #81D4FA
最大寬度 150
}
菱形 {
背景顏色 #FFB74D
最大寬度 80
}
箭頭 {
線條顏色 #424242
字體顏色 #000000
}
泳道 {
字體顏色 #000000
字體大小 14
}
</style>
|#F0F8FF|患者|
開始
:登入系統;
|#F0F8FF|患者|
:查看即將到來的預約;
|#F0F8FF|患者|
:選擇要取消的預約;
|#F0F8FF|系統|
:檢查是否允許取消(預約前超過24小時?);
如果(是)則(是)
|#F0F8FF|系統|
:取消預約;
:將狀態更新為「已取消」;
|#F0F8FF|系統|
:發送退款/通知郵件;
|#F0F8FF|患者|
:接收確認;
停止
否則(否)
|#F0F8FF|系統|
:顯示訊息:「24小時內不允許取消」;
停止
結束如果
@enduml
目的: 識別了業務規則與限制。確保符合醫院政策。
5. 敏捷實施(迭代式)
Sprint 1:MVP 基礎
-
目標: 核心驗證與預約訂購
-
交付成果:
-
使用者註冊/登入(JWT)
-
醫師可預約時間顯示
-
基本預約訂購表單
-
UML 圖表完成
-
-
成果: MVP 已釋出給內部人員測試。
Sprint 2:增強功能
-
目標: 改善易用性並新增通知功能
-
交付成果:
-
即時可用性日曆
-
電子郵件/SMS 提醒(appointment 前 24 小時)
-
患者儀表板,含預約歷史
-
-
成果: 90% 測試者給予正面反饋。進行微小的 UI/UX 改進。
第三個 Sprint:管理與報表
-
目標: 新增管理工具
-
交付成果:
-
用於新增/編輯醫生的管理介面
-
每周預約報表(依醫生、專科、未到率)
-
與醫院 CRM 系統整合
-
-
成果: 完整系統已部署至 AWS。已舉辦培訓課程。
6. 結果與指標
| 指標 | 之前 | 之後 |
|---|---|---|
| 平均預約時間 | 15 分鐘 | 2 分鐘 |
| 未到率 | 30% | 12% |
| 患者滿意度(問卷調查) | 3.2/5 | 4.7/5 |
| 管理負荷(每週) | 10 小時 | 3 小時 |
| 系統正常運行時間(3 個月) | 不適用 | 99.9% |
投資回報率:營運成本降低 40%,患者留存率提升 25%。
7. 挑戰與經驗教訓
-
挑戰:因功能需求導致初期範圍蔓延。
-
解決方案:使用 MoSCoW 法(必須有、應該有、可以有、不會有)重新優先排序待辦事項清單。
-
-
挑戰:即時可用性更新導致競爭條件。
-
解決方案:在後端實作 Redis 快取與互斥鎖。
-
-
經驗教訓:UML 圖表透過減少歧義與重做,節省了約 30% 的開發時間。
8. 結論
透過結合敏捷式 Scrum 方法論與UML 建模CityCare 醫療集團成功在僅 6 週的主動開發期間(3 個迭代)交付了一個可擴展、安全且使用者友善的預約系統。UML 的使用確保了清晰的溝通、精確的設計與更快的執行。該系統目前已在所有 5 家診所推廣使用,並計畫進一步擴展至行動應用程式與遠距醫療整合。
9. 借助 Visual Paradigm 的整合平台與人工智慧加速敏捷開發
為進一步提升效率、簡化協作並加速 CityCare 預約系統專案的交付,團隊整合了Visual Paradigm 的整合式 UML 建模平台——一個強大的雲端解決方案,整合了建模、文件編寫、協作與人工智慧驅動的自動化。此整合在降低設計負荷、提升團隊協調性以及加速關鍵開發階段方面發揮了關鍵作用。
9.1 Visual Paradigm 如何簡化 UML 建模
Visual Paradigm 提供了一個集中式、即時環境用於建立和管理專案中使用的所有 UML 圖表:
-
無縫圖表建立:
團隊使用 Visual Paradigm 直觀的拖曳介面來產生用例、類別、序列與活動圖僅需數分鐘,與傳統工具如 Lucidchart 或手繪草圖相比,手動繪製時間減少超過 60%。 -
自動對齊與驗證:
內建的驗證規則會自動標示不一致之處(例如:遺漏關聯、錯誤的多重性),確保模型從第一天起就準確無誤。 -
即時協作:
開發人員、UX 設計師與業務分析師可即時在共用圖表上協作。變更會立即在團隊中顯示,消除版本衝突與誤解。
9.2 AI 驅動自動化:從模型到程式碼與文件
Visual Paradigm 的AI 驅動功能顯著加速開發並減少重複性工作:
-
AI 驅動程式碼產生:
使用「從 UML 產生程式碼」功能,團隊可直接從類別與序列圖產生範本後端程式碼(Node.js/Express)。例如:-
該
Appointment類別模型僅需點擊一次,即可轉換為功能完整的 Mongoose 資料結構與 CRUD 控制器。 -
此舉為專案節省了約 12 小時的手動程式碼撰寫時間。
-
-
智慧文件產生:
AI 自動產生專案文件,包含:-
API 規格(OpenAPI 格式)
-
使用者手冊
-
系統架構概觀
此文件已與利益相關者共享,並用於培訓課程。
-
-
AI增強的需求可追溯性:
Visual Paradigm 的 AI驅動的可追溯性矩陣 將每個使用案例直接連結至對應的類別圖和序列圖,確保功能需求得到全面覆蓋。這有助於品質保證團隊驗證所有功能均已測試。
9.3 AI驅動的設計建議與重構
-
設計改進的智慧建議:
AI分析了類別圖,並提出建議:-
重構
Appointment以包含duration和type(例如:追蹤、諮詢)。 -
引入一個
TimeSlot類別以改善可用性邏輯。
這些建議已在第二個迭代中採用,提升了系統的可擴展性。
-
-
自動化重構支援:
當團隊需要將Patient改為User以支援未來的多角色功能時,Visual Paradigm 的 AI驅動的重構引擎 自動更新所有相依的圖表與程式碼資產,最大限度減少人為錯誤。
9.4 與敏捷工作流程的整合(Jira 與 CI/CD)
-
無縫 Jira 同步:
Visual Paradigm 已與 Jira,自動將使用案例和使用者故事轉換為迭代任務。這確保了待辦事項清單與UML模型保持一致。 -
CI/CD 管道整合:
生成的程式碼直接推送到 Git 儲存庫,透過 GitHub Actions 觸發自動測試與部署——確保設計與實作始終保持同步。
影響摘要:Visual Paradigm + AI 實際應用
| 效益 | 使用 Visual Paradigm 前 | 使用 Visual Paradigm 後 |
|---|---|---|
| 建立 UML 圖表所需時間 | 每張圖表 2–3 小時 | 每張圖表 20–30 分鐘 |
| 從模型產生程式碼所需時間 | 手動(4–6 小時) | 10–15 分鐘(AI) |
| 文件建立時間 | 1 天 | 1 小時(AI 生成) |
| 設計審查與反饋週期 | 3–5 天 | 1–2 天 |
| 團隊協調與溝通 | 脫節 | 即時、共用 |
✅ 結果: 專案如期交付 15% 更快 比預期快,且 設計相關的錯誤減少 40% 以及 完整的可追溯性從需求到程式碼。
結論:為何 Visual Paradigm 是改變遊戲規則的關鍵
Visual Paradigm 的具備 AI 功能的一體化平台改變了團隊處理 UML 建模的方式——從靜態文件編製轉變為動態、智慧且協作的開發引擎透過自動化重複性任務、強制一致性,並彌合設計與程式碼之間的差距,它讓敏捷團隊得以專注於創新,而非繁瑣的管理事務。
產品負責人引言:
「使用 Visual Paradigm 後,我們的設計會議變得更具效率。我們不只是繪製圖表,更即時建構系統,AI 協助我們提前思考。」
最後提醒:
對於採用敏捷開發與 UML 的團隊而言,Visual Paradigm 不僅是建模工具,更是打造更聰明、更快、更可靠軟體的戰略夥伴。
UML 與 AI 工具
- 由 Visual Paradigm 提供的 AI 驅動 UML 類別圖生成工具:此進階工具可從自然語言描述自動產生 UML 類別圖,大幅簡化軟體設計流程。
- 建模的未來:AI 如何轉變 UML 圖表生成:本文深入分析人工智慧如何將建模從手動繪製轉向智慧化、自動化的生成方式。
- Visual Paradigm – AI 驅動的 UML 序列圖:此資源說明如何使用先進的 AI 建模套件,直接從文字提示生成專業的 UML 序列圖。
- UML 套件圖:利用 AI 結構化程式碼庫的完整指南:本指南探討 AI 如何協助使用者結構化系統、管理相依性,並維持乾淨、可擴展的軟體架構。
- 結合 AI 的 UML 狀態機圖完整指南:此技術資源涵蓋使用 AI 增強工具,精確模擬複雜動態物件行為。
- AI 驅動的序列圖優化工具|Visual Paradigm:此功能亮點探討 AI 如何透過智慧建議,自動改善與優化序列圖,進而提升軟體設計品質。
- 立即透過 AI 從使用案例生成活動圖:本文展示了一款 AI 引擎,可快速且準確地將使用案例描述轉換為專業的 UML 活動圖。
- AI 聊天機器人如何幫助你更快學習 UML:本文詳細說明 AI 聊天機器人如何提供互動式學習環境,讓學習者練習 UML,並即時獲得視覺化呈現與反饋。
- AI驅動的用例圖優化工具: 此資源描述如何利用AI自動優化和改進用例圖,以提升清晰度、一致性和完整性。
- AI文本分析 – 自動將文本轉換為視覺模型: 此功能說明解釋了AI如何分析文本文件,自動生成UML等圖表,以加快建模和文檔編寫速度。











