これまでのおさらい
単純明快、この図は一体……!?

システム刷新プロジェクトのメンバーに加わったばかりの田中さん。なにやらお困りのようで……。





田中さんのように、DFDというものにはじめて触れる読者の方もいるでしょう。本記事ではDFDとはどのようなものであるか、基本的な知識について解説します。
データフローダイアグラム(DFD)とデマルコについて
データフローダイアグラムは、1970年代に流行したシステム要求の分析・設計の手法である「構造化分析」とともに普及した表記法です。いくつかの流派があり、使用する図形や表現方法にも違いがあります。
そうしたなかで、当時、トム・デマルコ(Tom DeMarco)は、その著書『構造化分析とシステム仕様』を通じて、構造化分析手法の基本原則や手法を体系的に解説し、構造化分析およびDFDを広く普及することに貢献しました。
本連載では、このトム・デマルコと、書籍『デスマーチ』で有名なソフトウェア工学者であるエドワード・ヨードンが提唱した「ヨードン・デマルコ記法」に準拠した表記法を用いて解説します。 また、DFDの描き進め方についても、彼の著書『構造化分析とシステム仕様』に倣って解説していきます。 そのため、本文中に「デマルコは、その著書で」といった類の表現が度々登場します。
モデリングの基本的な記号と表記法
図解法としてのDFDで用いる記号は、原則として以下の4つです。
- データストア
- プロセス
- 外部エンティティ
- データフロー
「はじめに」でも触れたとおり、ヨードン・デマルコ記法では次のように表現します。

データストア、プロセス、外部エンティティ、データフローについて、それぞれ説明します。
データストア

データストアは、データが保存されている場所、データのかたまりを意味します。一般的には、ファイルシステム上のファイルやデータベースシステム上のテーブルに相当します。しかし、DFDでは実現方式を問いませんので、メモリ上であろうと、ストレージ上に永続化された存在であろうと、「データがいったんとどまるところ」であればデータストアとして表現して構いません。
データストアは、要素名の上下に水平の実線を引いた図形で表現します。データストアからプロセスに向けた入力を表すデータフロー、プロセスからデータストアに対する出力を表すデータフローのいずれか、あるいは両方を必ず持ちます。データフローによる接続のないデータストアは、利用されないデータストアであり、存在意義がありません。
また、データストアからデータストアへデータフローが直接接続されることもありえません。必ずプロセスを介して接続されます。

図形の中には、そのデータストアを端的に表す名称を記入します。分析段階、論理設計段階では、より実世界に近い言葉で表現します。実装に近い段階ではファイル名であったり、テーブル名であったり、プログラミングレベルであれば、変数名である可能性もあります。
データストアに保管されるデータの具体的なフォーマットなどの情報、いわゆるファイル仕様書やテーブル定義書に記述するような情報は、DFDとは別に用意する「データディクショナリ」に記述します。