情境描述
一位新讀者(學生或會員)造訪線上圖書館門戶網站以建立帳戶。他們提供個人資訊(姓名、電子郵件、密碼),系統驗證唯一性(例如,電子郵件尚未註冊),在資料庫中建立帳戶,並發送歡迎/啟用郵件。註冊成功後,使用者依書名或作者搜尋圖書,檢視可借閱狀態,若可借閱則進行預訂(設置保留)。若圖書不可用,系統會提供在圖書可借閱時通知的選項。流程最後在使用者介面上顯示確認訊息。
此流程常見於大學或公共圖書館系統,展現使用者入門與核心資源互動。
UML序列圖中的關鍵概念(與本範例相關)
生命線— 參與者的生命線,以垂直虛線表示(例如::User、:Browser、:LibraryApp)。
訊息— 用箭頭表示呼叫:同步(實線且箭頭頭完整 →)、回應(虛線 <–)、物件建立(指向新生命線的虛線箭頭,標示「create」)。
激活條— 顯示物件正在處理時(激活/取消激活)。
Alt片段— 條件邏輯(例如:[註冊成功] 對 [電子郵件已存在])。
Opt片段— 選擇性行為(例如:[使用者選擇立即預訂])。
迴圈— 用於重複性動作(例如:若無搜尋結果則調整搜尋條件)。
參與者— 人類使用者(人形圖示)。
回傳訊息— 帶有結果回傳的虛線箭頭。
時間流向由上至下.
參與者(生命線):
讀者(參與者)
瀏覽器(前端/使用者介面)
圖書館應用程式(應用程式/控制層)
使用者資料庫(帳戶資料庫)
BookCatalog(圖書與預訂的資料庫/服務)
EmailService(外部通知服務)
此 PlantUML 腳本完整呈現案例研究。包含帳戶建立、驗證、電子郵件發送、註冊後的圖書搜尋/預訂(使用 alt 判斷可用性),以及通知選項。
@startuml
標題 在線圖書館 – 新使用者註冊與圖書預訂序列圖
skinparam monochrome true
skinparam shadowing false
skinparam sequenceMessageAlign center
autonumber “[0]”
角色 顧客
參與者 “瀏覽器” 作為 UI
參與者 “圖書館應用程式” 作為 App
參與者 “使用者資料庫” 作為 UserDB
參與者 “圖書目錄” 作為 Catalog
參與者 “電子郵件服務” 作為 Email
顧客 → UI:存取註冊頁面
啟用 UI
UI → App:submitRegistration(姓名, 電子郵件, 密碼)
啟用 App
App → UserDB:checkEmailExists(電子郵件)
啟用 UserDB
UserDB → App:exists = false / true
停用 UserDB
若 電子郵件已存在
App → UI:returnError(「電子郵件已註冊。請登入或使用其他電子郵件。」)
UI → 顧客:顯示錯誤訊息
‘ 已移除:destroy App → 不需要 + 在 alt 分支中導致解析器問題
否則 註冊有效
App -> UserDB: createUserAccount(姓名, 電子郵件, 散列密碼)
啟用 UserDB
UserDB –> App: userId, 帳戶已建立
停用 UserDB
App -> Email: sendWelcomeEmail(userId, email, 激活連結)
啟用 Email
Email –> App: 電子郵件已發送
停用 Email
App -> UI: returnSuccess(“帳戶已建立!請查閱電郵以進行激活。”, userId)
UI –> Patron: 顯示成功訊息並重定向至登入/儀表板
‘ 登記後:圖書預約流程
選項:使用者繼續預約圖書
使用者 -> UI: 搜尋圖書(書名或作者)
UI -> App: searchBooks(查詢)
啟用 App
App -> 目錄: queryBooks(查詢)
啟用 目錄
目錄 --> App: 圖書清單(含可借閱狀態)
停用 目錄
若找到圖書
若有必要則循環調整搜尋
App --> UI: displayResults(圖書清單)
UI --> 使用者: 顯示圖書清單
使用者 -> UI: 選擇圖書並申請預約
UI -> App: reserveBook(圖書ID, 使用者ID)
結束
App -> 目錄: checkAvailability(圖書ID)
目錄 --> App: 可用 = true/false
若可借閱
App -> 目錄: placeHold(圖書ID, 使用者ID, 預約日期)
啟用 目錄
目錄 --> App: 預約成功, 預約ID
停用 目錄
App --> UI: displayConfirmation("圖書已預約!可於有庫存時取書。")
UI --> 使用者: 顯示成功訊息
否則 不可借閱
App --> UI: offerNotification("圖書暫無庫存。有庫存時通知我嗎?")
使用者 -> UI: 確認通知
UI -> App: subscribeNotification(圖書ID, 使用者ID)
App -> 目錄: addToWaitlist(圖書ID, 使用者ID)
目錄 --> App: 已加入等候名單
App --> UI: confirm("通知已設定。")
結束
否則 無圖書找到
App --> UI: displayNoResults("無相符結果。請嘗試其他關鍵字。")
結束
停用 App
結束
結束
停用 UI
@enduml
如何使用此 PlantUML 程式碼
貼上至 https://www.plantuml.com/plantuml/uml/ 以立即渲染。
在 Visual Paradigm Desktop: 新的順序圖 → 工具 → 匯入 → PlantUML → 貼上 → 產生並視覺化編輯。
自訂:新增顏色(skinparam sequenceArrowThickness 2),參與者樣式(<<database>>),或移除 單色 以進行樣式輸出。

前往 chat.visual-paradigm.com.
使用詳細提示(或將上方的 PlantUML 粘貼為起始點):
為線上圖書館生成 UML 序列圖:新使用者以姓名/電子郵件/密碼註冊,系統檢查電子郵件唯一性,於資料庫中建立帳戶,並發送歡迎郵件。接著使用者搜尋/預訂書籍——若可取得則保留,否則提供等候名單通知。包含重複電子郵件的 alt 分支,註冊後可選擇預訂,以及搜尋精煉的迴圈。
AI 輸出視覺圖形 + PlantUML 程式碼。迭代:
「為資料庫操作新增激活條和註解。」
「將 BookCatalog 設為具樣式的外部服務。」
匯出 PlantUML 以進行下一步。
啟動 Visual Paradigm 桌面版.
建立或匯入序列圖(貼上 PlantUML → 產生)。
工具 > 應用程式 > 序列圖優化工具.
提示/優化:「將此圖書館註冊/預訂序列優化為分層架構:分離 UI/檢視層、控制器層、服務層(例如 UserService、ReservationService)、儲存庫/資料庫層。」
AI 擴展生命線(例如:LibraryApp → RegistrationController → UserService → UserRepository;新增詳細呼叫如 hashPassword()、validateInput())。
編輯:新增註解、樣式(<>、<>),調整片段。
存取online.visual-paradigm.com→ 建立 OpenDocs 頁面(「圖書館系統 – 新手引導與預約流程」)
插入圖表:使用 AI 生成或匯入 PlantUML/優化版本。
嵌入:新增文字區段(用例敘述、前置條件如「使用者未登入」、後置條件「帳戶已啟用 + 已完成預約」)
分享:邀請團隊成員提供意見,追蹤版本
在桌面端:優化版面配置(自動對齊)、啟用層級編號、新增回傳類型(例如::User user)
連結模型:追蹤至用例圖(「註冊新讀者」、「預約書籍」)
匯出:用於規格說明的 PNG/PDF,以及用於版本控制的 .vpp 專案
這個新的案例研究提供了一個全新的、以教育為導向的範例,同時展現了 Visual Paradigm AI 工具在快速且精確的 UML 建模方面的優勢。立即渲染 PlantUML 程式碼以視覺化結果——若你想要變體(例如:加入圖書館員審核步驟),只需提出要求!
