「DFD」、何だかプロレスの技みたいで強そうですが、そうではなく、システム用語です。
DFDはシステムの設計や業務フローの分析に使うための図になります。今回はこのDFDの定義と使い方に関して解説してきます!
業務のモデル化
システム開発における手順で、先ずはシステム化しようと考えている業務の流れ(フロー)や、取り扱う情報や、その関係性を分かり易く表現することは非常に重要です。
この作業によって、システム開発の関係者が何をどう作るのか理解したり、共有したりすることが可能となります。
この業務の流れや情報関係性を分かり易くする作業を「業務のモデル化」と呼びます。
業務のモデル化は図で表現することが多いです。DFDその方法の一つです。業務のモデル化には他にデータ構造を表現するER図(イーアール図)だったり、状態遷移図などがありますので、こちらは以下の記事を参照してみてください。
DFDとは?
それでは、DFDに関しての解説に入りましょう。
DFDは「Data Flow Diagram(データフローダイアグラム)」の略で、データの流れに着目して、対象業務を分析する時に利用する図解手法となります。
データの流れ(データフロー)と、データを処理するプロセスを図にすることで、業務内容を確認し易いというメリットがあります。DFDは処理のタイミング(順番)など時間的な表現できませんので、その辺はシーケンス図などで表現していく必要があります。
DFDはプロセスを中心に以下の4つの記号を使って表現します。4種類だけなので、シンプルで使い易いですね。
DFDの構成要素を図で表すと以下のようになりますね。
DFDの使い方
DFDの定義が分かったところで、実際の使い方を解説します。
と言っても、4つの構造化設計のための記号を使って、具体的な業務を表現するだけなので、「こうすべき!」という使い方がある訳ではありません。
基本的にはプロセスを中心に作っていくので、先ずはどんなデータ処理があるのかを洗い出し、そのデータ処理に必要なデータとして、データストアや外部実体を用意していきます。そして、最終的に、それらのパーツをデータフローで繋いでいく、といった流れになるかと思います。
販売管理システムにおけるDFDを以下に記載してみました。
また、DFDは構造化設計手法の一環なので、一つ作って終わりというわけではありません。そのために、次の二つの方法を用いて、段階的に複数のDFDを作成します。
Ⅰ.段階別詳細化(トップダウンアプローチ)
最初にシステム全体のDFDを作成し、それぞれのプロセスを別のDFDに詳細化して記述していきます。それぞれのプロセスが一つのモジュールになるまで、詳細化を繰り返して行っていきます。
上からどんどん下に階層を掘り下げていく感じですね。
Ⅱ.新物理モデルの作成
既存のシステムや業務を新しいシステムとして作る場合に、現状の業務を洗い出します。これを①現物理モデルとします。
次に現物理モデルを抽象化して②現論理モデルとし、そこから新しくイメージして③新論理モデルを抽象化されたものとして作成し、最終的に、具体的な業務に落とし込んだ④新物理モデルを作成します。
また、現行業務で使用されているすべてのデータ項目を抽出して、データディクショナリに登録しておきます。
DFDの作成手順としては以下のようになりますね。
まとめ
今回はシステムを作る際に業務を分かり易い図に表す手法としてDFDを解説しました。
DFDを使うことで、業務の流れを関係者が共有でき、認識ズレの無いシステムを構築できるので、要件定義工程などにおいて上手に使っていくことがポイントですね。
ルールもシンプルなので、どんどん作っていけるところも良いですね。
自分の私生活のルーティンもDFD化すると面白いかもですね。
以上です!