データフローダイアグラム
システムでデータがどう流れ、どこで加工・保存されるかを表す図。処理、データの保管場所、外部とのやり取りを整理し、入力から出力へ変換される関係を示す。
イマシルちゃんの解説
お店の注文票が、受付、調理場、会計へ渡っていく様子を考えてみよう。
どんな情報が渡り、どこで内容が変わり、どこへ控えが残るかを書いていくんだ。
人が何番目に歩くかより、必要な情報が届くかを見るための地図だよ。
受け取る物がないのに、急に伝票が完成していたらおかしいと気づけるよね。
より深い解説
図を構成する要素
DFDは、情報がどこから来て、どの処理を経て、どこへ行くかを整理する。表記には複数の流儀があるが、基本となる役割は共通する。
| 要素 | 役割 |
|---|---|
| プロセス | 入力データを加工し、出力を作る |
| データフロー | 処理や外部との間を移動する情報 |
| データストア | 後で使う情報を保持する場所 |
| 外部実体 | 対象システムの外側の人・組織・システムなど |
矢印には、注文情報、出荷指示など、受け渡すデータの名前を付ける。単に「次に実行する」という制御の順番を表す矢印ではない。
独自の例
備品の貸出しなら、利用者が申請データを渡し、受付処理が在庫データを調べ、結果を返す形で整理できる。
| 関係 | 受け渡す情報 |
|---|---|
| 利用者から受付処理 | 申請データ |
| 在庫の保管場所から受付処理 | 現在の在庫 |
| 受付処理から履歴の保管場所 | 貸出しの記録 |
| 受付処理から利用者 | 受付結果 |
保管場所と外部とのやり取りは、通常、必要な処理を介して表す。受け取ったデータをどう検証・変換するかが抜け落ちないようにする。
詳細化のしかた
全体を一つの処理として見た図から始め、処理の内部を複数の処理へ分けて詳しくすることができる。階層間では、外部との入出力の対応を保つ。
上位では受け取っていない情報が下位で突然現れたり、上位へ返すはずの結果が下位で失われたりしないかを確認する。このようなバランスが、モデルの整合性を考える手掛かりになる。
表すものと補うもの
設計での確認
入力があるのに必要な出力がない処理や、入力なしで結果を生成する処理を見直す。また、扱うデータに個人情報などが含まれる場合は、どこへ渡り、どこに保存されるかを追うと管理範囲を整理しやすい。
DFDで経路を描くだけでは、アクセス権限や暗号化が決まるわけではない。データの意味と機密性を踏まえて、別途具体的な対策を設計する。