DFDとは?基本からレベルの概念、書き方まで初心者向けに解説

DFDは、システムのデータフローとプロセスを視覚的に表現するための基本的なツールです。DFDは、主にソフトウェア開発やビジネスプロセスの分析で用いられ、システム内でのデータの流れや処理の仕組みを明確にします。

この記事では、DFDの基本的な概念、主要な要素、そしてどのようにシステム全体の動作を表すのかを解説します。また、DFDのレベルの概念とその読み方、実際のDFDの書き方についても説明します。

DFDは初心者にとっても理解しやすいツールですが、初心者の方でも理解できるようにDFDの実例も用いて分かりやすく解説します。

DFDとは

この章では、DFDの初歩的な知識である「DFDとは」から、実際にDFDを書くメリットまで解説します。まずは、DFDを理解するうえで基本的な内容を習得しましょう。

DFDとは:Data Flow Diagramの概要

DFDとは、Data Flow Diagramの略で「データフロー図」と訳します。その名の通り、データとその流れを表現するための手法です。

基本:プロセス中心アプローチの図法

DFDはシステム開発の3つのアプローチのうち「プロセス中心アプローチ」で使われる図法です。システム内のデータの流れと処理プロセスをモデル化して、相互関係を視覚化するために効果的です。

また、システム内のデータの移動パターンや異なるプロセス間の相互作用も明らかになります。

プロセスモデルの記述にも使用

DFDはプロセス中心アプローチの図法としてだけではなく、システム内でのデータの流れとプロセス間の相互作用を明確にするためにも用いられます。

データがどのように入力され、処理され、最終的な出力に至るかを視覚的に追跡できます。DFDは複雑なシステム内のデータの流れを分析し、理解を深めるための強力なツールとして機能します。

各プロセスの入出力を具体的に示すことで、システムの要件定義や設計を支援し、より効率的でエラーの少ない情報システムの構築を可能にするのです。

DFDを書くメリット

DFDを書くメリットには次のようなものがあります。

プロセス間のデータフローの明確化

DFDはシステム内でのデータの動きを視覚的に表現することで、プロセス間のデータフローを明確にします。DFDを書くことで、チームメンバー間での認識が共有化され、誤解を避けながら効率的な設計が可能になります。

システムの機能理解の促進

DFDはシステムの機能とプロセスの関係を具体化するため、開発者やステークホルダーがシステムの動作を総合的に理解しやすくなります。これは理解促進とコミュニケーションの両方において効果的です。

要件とプロセスの整合性の確認

DFDを書くことにより、初期の設計段階でシステム要件とプロセスの一貫性を検証できます。後のフェーズでのコスト増のリスクを避けながら、要件に適合する設計を行うことができます。

DFDの記法

DFDを書くための記法は主に 2つ存在しますが、記法の違いと言えるほどの相違点はありません。一部の要素(図形)が多少異なるだけです。

この章では、DFDの主要な記法である「Yourdon & Coad」と「Gane & Sarson」の記号について紹介します。

DFDの共通表記規則

後の章で詳しく説明しますが、DFDでは使用される要素(=図形)が定義されています。たとえば、データを渡すもの/データを受けるものを表す「源泉と吸収」、データの加工を表す「プロセス」などです。

DFDでは4つの要素しか使いませんので、直感的に読みやすいのが特徴です。

また、DFDは表現方法が標準化されており、次節で説明する記法によっても多少の違いしかありませんので、記法の違いがデメリットになることもないでしょう。

それぞれの記号の詳細は後述しますので、ここでは両記法の記号の違いをご覧ください。

Yourdon & Coadの記法

  • 外部エンティティ:長方形
  • プロセス:円
  • データストア:上下二重線
  • データフロー:→

Gane & Sarsonの記法

  • 外部エンティティ:長方形
  • プロセス:角が丸い長方形
  • データストア:縦線付きの長方形
  • データフロー:→

DFDの基本要素

DFDでは、基本的に4つの図形・記号が使われます。外部エンティティとプロセス、データストア、データフローです。この章で、実際のDFDを用いて説明します。

外部エンティティ(源泉と吸収)

外部エンティティはシステム外部のオブジェクトや組織、人物を表します。システムの入力源または出力の宛先となり、システムの境界を定義する役割を持ちます。

たとえば、顧客やサプライヤー、他のシステムなどが外部エンティティに相当します。これらのエンティティは、システムがどのように外部環境と相互作用するかを理解するために不可欠です。

プロセス

プロセスはシステム内でデータがどのように処理されるかを表します。各プロセスは通常、システムが実行する具体的な機能や活動を表し、円で図示されます。

プロセスは入力データを受け取り、それを何らかの形で変換し出力データを生成します。プロセスは、システムの動作を理解する上で中心となる要素です。

データストア

データストアは、システムによって生成または使用されるデータが一時的に保管される場所を表します。データベースやファイル、記録などが該当します。

データストアはデータがどのように保持され、アクセスされるかの詳細を表現し、プロセス間でのデータの一貫性と永続性を保証します。

データフロー

データフローは、システム内のデータがどのように移動するかを表す矢印で、外部エンティティからプロセスへ、プロセスからデータストアへ、またはその逆の流れを表します。

これはDFDにおいて非常に重要な要素であり、データの流れを追跡することで、システム内の情報の流れと各要素間の関係を明らかにします。

DFDのレベル概念

DFDには「レベル」の概念が存在します。

レベルの数値が小さいほど、システムの抽象度が高く(例:レベル0)表現され、数値が大きいほど、データフローが細分化され、より具体的かつ詳細に(例:レベル3)描写されます。

実際には、高レベルのDFDはおおざっぱな概観が描写され、より低いレベルのDFDに進むにつれて、データフローは詳細に分解されます。

右にいくほど詳細化
・レベル0(高レベル)→レベル2(低レベル)

レベル0

DFDのレベル0は「コンテキストレベル」ともいわれており、システムの全体像を単純に表現します。描写される外部エンティティもシステムの主要なものに限定されて、概要的なプロセスのみが表現されます。

レベル1

DFDのレベル1では、主要なプロセスとサブシステムが表現されます。レベル0の単一プロセスを複数のサブプロセスに分割して、それぞれのサブプロセス間のデータフローが描写されます。

レベル2

DFDのレベル2では、より詳細な内部プロセスが表現されます。レベル1のサブプロセスがより詳細なレベルで分割され、各プロセス内の具体的な機能や手順が描写されます。

DFDの読み方

DFDの基本要素、図形、記号を理解すると、DFDの読み方が容易になります。データフローを正確に追跡し、システムのプロセスを可視化することで、システムの全体的な動作を把握することができます。

この章では、DFDの基本的な読み方について説明します。

DFDの全体像の理解

DFDを読む際には、まず外部エンティティからプロセスへ、そしてデータストアを介してのデータの流れを追跡することから始めます。

この流れを追うことで、システムのどの部分が情報を生成し、どこで使用するかを把握することができます。DFDの全体像を把握することは、システムがどのように流れるのかを理解する第一歩です。

プロセスの分析

DFD内の各プロセスを分析することで、システム内でデータがどのように変換されるかを理解できます。

プロセスはシステムの機能やアクティビティを表し、データフロー図内でどのようにデータが処理されているかを表現します。それぞれのプロセスの入力と出力を分析することで、そのプロセスがシステム内でどのような役割を果たしているかが明確になります。

データフローの分析

データフローを分析することで、システム内でデータがどのように移動するかを理解することができます。

これには、外部エンティティからプロセスへのデータの移動、プロセスからデータストアへのデータの移動、そしてデータストアからプロセスへのデータの移動が含まれます。

データフローの構造を把握することで、情報がどのように収集され、保存され、使用されるかを理解することができます。

DFDの書き方

この章では、DFDを書くためのプロセスについて紹介します。DFD作成のアプローチは、システムの複雑さや目的によって異なりますが、一般的に以下のステップを踏みます。

要件定義と情報収集

DFDの土台となるのは、明確な要件定義です。

この段階では、システムが達成すべき目標とその範囲を特定し、ステークホルダーとのコミュニケーションを通じて、システムが満たすべきニーズを整理します。これにより、システムの主要な機能やデータフローが決まります。

レベル0からレベル2まで

DFDでは、ER図のように要素単位で描いていくのではなく「レベル」を視点にDFDを書いていきます。まずは、コンテキスト図となるレベル0のDFDを書き、それから各プロセスや機能の詳細を表現していきます。

なお、DFDのレベルは2が上限ではありません。システムの要求によって、より詳細な記述が求められる場合もあります。

レベル0のDFD

レベル1のDFD

レベル2のDFD

あとがき

今回は、プロセス中心アプローチの図法、またプロセスモデルの設計で使われるDFDについて、基本や図形・記号の意味、レベルの概念や書き方について記事にしました。

DFDは情報システムやソフトウェア開発において、データの流れとプロセスの相互関係を明確にするために重要なツールです。

システムの設計や分析において、DFDを用いることで、複雑なプロセスとデータの動きを視覚的に捉えることが可能になります。設計者や分析者はシステムの構造をより正確に理解し、より効果的な意思決定を行うことができます。

Analytics沖縄

データサイエンス・機械学習・ディープラーニングを本格的に研究するフリーランスエンジニア。 「Google データアナリティクス プロフェッショナル」の認定証を取得済み。 この分野は専門知識がなければ理解し辛い情報が多いのですが、当サイトでは初学者も意識して発信していきますので、ご関心があればぜひご覧ください。

Recent Posts

SQLの種類|DDL、DML、DCL(命令言語の分類)

今回は、データベースに対する命…

4か月 ago

SQL|FROM句の使い方。基本構文とテーブル指定の実例

今回は、SQLの基本かつ使用頻…

4か月 ago

MySQLの日付型や時刻型で使う関数のフォーマット指定子

今回は、MySQLの日付型や時…

8か月 ago

SQL│文字列を日付型に変換するTo_Date・Convert

今回は、SQLで文字列を日付型…

9か月 ago