C4モデルとは何か?
C4モデルは、ソフトウェアアーキテクチャを説明し、共有するためのシンプルで視覚的な方法です。これは以下の意味です:
- コンテキスト – 全体像(システムを利用する人々や周囲に存在する他のシステム)
- コンテナ – 高レベルの技術的構成要素(Webアプリ、モバイルアプリ、データベースなど)
- コンポーネント – (オプション)各コンテナの内部構造
- コード – (オプション)クラス/実装レベル
チームやステークホルダーが詳細に溺れることなく、異なるズームレベルでシステムを理解するのを助けます。
以下では、実際の事例に最初の2つのレベル(コンテキストとコンテナ)を適用します医療予約システム.
なぜこのシステムが必要なのか?
従来の病院の予約スケジューリングは苦痛です:
- 患者は事務所営業時間中に電話をかけ、保留状態になる
- スタッフは紙や断片的なシステムを介して医師のスケジュールを手動で確認する
- 重複予約や来院しない(ノーショウ)は一般的である
- 患者が自身の医療概要を確認したり、ビデオ相談に参加したりする簡単な方法がない
- リマインダーが忘れられる → クリニックの時間が無駄になる
新しい医療予約システム患者に24時間365日でのセルフサービス予約、リアルタイムの空き状況確認、自動リマインダー、および遠隔医療や電子カルテ(EHR)との統合を提供することで、これらの問題を解決します。
主な参加者は誰か?
| 参加者 | 説明 |
|---|---|
| 患者 | 医療を必要とする人。予約の予約・変更・キャンセルを行う。仮想訪問に参加する |
| 医療スタッフ | スケジュールを管理し、患者を診察する医師、看護師、受付担当者 |
レベル1:システムコンテキスト図
これは3万フィートの視点です
@startuml
!include https://raw.githubusercontent.com/plantuml-stdlib/C4-PlantUML/master/C4_Context.puml
LAYOUT_TOP_DOWN()
LAYOUT_WITH_LEGEND()
タイトル システムコンテキスト図 – 医療予約システム
Person(patient, “患者”, “予約を予約し、ビデオ訪問に参加”)
Person(healthcare_staff, “医療スタッフ”, “医師、看護師、管理者”)
System(booking_system, “医療予約システム”, “予約、再スケジュール、予約のキャンセル、仮想相談のためのコアシステム”)
System_Ext(ehr_system, “EHRシステム”, “電子カルテ”)
System_Ext(telemedicine_platform, “遠隔医療プラットフォーム”, “ビデオ相談インフラ”)
System_Ext(schedule_system, “病院スケジュールシステム”, “医師・部屋のマスターカレンダー”)
System_Ext(messaging_system, “病院メッセージングシステム”, “SMS/メールゲートウェイ”)
Rel(patient, booking_system, “予約を予約・再スケジュールし、ビデオ通話に参加”)
Rel(patient, telemedicine_platform, “ビデオ相談を実施”)
Rel(patient, ehr_system, “自分の記録を閲覧(読み取り専用)”)
Rel(healthcare_staff, booking_system, “予約を管理”)
Rel(healthcare_staff, ehr_system, “患者記録を読み書き”)
Rel(healthcare_staff, schedule_system, “マスタースケジュールを閲覧”)
Rel(healthcare_staff, messaging_system, “通知を送信”)
Rel(booking_system, schedule_system, “リアルタイムの空き状況を確認・更新”)
Rel(booking_system, ehr_system, “患者識別子と基本データを同期”)
Rel(booking_system, messaging_system, “SMS/メールリマインダーを発動”)
@enduml

コンテキストの要点:私たちの予約システムは、患者、スタッフ、および4つの既存の企業システムをつなぐ中心的なハブです。
レベル2:コンテナ図
今、私たちのシステム境界内の主要な技術的要素を拡大表示します。

キーコンテナの説明
| コンテナ | 技術 | 責任 |
|---|---|---|
| Web予約アプリケーション | React + Node.js/Express | 患者とスタッフの両方で使用されるシングルページアプリ |
| モバイルアプリ | React Native | 患者向けのネイティブiOS/Android体験 |
| 遠隔医療モジュール | WebRTC + シグナリングサーバ | セキュアなビデオ通話、待合室、画面共有 |
| スケジュールエンジン | Python/Django | コアビジネスロジック:重複予約の防止、バッファ時間、休日対応 |
| 通知サービス | Node.js + Redis + BullMQ | 24時間前、2時間前、15分前のリマインダーを確実に配信 |
| 患者データベース(MySQL) | MySQL 8 | 個人情報、同意、好む言語 |
| 予約データベース(PostgreSQL) | PostgreSQL 15 | すべての予約と変更の改ざん不可能な監査ログ |
それぞれの図はいつ使用するのか?
| 状況 | どの図を表示するか |
|---|---|
| 病院の幹部や患者と話すとき | コンテキスト図(全体像、技術用語なし) |
| 新規開発者のオンボーディング | コンテナ図(コードの配置場所を示す) |
| セキュリティおよびコンプライアンスの境界について議論する | コンテナ(内部システムと外部システムの明確な区別) |
| 技術スタックまたはクラウドデプロイメントの選定 | コンテナ図(データベース、メッセージキューなどを示す) |
| 外部ベンダーとのRFPまたは契約書の作成 | コンテキスト + コンテナ |
使い方Visual ParadigmのAI搭載ビジュアルモデリングチャットボット医療予約システムのC4モデリングプロセス全体を簡素化するため
手作業による図面作成や文書作成に何時間も費やす作業を、AIとの10~15分の会話に変える、現実世界でのステップバイステップのワークフローです。

ステップ1:単一のプロンプトでゼロから始める(30秒)
ただ、以下をVisual ParadigmのAIチャットに打ち込むだけです:
「現代の医療予約システム用に完全なC4モデル(コンテキスト図 + コンテナ図)を作成してください。エイクター:患者と医療スタッフ(医師、看護師、事務員)。システムは患者が24時間365日予約の予約・再スケジュール・キャンセルが可能であり、遠隔医療のビデオ通話に参加し、自動リマインダーを受け取り、自身の医療サマリーを閲覧できます。既存のEHRシステム、病院マスタースケジュールシステム、メッセージゲートウェイと連携しています。最新の技術スタックを使用:Reactウェブアプリ、React Nativeモバイルアプリ、Node.jsバックエンド、Pythonスケジューリングエンジン、PostgreSQL + MySQLデータベース、ビデオ通話にはWebRTCを使用。」
→ 10秒未満で、美しく適切にレイアウトされたC4コンテキスト図 と C4コンテナ図 — 以前に見たPlantUMLの例とほぼ同じですが、すでにレンダリング済みでプレゼンテーション用に準備完了です。
ステップ2:自然な命令で即座に修正(2~5分)
今すぐ図と会話しましょう:
- 「SMSおよびメールリマインダーを送信する通知サービスコンテナを追加」
- 「通知サービスを病院メッセージシステムに接続」
- 「WebRTCを使用して遠隔医療モジュールを表示」
- 「データベースを患者DB(MySQL)と予約DB(PostgreSQL)に分割」
- 「『医療スタッフ』を『医師/看護師/受付』に名前変更し、アイコンを付与」
- 「レイアウトを上から下へに変更し、凡例を追加」
- 「ウェブアプリとモバイルアプリの両方をバックエンドにHTTPSで接続」
すべてのコマンドが即座にライブ図を更新します — ドラッグも、再配置も、構文エラーもありません。
ステップ3:図に関する質問を投げかける(即時インサイト)
まるで隣に知識豊富なアーキテクトが座っているかのように扱ってください:
- 「このシステムが依存している外部システムは何か?」
- 「すべてのコンテナとその技術をリストアップして」
- 「主要なセキュリティ境界は何か?」
- 「このアーキテクチャの1ページの経営者向け要約を生成して」
- 「私たちのRFP用に3段落の記述を書いて」
すぐに、提案書やConfluence、PowerPointにコピー&ペーストできる完璧な文章が得られます。
ステップ4:必要に応じて完全なドキュメントを取得(30秒)
AIに伝える:
「このC4モデルのためのプロフェッショナルなアーキテクチャドキュメントを生成してください。コンテキストの説明、コンテナの説明、重要な設計意思決定、技術選定を含む。」
数秒で、完全で美しくフォーマットされたMarkdown形式またはWord対応のドキュメントを受け取れます。
ステップ5:チーム協働が必要なときにワンクリックでプロツールへエクスポート
設計が承認されたら:
- クリック「Visual Paradigm Desktopで開く」または「.vppプロジェクトとしてエクスポート」
- すべてのモデル(形状、レイアウト、メモ、用語集を含む)が、チームレビュー、バージョン管理、コンポーネント図やシーケンス図の追加、PDF/PNGの生成などに使える完全なVisual Paradigmツールで開かれます。
なぜこれが医療プロジェクトにおいて画期的なのか
| 従来の方法(2~8時間) | Visual Paradigm AIを使用(10~15分) |
|---|---|
| PlantUML / draw.io / Lucidchartを開く | ただ一パラグラフを入力する |
| すべてのボックスと矢印を手動で作成 | AIが95%正確な図を即座に作成 |
| レイアウトや配置を何度も修正 | AIは編集後も完璧なレイアウトを維持 |
| ドキュメントを別途作成 | 質問 → 完璧なドキュメントを即座に取得 |
| ツール間でのコピー&ペースト | ワンクリックで機能豊富なデスクトップツールへスムーズに移行 |
結果:ソリューションアーキテクト、エンタープライズアーキテクト、開発チームは、次の会議を予約する時間よりも早く、ステークホルダー向けのC4図とドキュメントを生成できるようになりました。
今すぐ開始:Visual Paradigm Onlineへ → 「AIチャット」→ 上記のプロンプトを貼り付け、数秒で魔法が起こる様子を観察してください。
要約
わずか2つの簡単な図を用いることで、今や明確に答えられるようになりました:
- システムが何を行うか、そして誰が利益を得るか
- 既存の病院IT環境にどのように適合するか
- 構築または統合が必要な主要なアプリケーションやデータベースは何か
この明確さにより、ビジネスステークホルダー、アーキテクト、開発チーム間の誤解が劇的に減少します——これがC4モデルが現代のソフトウェアアーキテクチャドキュメントの事実上の標準となった理由です。