データフロー図(DFD: data flow diagram)とは、情報システムを通るデータの流れを図で表したものであり、構造化システム分析・設計手法で使われる。
データフロー図(DFD)の目的は、システムで扱うデータの流れを明確化すると共に、データ処理を可視化することにある。
実際の業務フローは複雑であり、すべてのデータフローをひとつのDFDに描くと、煩雑な図になる。
そのため、目的によって概要レベルのDFDと詳細レベルのDFDなど、業務フローの粒度を分けてDFDを描くことがある。
データフロー図(DFD)では、データの流れと処理を「外部エンティティ」、「データストア」、「プロセス」および「データフロー」の4つの要素で表現する。
DFDで使われる記号には「Yourdon & DeMarco記法」と「Gane & Sarson記法」という2通りの記法がある。両者に大きな違いは無いが、Gane & Sarson記法には補足説明に便利な識別子の付け方が定義されている。
Yourdon & DeMarco記法で記述したDFDの例を示す。
外部エンティティとは、モデル化されるシステムの外部に存在するデータの発生源(source)やデータの出力先(sink)である。人間や外部システムを指す場合が多い。
「Yourdon & DeMarco記法」によるDFDでは、次に示す記号で外部エンティティを表す。
「Gane & Sarson記法」によるDFDでは、次に示す記号で外部エンティティを表す。
データストアはデータの永続的な保管場所を表す。
具体的には、ファイルやデータベースなどである。
「Yourdon & DeMarco記法」によるDFDでは、次に示す記号でデータストアを表す。
「Gane & Sarson記法」によるDFDでは、次に示す記号でデータストアを表す。
プロセスは処理を表す。外部エンティティ、データストアまたは他のプロセスからデータを入力し、外部エンティティ、データストアまたは他のプロセスへデータを出力する。
「Yourdon & DeMarco記法」によるDFDでは、次に示す記号でプロセスを表す。
「Gane & Sarson記法」によるDFDでは、次に示す記号でプロセスを表す。
データフローはデータの流れを矢印で表したものである。
DFDでは、次に示す記号でデータフローを表す。記法による違いは無い。
業務フローが条件によって分岐することがあるが、DFDではその条件は記載しない。
フローチャートは処理の手順を示すことでアルゴリズムやプロセスを表現する図であり、データフロー図 (DFD) が示すようなデータの流れを表現することができない。 データフロー図はデータの流れを示すが、それをどのような手順で実現するかを表現できない。 たとえば、データフロー図では「受注」という処理でどのような入力データを元にどのようなデータを出力するのかを表現できるが、受注処理の具体的な手順は表現できない。
データフロー図 (DFD) は JIS (Japanese Industrial Standards) で規格化されていない。
データフロー図 (DFD) は ISO (International Organization for Standardization) で規格化されていない。
データフロー図 (DFD) を作成できるツールを次に示す。
draw.ioはデータフロー図、フローチャート、UML及びER図などをウェブブラウザ上で作成できるダイアグラム作成ツールである。 作成したDFDはローカルストレージ、Google Drive、Microsoft Sky Drive及びDropboxに保存することができる。 draw.ioを利用するのにアカウントを作成する必要はなく、無料で利用できる。 Yourdon & DeMarco記法によるDFDの外部実体、データフロー、プロセス及びデータストアのダイアグラムがあらかじめ用意されている。
Lucidchartのデータフロー図メーカーは、複数の利用者がリアルタイムに共同編集できるクラウド型のDFD作成ツールである。Lucidchartを利用するには、アカウント作成が必要である。フリープランであれば、3つまでの文章を無料で作成できる。
DFDに「コントロール変換とコントロール・フロー」を付加して、制御系システムに特有な処理形態を表現します。