データフロー図

データフロー図（データフローず、Data Flow Diagram、DFD）は、情報システムのデータの「流れ; flow」をグラフィカルに表現する図である。システム設計段階の初期に描かれることが多い。データフロー図はデータ処理の可視化にも使われる（構造化設計）。
DFDはシステムの入力と出力がどんな情報なのかを示し、データがどこから来てどこに行くのか、どこに格納されるのかを示す。処理のタイミングや逐次的な処理を示すものではない（その用途にはフローチャートなどがある）。一方で、データフローの図というのは依存関係を示すものであるから、互いに影響するような関係にない処理は並列に行えるというような、並行性は表現される。
概要.
一般に設計者は最初にシステムとシステム外部とのやり取りをコンテキストレベルのDFDで描く。その後コンテキストレベルのDFDを「詳細化」してシステムの細部をモデル化していく。
構造化設計を開発したが、Martin と Estrin の "data flow graph" モデルに基づいてデータフロー図を提案したのが始まりである。
データフロー図(DFD)はSSADMの3つの基本的な図の1つである。プロジェクトの出資者やエンドユーザーは、システム開発の全段階で概要説明を受け、相談をする必要がある。データフロー図を使えば、システムがどう実装され、何をどのように実行するのかをユーザーが眼で見ることができる。従来システムのデータフロー図と新システムのデータフロー図を描いて比較すれば、どこが効率化されているかが即座にわかる。データフロー図があれば、エンドユーザーは自分たちが具体的にどういうデータをどこで入力するのかを思い描くことができるようになる。
データフロー図の記法には Yourdon & Coad の記法と Gane & Sarson の記法があり、プロセス、データストア、データフロー、外部実体といった要素の見た目が異なる。
構成要素.
データフロー図はプロセス、データストア、ビジネス上（または他のシステム）の外部実体、およびそれらを結ぶデータフローから構成される。
データフロー図の4つの構成要素は次の通り:
1つのDFDに描かれる部品数は10個以内にすべきである。ある処理が10個以上の部品で構成される場合、複数の部品をひとつにまとめた概要レベルのDFDと、まとめた部分を描いた詳細レベルのDFDに分割する。各部品には番号を振る。例えば、トップレベルのDFD に部品 1, 2, 3, 4, 5 があったとき、部品 3 に関するDFD にある部品には 3.1, 3.2, 3.3, 3.4 といった番号を振る。さらに、部品 3.2 の DFD にある部品には 3.2.1, 3.2.2 といった番号を振る。
複製.
外部実体やデータストアは明確化のために複製して描く（つまり同じものを複数回描く）ことがある。ただし、プロセスは複製できない。複製された外部実体にはアスタリスク(*)を右下に付し、複製されたデータストアには二重線を左端に付す。
データフロー図作成法.
トップダウン法.
この手法では、各プロセスが簡単にコード化できる程度になるまで、以上の詳細化の工程を繰り返していく。
イベント分割法.
この手法はエドワード・ヨードンの"Just Enough Structured Analysis"、chapter 19 で示されたものである。
ルール.
DFDの作成には下記のルールが有る。