シナリオの説明
新しい利用者(学生または会員)がオンライン図書館ポータルにアクセスしてアカウントを作成します。氏名、メールアドレス、パスワードなどの個人情報を入力し、システムは一意性を検証(例:メールアドレスがすでに登録済みでないか)し、データベースにアカウントを作成して、ウェルカム/アクティベーションメールを送信します。正常に登録後、ユーザーはタイトルまたは著者で書籍を検索し、在庫状況を確認し、利用可能であれば予約(保留)します。書籍が利用不可の場合、その書籍が利用可能になったときに通知する機能を提供します。処理はUI上に確認メッセージを表示することで終了します。
このフローは大学・公共図書館システムで一般的であり、ユーザーのオンボーディングと主要リソースとのインタラクションを示しています。
UMLシーケンス図の主要な概念(本例に関連)
ライフライン — 参加者(例::User、:Browser、:LibraryApp)のための垂直の破線。
メッセージ — 呼び出しのための矢印:同期(実線で矢頭が塗りつぶし →)、返信(破線 <–)、オブジェクト作成(新しいライフラインへの破線矢印で「create」を示す)。
アクティベーションバー — オブジェクトが処理中であることを示す(アクティベート/デアクティベート)。
Altフラグメント — 条件付き論理(例:[登録成功] と [メールアドレスはすでに存在] の比較)。
Optフラグメント — オプションの動作(例:[ユーザーが即座に予約を選択する])。
ループ — 反復的な処理のため(例:検索結果がなければ絞り込みを繰り返す)。
アクター — 人間のユーザー(棒人間)。
返信メッセージ — 結果を戻すための破線矢印。
時間の流れ上から下へ.
参加者(ライフライン):
利用者(アクター)
ブラウザ(フロントエンド/UI)
LibraryApp(アプリケーション/コントローラ層)
UserDB(アカウント用データベース)
BookCatalog(本と予約のためのデータベース/サービス)
EmailService(外部通知サービス)
このPlantUMLスクリプトはケーススタディを完全に表現しています。アカウント作成、検証、メール送信、登録後の本検索/予約(在庫状況のalt)、通知のオプションを含んでいます。
@startuml
タイトル オンライン図書館 – 新規ユーザー登録および本予約シーケンス図
skinparam monochrome true
skinparam shadowing false
skinparam sequenceMessageAlign center
autonumber “[0]”
actor パトロン
participant “ブラウザ” as UI
participant “図書館アプリ” as App
participant “ユーザーDB” as UserDB
participant “本カタログ” as Catalog
participant “EmailService” as Email
パトロン -> UI: 登録ページにアクセス
activate UI
UI -> App: submitRegistration(名前, メール, パスワード)
activate App
App -> UserDB: checkEmailExists(メール)
activate UserDB
UserDB –> App: 既存 = false / true
deactivate UserDB
alt メールはすでに存在
App –> UI: returnError(“メールはすでに登録されています。ログインするか、別のメールを使用してください。”)
UI –> パトロン: エラーメッセージを表示
‘ 削除: destroy App → 必要ない上、altブランチでパーサーの問題を引き起こしていた
else 登録が有効
App → UserDB: createUserAccount(名前, メールアドレス, ハッシュ化されたパスワード)
UserDBをアクティブ化
UserDB → App: userId, アカウント作成完了
UserDBを非アクティブ化
App → Email: sendWelcomeEmail(userId, メールアドレス, アクティベーションリンク)
Emailをアクティブ化
Email → App: メール送信完了
Emailを非アクティブ化
App → UI: returnSuccess(“アカウント作成完了!アクティベーション用メールを確認してください。”, userId)
UI → パトロン: 成功メッセージを表示し、ログイン/ダッシュボードにリダイレクト
‘ 登録後:書籍予約フロー
ユーザーが書籍の予約を進める
パトロン → UI: 書籍を検索(タイトルまたは著者)
UI → App: searchBooks(検索キーワード)
Appをアクティブ化
App → カタログ: queryBooks(検索キーワード)
Catalogをアクティブ化
カタログ → App: 書籍リスト(在庫状況付き)
Catalogを非アクティブ化
alt 書籍が見つかった
ループ 必要に応じて検索を絞り込む
App → UI: displayResults(書籍リスト)
UI → パトロン: 書籍リストを表示
パトロン → UI: 書籍を選択し予約を依頼
UI → App: reserveBook(書籍ID, ユーザーID)
終了
App → カタログ: checkAvailability(書籍ID)
カタログ → App: 利用可能 = true/false
alt 利用可能
App → カタログ: placeHold(書籍ID, ユーザーID, 予約日)
Catalogをアクティブ化
カタログ → App: 予約保留完了, 予約ID
Catalogを非アクティブ化
App → UI: displayConfirmation("書籍の予約完了!在庫が空くまでお待ちください。")
UI → パトロン: 成功メッセージを表示
それ以外 利用不可
App → UI: offerNotification("書籍は現在利用できません。準備完了時に通知しますか?")
パトロン → UI: 通知を確認
UI → App: subscribeNotification(書籍ID, ユーザーID)
App → カタログ: addToWaitlist(書籍ID, ユーザーID)
カタログ → App: 待機リストに追加完了
App → UI: confirm("通知を設定しました。")
終了
else 書籍が見つからなかった
App → UI: displayNoResults("一致する書籍がありません。別のキーワードで試してください。")
終了
Appを非アクティブ化
終了
終了
UIを非アクティブ化
@enduml
このPlantUMLコードの使い方
https://www.plantuml.com/plantuml/uml/ に貼り付けて、即座にレンダリングしてください。
以下の環境でVisual Paradigm Desktop: 新しいシーケンス図 → ツール → インポート → PlantUML → 貼り付け → ビジュアルに生成・編集
以下の環境でVP Online またはAIチャットボット: プロンプトのベースとして使用するか、AIによる最適化のためにインポートする。
カスタマイズ:色を追加(skinparam sequenceArrowThickness 2)、参加者のスタereotype(<<database>>)、または削除モノクロスタイル付き出力用。

次へ移動:chat.visual-paradigm.com.
詳細なプロンプトを使用する(または上記のPlantUMLをスタート地点として貼り付ける):
オンライン図書館用のUMLシーケンス図を生成:新規ユーザーが名前/メールアドレス/パスワードで登録し、システムがメールの重複を確認し、DBにアカウントを作成し、ウェルカムメールを送信する。その後、ユーザーは本を検索・予約する。利用可能であれば予約を確定し、そうでなければ待機リスト通知を提示する。重複メール用のalt、登録後の予約オプション、検索の絞り込み用のループを含む。
AIは視覚的図 + PlantUMLコードを出力。繰り返し処理:
「データベース操作にアクティベーションバーとノートを追加。」
「BookCatalogをスタereotype付きの外部サービスにする。」
次のステップ用にPlantUMLをエクスポート。
起動:Visual Paradigm Desktop.
シーケンス図の作成/インポート(PlantUMLを貼り付け → 生成)。
ツール > アプリ > シーケンス図精緻化ツール.
プロンプト/精緻化:「この図書館登録/予約シーケンスをレイヤードアーキテクチャに精緻化する:UI/View、Controller、Service(例:UserService、ReservationService)、Repository/DBレイヤーを分離する。」
AIがライフラインを拡張(例:LibraryApp → RegistrationController → UserService → UserRepository;hashPassword()、validateInput()などの詳細な呼び出しを追加)。
編集:ノート、スタereotype(<>、<>)を追加し、フラグメントを調整。
アクセスonline.visual-paradigm.com→ OpenDocsページの作成(「図書館システム – オンボーディングおよび予約フロー」)
図を挿入:AIによる生成またはPlantUML/最適化版のインポートを使用する
埋め込み:テキストセクションを追加(ユースケースの物語、前提条件として「ユーザーがログインしていない」、事後条件として「アカウント有効 + 予約完了」)
共有:チームメンバーにコメントを依頼し、バージョンを追跡する
デスクトップ上で:レイアウトを最適化(自動整列)、階層番号を有効化、戻り値の型を追加(例::User user)
モデルをリンク:ユースケース図(「新規利用者登録」、「書籍予約」)へのトレーサビリティを確保
エクスポート:仕様書用にPNG/PDF、バージョン管理用に.vppプロジェクト
この新しい事例研究は、教育を重視した新鮮な例を提供するとともに、Visual ParadigmのAIツールが迅速かつ正確なUMLモデリングを可能にする様子を示しています。PlantUMLコードをレンダリングしてすぐに可視化できます。もし変更(例:図書館員の承認ステップを追加)をご希望の場合は、いつでもお申し付けください!
