「え、そのデータ、うちのシステムが持つの?」
「外部システムとの連携範囲が、思っていたのと全然違う……」

システム開発の現場で、要件定義の終盤になってから、このような「認識の食い違い」に肝を冷やした経験はありませんか?

複雑なシステムであればあるほど、最初に「どこからどこまでが自分たちの守備範囲か」という境界線を明確にすることが重要です。今回は、そのための最もシンプルで強力なツールである「システムコンテキストダイアグラム(コンテキスト図)」について、現場ですぐに使える実践的な書き方を解説します。

システムコンテキスト図とは?

システムコンテキスト図とは、データフロー図(DFD: Data Flow Diagram)の最上位(レベル0)にあたる図のことです。

開発対象となる「システム」を一つのプロセス(円)として中央に置き、その周囲にある外部の実体(人、組織、他のシステム)との間で、どのようなデータをやり取りするかを一枚の絵にまとめたものです。

いわば、システムの「外の世界とのインターフェース一覧」を可視化した地図と言えます。

データフロー図を構成する4つのアイテム

コンテキスト図は、以下の4つの要素で構成されます。これらを「最も高い視点」から配置していくのがポイントです。

アイテム表し方(記号)説明・役割
プロセスデータの加工や機能を表します。コンテキスト図ではシステムそのものを指し、内部の詳細はあえて書きません。
外部実体システムの外部にある「人」「組織」「他システム」です。データの発生源、または最終的な行き先(アクターや外部APIなど)になります。
データストアデータの保管場所です。システムが参照・更新するデータを示しますが、コンテキスト図では省略することもあります。
データフローデータの流れる方向です。やり取りされる「情報の名前」を記述します。「処理名」ではないのがポイントです。

PMがコンテキスト図を「最強の武器」と呼ぶ理由

なぜ、PMはこのシンプルな図を重視すべきなのでしょうか。それは、この図が「スコープ(責任範囲)」の合意形成において最大の威力を発揮するからです。

PMが得られる3つのメリット

  • スコープクリープの防止: 境界線を明確に引くことで、「それは範囲外だと思っていた」という後出しの要求を論理的に防げます。
  • ステークホルダーとの共通言語: 技術に詳しくない顧客とも「何が起きるか」を直感的に共有でき、最短で承認を得られます。
  • 外部依存関係の早期特定: 外部システムや他部署との接点が可視化されるため、インターフェース調整や先行手配を前倒しでき、遅延リスクを回避できます。

現場での失敗の多くは、詳細な画面やDB設計に早く入りすぎることです。まずはコンテキスト図で全体像を握り、「境界線」にハンコをもらうことが、プロジェクトを成功させる定石です。

【サンプル】システムコンテキスト図(レベル0)

コンテキスト図は最上位の図なので、あまり細かく書きすぎないのがコツです。システムと関連する人物や組織を境界線で繋ぎ、その間を流れるデータをすべて記述します。

作成の3ステップ

  1. 対象システムを中心に置く: ◯を一つ書き、システム名を記入します。
  2. 「外の世界」を書き出す: システムに関わる人物、組織、外部システム(外部実体)を周囲に配置します。
  3. データフローをつなぐ: アイテム間を流れるデータをすべて矢印で記述します。
システム コンテキスト ダイアグラム(データフロー図 レベル0)
システム コンテキスト ダイアグラム(データフロー図 レベル0)

【サンプル】データフロー図(レベル1)

コンテキスト図で全体像を合意したら、次はシステム内部の「深掘り」を行います。レベル0の「◯(システム)」を、具体的な機能プロセスに分解したものが「レベル1」です。

レベル1の構成例(注文管理システムの場合)

  • 機能プロセス: 受注処理、出荷処理、納品処理などの具体的な機能に分解。
  • データストア: 注文データ、在庫データ、納品データなど、システム内部で管理する情報を追加。
  • 詳細なフロー: 「取引先」から「受注処理」へ注文情報が入り、「在庫データ」を確認して「出荷処理」へ繋ぐ、といった具体的なデータの流れを描きます。
データフロー図 レベル1
データフロー図 レベル1

レベル0とレベル1の整合性を保つコツ

詳細化する際に最も重要なのは、「レベル0で引いた矢印(データフロー)が、レベル1でも漏れなく描かれていること」です。

  • フローを消さない: 詳細化に集中するあまり、外部とのやり取りを消してしまわないよう注意しましょう。
  • 段階的な詳細化: サブシステムへの分解 → 具体的な処理機能への分解、という手順を踏むことで、設計の整合性を保ちながら共通理解を深めることができます。
システム コンテキスト ダイアグラム
(データフロー図 レベル0)
データフロー図 レベル1
※わかりやすく色分けしています。(レベル2以降は同様)

実務で役立つアドバイス:失敗を防ぐポイント

ユースケース図との使い分け

  • ユースケース図: 「誰(人)」がシステムを使って「何をするか(振る舞い)」に焦点。
  • コンテキスト図: システムが「どんな情報」を「どこ」とやり取りするか(データの境界線)に焦点。

操作感を議論する前に、まずコンテキスト図で「データの出入り」を確定させるのが、手戻りを防ぐ近道です。

現場で陥りやすい「落とし穴」

  • 処理名を書いてしまう: 矢印には「出荷する」ではなく「出荷指示」などの名詞(データ名)を書くようにしましょう。
  • 内部DBを外部実体に書く: あくまでシステムの「外」にあるものだけを四角(□)で書きます。

まとめ:境界線を引くことが成功への第一歩

システムコンテキスト図は、一見すると「当たり前」のことを書いているように見えます。しかし、その「当たり前」を可視化し、関係者全員で共有することこそが、プロジェクトを成功に導く第一歩です。

要件定義のチェックリスト

  • [ ] すべての外部システム・アクターが網羅されているか?
  • [ ] システムの「外」にあるデータと「中」にあるデータが明確か?
  • [ ] レベル0のデータフローはレベル1と整合しているか?

次に読むべきおすすめ記事

システム全体の「情報の境界線」が見えたら、次は具体的な「ユーザーの振る舞い」や「スケジュール」の整理に進みましょう。

要件定義のやり方完全ガイド|初心者でも失敗しない全7工程を徹底解説「要件定義って何から始めればいい?」という悩みを解消。家族旅行の例えで、初心者でも基礎から実践まで学べる要件定義の全プロセスを網羅。プロジェクトを成功に導くための実践ロードマップです。 ...
ABOUT ME
hidechi
メーカーに入社し、その後IT部門が分社独立、情報システムエンジニアとして30年以上勤務しています。これまで多くのプロジェクトに携わり、それらの経験から得た知見を覚え書きとして記録することで、厳しい現場で奮闘しているSEの皆さんの一助となれば幸いです。