DFDの書き方 わかりやすく業務フローを描く

データフロー図(DFD: data flow diagram)とは、情報システムを通るデータの流れを図で表したものであり、構造化システム分析・設計手法で使われる。

DFDとは

データフロー図(DFD)の目的は、システムで扱うデータの流れを明確化すると共に、データ処理を可視化することにある。

レベル(粒度)

実際の業務フローは複雑であり、すべてのデータフローをひとつのDFDに描くと、煩雑な図になる。

そのため、目的によって概要レベルのDFDと詳細レベルのDFDなど、業務フローの粒度を分けてDFDを描くことがある。

書き方

データフロー図(DFD)では、データの流れと処理を「外部エンティティ」、「データストア」、「プロセス」および「データフロー」の4つの要素で表現する。

Yourdon & DeMarco記法で記述したDFDの例を示す。

外部エンティティ

外部エンティティとは、モデル化されるシステムの外部に存在するデータの発生源(source)やデータの出力先(sink)である。

人間や外部システムを指す場合が多い。

データストア

データストアはデータの永続的な保管場所を表す。

具体的には、ファイルやデータベースなどである。

プロセス

プロセスは処理を表す。外部エンティティ、データストアまたは他のプロセスからデータを入力し、外部エンティティ、データストアまたは他のプロセスへデータを出力する。

データフロー

データフローはデータの流れを矢印で表したものである。

DFDで使われる記号

データフロー図(DFD)には「Yourdon & DeMarco記法」と「Gane & Sarson記法」という2通りの記法がある。両者に大きな違いは無いが、Gane & Sarson記法には補足説明に便利な識別子の付け方が定義されている。

条件分岐

業務フローが条件によって分岐することがあるが、DFDではその条件は記載しない。

DFDとフローチャートの違い

フローチャートは処理の手順を示すことでアルゴリズムやプロセスを表現する図であり、データフロー図 (DFD) が示すようなデータの流れを表現することができない。 データフロー図はデータの流れを示すが、それをどのような手順で実現するかを表現できない。 たとえば、データフロー図では「受注」という処理でどのような入力データを元にどのようなデータを出力するのかを表現できるが、受注処理の具体的な手順は表現できない。

JIS

データフロー図 (DFD) は JIS (Japanese Industrial Standards) で規格化されていない。

ISO

データフロー図 (DFD) は ISO (International Organization for Standardization) で規格化されていない。

ツール

データフロー図 (DFD) を作成できるツールを次に示す。

draw.io

draw.ioはデータフロー図、フローチャート、UML及びER図などをウェブブラウザ上で作成できるダイアグラム作成ツールである。 作成したDFDはローカルストレージ、Google Drive、Microsoft Sky Drive及びDropboxに保存することができる。 draw.ioを利用するのにアカウントを作成する必要はなく、無料で利用できる。 Yourdon & DeMarco記法によるDFDの外部実体、データフロー、プロセス及びデータストアのダイアグラムがあらかじめ用意されている。

Figure 1. draw.io

Lucidchart

Lucidchartのデータフロー図メーカーは、複数の利用者がリアルタイムに共同編集できるクラウド型のDFD作成ツールである。Lucidchartを利用するには、アカウント作成が必要である。フリープランであれば、3つまでの文章を無料で作成できる。

Figure 2. Lucidchart