DFD(データフロー図)とは(全体像)
DFDは、「Data Flow Diagram」の略で、日本語ではデータフロー図。システムの中で、データがどこからどこへ、どう流れるかを図にする書き方のことだ。
ここで一番のポイントは、DFDは「データの流れ」を表すこと。プログラムの「処理の順番」ではなく、情報(データ)がどう動くかに注目する。
似たものにフローチャートがあるが、これは処理の順番(制御の流れ)を表す。DFD=データの流れ、フローチャート=処理の順番、と区別するのが大事だ。
詳しく:4つの要素とフローチャートとの違い
ここが心臓部。DFDで使う4つの要素を表で押さえよう。
DFDの4つの要素
| 要素 | 何を表すか |
|---|---|
| プロセス | データを処理するところ(処理) |
| データストア | データを保管しておくところ |
| 外部(外部実体) | システムの外にいる人や組織 |
| データフロー | データの移動(矢印で表す) |
この4つを組み合わせて、「どこから来たデータを、どこで処理し、どこに保管し、どこへ送るか」を図にする。
そして大事な区別。DFDとフローチャートは別もの。
- DFD … データの流れ(情報がどう動くか)を表す。
- フローチャート … 処理の順番(制御の流れ)(どの順で処理するか)を表す。
「DFD=フローチャート」と思い込むと誤りになる。データの流れか、処理の順番かで見分けよう。
なお、DFDは階層化できる。まず全体をざっくり描き(いちばん上の図)、そこから少しずつ細かい図へと詳しくしていく。「階層がない」と思い込むのも誤りだ。
わかりやすく言い換えると
身近なたとえで整理しよう。
DFDは、「情報の宅配ルートの地図」のイメージ。どこから荷物(データ)が来て、どこで仕分け(処理)して、どこに保管して、どこへ届けるかを描く。要するに、データの動きを地図にしたものだ。
DFDとフローチャートの違いは、「荷物の流れ(DFD)」と「作業の手順(フローチャート)」。つまり、データが動く道か、処理を行う順番か、の違いだ。
階層化は、「全体地図から、エリアごとの詳しい地図へ」と細かくすること。つまり、ざっくり→だんだん詳しく、という流れだ。
試験のツボ
🔴 一番出る:DFDの正体
①システムのデータの流れを図にする書き方
②処理の順番ではなく、データがどう動くかに注目
🔴 次に出る:4つの要素
①プロセス(処理)・データストア(保管)
②外部(外の人や組織)・データフロー(データの移動)
🟡 押さえると安定:フローチャートとの違い
①DFD=データの流れ/フローチャート=処理の順番(制御)
②DFDは階層化で、ざっくりから詳しくへ
よくある間違い
①「DFDとフローチャートは、まったく同じものだ」→ ✗ DFDはデータの流れ、フローチャートは処理の順番(制御)。表すものが違う。
②「DFDは、処理の順番(制御の流れ)を表す図だ」→ ✗ 処理の順番を表すのはフローチャート。DFDは、データの流れを表す。
③「DFDには、階層化という考え方はない」→ ✗ DFDは階層化できる。ざっくりした図から、だんだん詳しい図へ。
試験での出題パターン
実際の問題でたしかめてみよう。
オリジナル問題1(DFDの正体)
DFD(データフロー図)に関する次の記述のうち、最も適切なものはどれか。
- 社員の出退勤を記録して、毎月の給与を計算するためのしくみである
- 取引先へ毎月の請求書を郵送する、決まった事務作業のことを指している
- 完成したシステムを宣伝して、より多く売るための広告活動のことである
- システムの中で、データがどう流れるかを図にする書き方のことである
解答は 4 だよ。
DFDは、システムの中で、データがどう流れるかを図にする書き方だよ。処理の順番ではなく、データの動きに注目するんだ。
選択肢1は給与計算、選択肢2は請求書の事務、選択肢3は広告で、どれも違うよ。
| 選択肢 | 判定 | 理由 |
|---|---|---|
| 1 | ✗ | 給与計算のしくみではない |
| 2 | ✗ | 請求書の事務の話 |
| 3 | ✗ | 広告活動ではない |
| 4 | ✓ | データの流れを図にする書き方で正しい |
オリジナル問題2(4つの要素)
DFDで使う4つの要素として、最も適切なものはどれか。
- 売上・費用・利益・税金という、決算で使う4つの数字のことである
- プロセス・データストア・外部・データフローの4つの要素である
- 朝・昼・夕・夜という、1日の4つの時間帯のことを指している
- 北・東・南・西という、4つの方角のことを指している言葉である
解答は 2 だよ。
DFDで使う4つの要素は、プロセス(処理)・データストア(保管)・外部・データフロー(データの移動)だよ。
選択肢1の決算の数字、選択肢3の時間帯、選択肢4の方角は、いずれも誤りだよ。
| 選択肢 | 判定 | 理由 |
|---|---|---|
| 1 | ✗ | 決算の数字ではない |
| 2 | ✓ | プロセス・保管・外部・データの移動で正しい |
| 3 | ✗ | 時間帯のことではない |
| 4 | ✗ | 方角のことではない |
オリジナル問題3(フローチャートとの違い)
DFDとフローチャートの違いに関する次の記述のうち、最も適切なものはどれか。
- DFDは処理の順番、フローチャートはデータの流れを表す、逆の関係である
- DFDもフローチャートも、社員の給与を計算するためだけの図である
- DFDはデータの流れで、フローチャートは処理の順番(制御)を表す
- DFDもフローチャートも同じで、呼び名が2つあるだけで違いはない
解答は 3 だよ。
DFDはデータの流れ、フローチャートは処理の順番(制御)を表すよ。「データの動きか、処理の順番か」で見分けてね。
選択肢1は説明が逆、選択肢2は給与計算、選択肢4は「違いはない」が誤りだよ。
| 選択肢 | 判定 | 理由 |
|---|---|---|
| 1 | ✗ | DFDとフローチャートの説明が逆 |
| 2 | ✗ | 給与計算の図ではない |
| 3 | ✓ | DFDはデータ・フローチャートは処理の順番で正しい |
| 4 | ✗ | 両者には違いがある |
まとめ
押さえどころ
- 🔴 DFD = システムのデータの流れを図にする書き方。処理の順番ではなく、データの動きに注目。
- 🔴 4つの要素 = プロセス(処理)・データストア(保管)・外部・データフロー(データの移動)。
- 🟡 フローチャートとの違い = DFDはデータの流れ、フローチャートは処理の順番(制御)。DFDは階層化できる。
次に学ぶ
- 業務プロセスモデリング ── 業務を図にする手法。DFDはデータの流れを表す代表的な書き方。
- UML ── 構造や動きを図にする共通の書き方。DFDとは別の記法。
執筆: SikakuQuest編集部