データフロー図
データフロー図はプロセス、データストア、ビジネス上(または他のシステム)の外部実体、およびそれらを結ぶデータフローから構成される。
データフロー図の4つの構成要素は次の通り:
プロセス(円または角を丸めた多角形で表される) 入力データを処理して何らかの加工を加え、結果となるデータを出力するもの。
データストア(2本の平行線で表されるが、それを垂直な線で繋いだ形にすることもある) データの保管場所を表現したもの。DFD では処理タイミングに関する前提は全く記述しない。従ってデータストアに年度決算用のデータを蓄えるために一年以上に渡ってデータが蓄積されることもある。
外部実体/ターミネータ/情報源/情報出口(四角形または楕円で表される) モデル化されるシステム外部に存在するものである。ターミネータとは外部の情報源や外部への情報の出力先を意味する。システム設計では、ターミネータが具体的に何をどのようにするのかは考慮しない。
データフロー(矢印線で表される) 他の部品間のデータの移動経路を描いたもの。
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 といった番号を振る。
外部実体やデータストアは明確化のために複製して描く(つまり同じものを複数回描く)ことがある。ただし、プロセスは複製できない。複製された外部実体にはアスタリスク(*)を右下に付し、複製されたデータストアには二重線を左端に付す。
一般に設計者は最初にシステムとシステム外部とのやり取りをコンテキストレベルのDFDで描く。その後コンテキストレベルのDFDを「詳細化」してシステムの細部をモデル化していく。
構造化設計を開発したラリー・コンスタンチン(英語版)が、Martin と Estrin の "data flow graph" モデルに基づいてデータフロー図を提案したのが始まりである。
データフロー図(DFD)はSSADMの3つの基本的な図の1つである。プロジェクトの出資者やエンドユーザーは、システム開発の全段階で概要説明を受け、相談をする必要がある。データフロー図を使えば、システムがどう実装され、何をどのように実行するのかをユーザーが眼で見ることができる。従来システムのデータフロー図と新システムのデータフロー図を描いて比較すれば、どこが効率化されているかが即座にわかる。データフロー図があれば、エンドユーザーは自分たちが具体的にどういうデータをどこで入力するのかを思い描くことができるようになる。
データフロー図の記法には Yourdon & Coad の記法と Gane & Sarson の記法があり、プロセス、データストア、データフロー、外部実体といった要素の見た目が異なる。
この手法はエドワード・ヨードンの"Just Enough Structured Analysis"、chapter 19 で示されたものである。
全イベントのリストを作成する。
各イベントに対応したプロセスを作る。
各プロセスを他のプロセスやデータストアと接続し、イベントについて十分な情報が得られるようにする。
各プロセスのイベントに対する反応は、そのプロセスから出て行くデータフローによってモデル化される。