「コンテキストダイアグラム(Context Diagram)」は要件定義・システム分析の分野で広く使われるダイアグラムです。
コンテキスト図とも呼ばれるこのダイアグラムは、対象システムとその外部環境との関係を可視化するための最高レベルのデータフロー図です。
本記事では、コンテキストダイアグラムの書き方・作成方法・実践的な活用法まで詳しく解説していきます。
コンテキストダイアグラムとは何か?基本的な定義と目的
それではまず、コンテキストダイアグラムの基本的な定義と目的について解説していきます。
コンテキストダイアグラムとは、開発するシステムの全体的な「コンテキスト(文脈・環境)」を示す最高抽象レベルのデータフロー図(DFD Level 0)であり、システムと外部エンティティの間のデータのやり取りを単純な図形と矢印で表現したものです。
コンテキストダイアグラムとコンテキスト図は同じ概念を指しており、DFD(Data Flow Diagram)の最上位レベルとして位置づけられることが多いです。
このダイアグラムの主な目的は「システムが何をするかではなく、システムが何とやり取りするか」を明確にすることであり、システムの境界線(スコープ)を合意するための強力なコミュニケーションツールとして機能します。
要件定義書・システム設計書・提案書などの冒頭に掲載されることが多く、開発に関わるすべての関係者(技術者・ビジネス担当者・発注者・ユーザー)がシステムの全体像を素早く把握するための入口として機能するのです。
コンテキストダイアグラムと他のダイアグラムとの違い
コンテキストダイアグラムは似たような目的を持つ他のダイアグラムとどのように異なるかを理解しておくことが重要です。
DFD(データフロー図)との関係では、コンテキストダイアグラムはDFDの最上位レベル(Level 0)であり、システム内部のプロセスを展開したDFD Level 1・Level 2などの詳細図の出発点となります。
UMLのユースケース図との違いは、ユースケース図がシステムの機能(ユースケース)とそれに関わるアクターの関係を示すのに対し、コンテキストダイアグラムはデータの流れとシステムの境界に焦点を当てている点です。
システムアーキテクチャ図との違いは、アーキテクチャ図がシステムの内部構造・コンポーネントの関係を示すのに対し、コンテキストダイアグラムはシステム内部を「ブラックボックス」として扱い、外部との接点のみを表現します。
このシンプルさと高い抽象度が、コンテキストダイアグラムを技術的な知識がなくても理解しやすい「ビジネス寄りのダイアグラム」として位置づける理由となっているでしょう。
コンテキストダイアグラムの作成が必要なシーン
コンテキストダイアグラムを作成することが特に有効な場面を理解しておきましょう。
新規システムの要件定義フェーズでは、開発するシステムのスコープ・外部インターフェース・主要なデータフローを明確化するための最初の成果物としてコンテキストダイアグラムを作成します。
既存システムのリプレース・モダナイゼーションプロジェクトでは、現状の「AsIs」コンテキストダイアグラムと将来の「ToBe」コンテキストダイアグラムを並べることで、変更点と影響範囲を明確に伝えることができます。
RFP(提案依頼書)や提案書の作成では、提案するシステムソリューションの全体像を発注者に分かりやすく説明するためのビジュアルとして活用されます。
システム統合・連携プロジェクトでは、新しいシステムが既存のシステム群とどのように接続されるかを示すために、コンテキストダイアグラムが関係者間の認識合わせに役立てられるのです。
コンテキストダイアグラムの書き方と作成ステップ
続いては、コンテキストダイアグラムの具体的な書き方と作成ステップについて確認していきます。
正確なコンテキストダイアグラムを効率よく作成するための実践的な手順を解説します。
図記法の標準とツールの選択
コンテキストダイアグラムの図記法には複数の流派がありますが、最もよく使われるのはGane-Sarsonの表記法とYourdon-DeMarcoの表記法です。
Gane-Sarsonの表記法ではプロセス(システム)を角丸長方形で表し、外部エンティティを長方形・データフローを矢印で表します。
Yourdon-DeMarcoの表記法ではプロセスを円(バブル)で表し、外部エンティティを長方形・データフローを矢印で表すというシンプルな記法です。
【コンテキストダイアグラムの主要要素と図記法】
プロセス(システム):円(Yourdon流)または角丸長方形(Gane-Sarson流)
外部エンティティ:長方形(両表記法共通)
データフロー:矢印(データ名をラベルとして付与)
データストア:DFD Level 0では通常は記載しない
作成ツールとしては、draw.io(diagrams.net)が無料で高機能なため最もお勧めです。Lucidchart・Microsoft Visio・Miro・Confluence(Gliffy)なども一般的に使用されます。
チームでのコラボレーション作成ではMiroやLucidchartのリアルタイム共同編集機能が便利であり、リモートワーク環境でのワークショップ形式でのコンテキストダイアグラム作成に活用されているでしょう。
失敗しないコンテキストダイアグラム作成の注意点
コンテキストダイアグラムを作成する際によくある失敗と注意点を理解しておきましょう。
システム内部のプロセスを記載してしまうのは最も多いミスのひとつです。コンテキストダイアグラムはLevel 0のDFDであり、システム内部の詳細は一切記載せず、「システムは何をするか(ブラックボックス)」ではなく「外部と何をやり取りするか」に徹する必要があります。
外部エンティティの見落としも重要な問題で、特にシステムが依存する外部サービスやバッチ連携・バックグラウンド処理での連携相手を忘れがちです。
データフローの矢印の方向を間違えることも頻繁に起こるため、「データがどちらに流れるか(送信元から送信先へ)」を正確に描くことが必要です。
図が複雑になりすぎるのも避けるべき点で、外部エンティティが多い場合は関連するエンティティをグループ化したり、図を分割(システム別・機能別)して可読性を保つことが重要なのです。
コンテキストダイアグラムから詳細設計への展開
コンテキストダイアグラム(DFD Level 0)を出発点として、より詳細な設計へと展開していく方法を理解しておきましょう。
DFD Level 1では、コンテキストダイアグラムの単一のプロセス(システム)を「分解」し、主要なサブプロセス(機能ブロック)と各サブプロセス間・外部エンティティ間のデータフローを描きます。
各サブプロセスはさらにLevel 2・Level 3と分解できますが、実用上はLevel 1〜2程度で十分なケースが多く、過度な分解は管理コストを増大させます。
コンテキストダイアグラムで特定した外部エンティティとのデータフローは、詳細な「インターフェース定義書(API仕様・データ形式・通信プロトコルなど)」の作成に直接つながり、要件定義から設計への橋渡し役となります。
コンテキストダイアグラムの最大の価値は「技術的な詳細を持ち込まずに、ビジネス関係者と開発者が同じ図を見て議論できる」点にあります。要件定義の最初にコンテキストダイアグラムをワークショップ形式で共同作成することで、スコープの合意・外部インターフェースの特定・認識の齟齬解消を効率的に行うことができます。これがシステム開発の後工程での手戻りを最小化するための最も費用対効果の高い投資のひとつです。
まとめ
本記事では、コンテキストダイアグラムの基本定義・他のダイアグラムとの違い・作成ステップ・図記法・詳細設計への展開について解説しました。
コンテキストダイアグラムはシステムの外部環境・外部エンティティとのデータフローを最高抽象レベルで可視化する強力なツールであり、要件定義・スコープ合意・インターフェース設計の出発点として不可欠な成果物です。
技術者もビジネス担当者も共に理解できるシンプルな図法を活用して、プロジェクト関係者全員の認識を揃えることが、高品質なシステム開発の確実な第一歩となるでしょう。