シナリオの説明
新しい利用者(学生または会員)がオンライン図書館ポータルにアクセスしてアカウントを作成します。氏名、メールアドレス、パスワードなどの個人情報を入力し、システムは一意性を検証(例:メールアドレスがすでに登録済みでないか)し、データベースにアカウントを作成して、ウェルカム/アクティベーションメールを送信します。正常に登録後、ユーザーはタイトルまたは著者で書籍を検索し、在庫状況を確認し、利用可能であれば予約(保留)します。書籍が利用不可の場合、その書籍が利用可能になったときに通知する機能を提供します。処理はUI上に確認メッセージを表示することで終了します。
このフローは大学・公共図書館システムで一般的であり、ユーザーのオンボーディングと主要リソースとのインタラクションを示しています。
UMLシーケンス図の主要な概念(本例に関連)
-
ライフライン — 参加者(例::User、:Browser、:LibraryApp)のための垂直の破線。
-
メッセージ — 呼び出しのための矢印:同期(実線で矢頭が塗りつぶし →)、返信(破線 <–)、オブジェクト作成(新しいライフラインへの破線矢印で「create」を示す)。
-
アクティベーションバー — オブジェクトが処理中であることを示す(アクティベート/デアクティベート)。
-
Altフラグメント — 条件付き論理(例:[登録成功] と [メールアドレスはすでに存在] の比較)。
-
Optフラグメント — オプションの動作(例:[ユーザーが即座に予約を選択する])。
-
ループ — 反復的な処理のため(例:検索結果がなければ絞り込みを繰り返す)。
-
アクター — 人間のユーザー(棒人間)。
-
返信メッセージ — 結果を戻すための破線矢印。
-
時間の流れ上から下へ.
参加者(ライフライン):
-
利用者(アクター)
-
ブラウザ(フロントエンド/UI)
-
LibraryApp(アプリケーション/コントローラ層)
-
UserDB(アカウント用データベース)
-
BookCatalog(本と予約のためのデータベース/サービス)
-
EmailService(外部通知サービス)
シーケンス図用のPlantUMLコード例
この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>>)、または削除モノクロスタイル付き出力用。
Visual ParadigmのAIシーケンス図サポートを活用した開発プロセス全体
ステップ1:アイデーションと初期生成(最速:AIチャットボット – コンバーショナル)

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

UMLシーケンス図とAIサポート
- ソフトウェア設計におけるシーケンス図の包括的ガイド:この詳細なハンドブックのセクションでは、システムの動的動作をモデル化するためにシーケンス図を使用する目的、構造、およびベストプラクティスについて説明しています。
- シーケンス図とは何か? – UMLガイド:初心者向けの入門ガイドで、シーケンス図が時間経過にわたるオブジェクト間の相互作用を可視化する役割を説明しています。
- Visual Paradigmにおけるシーケンス図のアニメーション化 – チュートリアル:このチュートリアルでは、ソフトウェアのワークフローとシステム間の相互作用をより効果的に可視化するために、動的でアニメーション付きのシーケンス図を作成する手順を説明しています。
- Visual Paradigm – AI搭載のUMLシーケンス図:この記事では、プラットフォームのAIエンジンが、モデリングスイート内でユーザーがプロフェッショナルなUMLシーケンス図を即座に生成できるようにする仕組みを紹介しています。
- Visual ParadigmにおけるAI搭載のシーケンス図の最適化:このリソースでは、AIツールがユースケース記述を最小限の手作業で正確なシーケンス図に変換できる方法を探っています。
- Visual Paradigmでシーケンス図をマスターする:AIチャットボットチュートリアル:初心者向けのチュートリアルで、実際のeコマースチャットボットのシナリオを用いて、会話型の図の描き方を教えます。
- 包括的チュートリアル:AIシーケンス図最適化ツールの使い方:専用のAI機能を活用して、シーケンスモデルの正確性、明確さ、一貫性を高めるためのステップバイステップガイド。
- UMLシーケンス図によるMVCのモデル化方法:このガイドでは、Model、View、Controllerの各コンポーネント間の相互作用を可視化することで、システムのアーキテクチャの明確さを向上させる方法をユーザーに教えます。
- Visual Paradigm:メインフローと例外フロー用の別々のシーケンス図:この技術的投稿では、モデルの可読性を維持するために、メインフローと代替/例外フローを別々の図でモデル化する方法を説明しています。
- PlantUML シーケンス図ジェネレータ | ビジュアルビルダーツール: ステップバイステップのウィザードを使用して、参加者とメッセージを定義することで、PlantUMLベースのシーケンス図を作成できるビジュアルジェネレータの概要。











