「コンテキスト図(Context Diagram)」は、システム開発・要件定義の初期フェーズで作成される重要なダイアグラムです。
システム全体の「コンテキスト(文脈・環境)」を視覚的に表現するこの図は、スコープの明確化と利害関係者との認識合わせに欠かせないツールとなっています。
本記事では、コンテキスト図の意味・構成要素・作成手順・活用法まで詳しく解説していきます。
コンテキスト図とは何か?基本的な概念と役割
それではまず、コンテキスト図の基本的な概念と役割について解説していきます。
コンテキスト図(Context Diagram)とは、開発対象のシステムと、そのシステムが関わる外部エンティティ(人・組織・外部システム)との関係とデータのやり取りを示す最高レベルのデータフロー図(DFD:Data Flow Diagram Level 0)です。
「システムは何とやり取りするのか」「システムの境界はどこか」「何が入力されて何が出力されるのか」をひとつの図で明確にする役割を担っており、システム開発の要件定義フェーズにおいて最初に作成されることが多いです。
コンテキスト図の特徴は「システム内部の詳細は記載しない」点にあり、開発対象システムを単一のプロセス(円またはバブル)として表現し、外部との接点のみにフォーカスします。
これにより、技術的な詳細を理解していないビジネスの利害関係者・発注者・エンドユーザーとも共通の理解を構築するためのコミュニケーションツールとして機能するのです。
コンテキスト図の主な構成要素
コンテキスト図は非常にシンプルな図記法で構成されており、主に3つの要素から成り立っています。
第1の要素が「システム(Process)」であり、開発対象のシステム全体を表す中央の円(またはバブル)として描かれます。この円の中にシステムの名前(例:「在庫管理システム」「受発注システム」)が記入されます。
第2の要素が「外部エンティティ(External Entity)」であり、システムの外部に存在してシステムとデータをやり取りする人・組織・外部システムを四角形で表します(例:顧客・倉庫担当者・基幹システム・外部決済サービスなど)。
第3の要素が「データフロー(Data Flow)」であり、システムと外部エンティティの間でやり取りされるデータを矢印で表します(矢印の方向はデータの流れる方向を示し、ラベルにデータの名称を記入します)。
これら3つの要素だけでコンテキスト図は構成されており、その単純さがシステム全体の「コンテキスト(文脈・環境)」を誰にでも直感的に伝えられる強みとなっているでしょう。
コンテキスト図が解決する課題
コンテキスト図を作成することで、システム開発における以下のような重要な課題を解決できます。
スコープの明確化では、「このシステムが扱うことと扱わないこと」の境界線を図として明示することで、開発チームと発注者の間でスコープに関する認識のズレを防ぎます。
インターフェースの特定では、外部エンティティとのデータのやり取りをすべて可視化することで、後から発覚するインターフェース要件の見落としを防止できます。
利害関係者との合意形成では、技術的な詳細を持ち込まない高レベルな図として、ビジネス側の関係者にも理解しやすい形でシステムのコンテキストを説明・合意する際に活用できます。
要件定義の出発点として、コンテキスト図で特定した外部エンティティとデータフローをもとに詳細な要件(機能要件・非機能要件)を展開していく起点となる役割を担っているのです。
コンテキスト図の作成手順
続いては、コンテキスト図の具体的な作成手順について確認していきます。
体系的なステップを踏むことで、漏れのない正確なコンテキスト図を効率よく作成できます。
ステップ1:システムの特定とスコープ定義
コンテキスト図の作成はまず「何のシステムを描くか」を明確にすることから始まります。
開発対象のシステムの名称・目的・主な機能の概要を整理し、中央の円に記入するシステム名を決定します。
この段階での重要な問いは「このシステムが担当する範囲はどこまでか」であり、隣接する業務プロセスや外部サービスとの境界線を明確にすることが必要です。
例えば「ECサイトの注文管理システム」を描く場合、「支払い処理は外部決済サービスに委任する」「在庫管理は別の在庫管理システムが担当する」といった境界の定義が最初のステップとなります。
スコープが曖昧なまま作業を進めると、後から外部エンティティやデータフローが大量に追加・変更されることになるため、ここでの丁寧な議論が全体の作業効率を左右するでしょう。
ステップ2:外部エンティティの特定
次に、システムとやり取りをするすべての外部エンティティを特定します。
外部エンティティを特定するためのアプローチとして「システムに情報を提供するのは誰か?」「システムから情報を受け取るのは誰か?」「システムを直接使用する人や組織は誰か?」という質問を投げかけると効果的です。
一般的な外部エンティティの例としては、エンドユーザー(顧客・社員)・管理者・外部APIやサービス(決済・物流・認証)・連携する他のシステム(基幹システム・CRM・ERP)・規制当局などが挙げられます。
外部エンティティは「システムの外側にある」という定義を厳密に守り、システム内部の機能やモジュールを外部エンティティとして記載しないように注意が必要です。
すべての外部エンティティを図に配置する際は、中央のシステムの周囲に均等に配置し、視認性の高いレイアウトを心がけるとよいでしょう。
ステップ3:データフローの定義と図の完成
外部エンティティが揃ったら、各外部エンティティとシステムの間のデータフローを定義します。
データフローには「何のデータが・どの方向に・流れるか」を明確に記載します。例えば「顧客→システム:注文情報」「システム→顧客:注文確認メール」のように具体的なデータ名を矢印のラベルとして付与します。
【コンテキスト図の例:ECサイト注文管理システム】
中央:注文管理システム
外部エンティティ①:顧客 → 注文情報、キャンセル依頼 → システム
外部エンティティ①:システム → 注文確認、配送状況 → 顧客
外部エンティティ②:決済サービス ← 決済リクエスト ← システム
外部エンティティ②:決済サービス → 決済結果 → システム
外部エンティティ③:在庫管理システム ← 在庫確認リクエスト ← システム
外部エンティティ③:在庫管理システム → 在庫情報 → システム
データフローが多すぎると図が複雑になりコンテキスト図の「シンプルさ」が失われるため、主要なデータフローに絞り込むことが品質の高い図を作成するコツです。
Lucidchart・draw.io(diagrams.net)・Miro・Microsoft Visioなどのダイアグラムツールを使うと、プロフェッショナルな見栄えのコンテキスト図を効率よく作成・共有できるでしょう。
まとめ
本記事では、コンテキスト図の基本概念・構成要素・作成手順・活用法について解説しました。
コンテキスト図はシステムと外部エンティティとの関係・データフローをシンプルに可視化する最高レベルのDFDであり、スコープ定義・インターフェース特定・利害関係者との合意形成において不可欠な成果物です。
3つの要素(システム・外部エンティティ・データフロー)から成るシンプルな図法を正しく理解し、活用することが要件定義の品質向上とスムーズなシステム開発につながるでしょう。