職場でシステムを作成および最適化する際、データフロー図(DFD)を使用すると、情報の流れを可視化し、非効率な部分を発見し、実際の作業の進め方について関係者を調整することができます。適切なデータフロー図ソフトウェアを使えば、システムを通じたデータのフローが理解しやすくなります。
このガイドでは、定義、歴史、記号や記法など、データフロー図について知っておくべきすべてを包括的にご紹介しています。さまざまな DFD のレベル、論理 DFD と物理 DFD の違い、DFD 作成のためのヒントも学ぶことができます。
データフロー図とは?
データフロー図は、任意のシステムやプロセスの情報の流れをマップ化する図です。長方形、円や矢印などの定義済みの記号や短いテキストのラベルを用いて、データの入出力、格納場所や各出力先間のルートなどを表します。
他の優れた図やグラフでも同様ですが、DFD を使うことで、言葉で伝えにくい内容を視覚的に明確に伝えることができます。開発者から CEO に至るまで、技術畑の受け手にも、そうでない受け手にも有効な手段です。データフロー図には、簡潔に手描きでプロセスの概観を表すものから、詳細で複数のレベルに及び、データの取り扱いを深掘りして記述する DFD まで、さまざまなものがあります。
DFD はシステムの動作を可視化するため、故障やボトルネックの原因を診断する実用的なツールとしてよく使われます。
DFD の歴史
コンピューティングの先駆者、エドワード・ヨードンとラリー・コンスタンチンの「Structured Design (構造化設計)」から生まれたデータフロー図は1970年代後半に普及しました。デイビッド・マーティンとジェラルド・エストリンによる「データフローグラフ」計算モデルに基づき作成されたものです。構造化設計の概念と DFD 手法はいずれも、ソフトウェア工学およびビジネスの分野で広く採用されています。
DFD 方法論の隆盛に寄与した専門家としては、この他にトム・デマルコ、クリス・ゲイン、トリッシュ・サーソンの3人が挙げられます。3人は、共同でデータフロー図に使われる主な記号や表記法を定義しました。
DFD の記号と表記
始める前に、さまざまなデータフロー図の記号について理解しておくと良いでしょう。システムによって記号に若干の違いがあるため、他者とコミュニケーションや共同作業を行う際には、使用する図形や表記法を明確かつ一貫性のあるものにすることが重要です。
どの規則の DFD ルールやガイドラインを使用する場合でも、記号を使ってデータフロー図の以下の4つの構成要素を表す点は同じです。
1. 外部実体
外部実体とは、データを送受信し、作図対象のシステムと通信する外部のシステムです。システムを出入りする情報の送信元や送信先となります。外部の組織や人、コンピューターシステムや事業システムが外部実体となりえます。端子、ソース、シンクやアクターと呼ばれる場合もあり、一般に図の端に配置されます。
2. プロセス (Process)
プロセスはデータを変更し、出力を生成します。計算の実行、ロジックに基づくデータのソート、ビジネスルールに基づくデータフローの方向付けなどを行う場合もあります。プロセスを記述するためには「支払送信」などの短いラベルを用います。
3. データストア
データストアとは、データベース表や会員フォームなど、後の利用のためにデータを保持するファイルまたはリポジトリです。データストアにはそれぞれ「注文」などの簡単なラベルを付します。
4.データフロー
データフローは、外部実体、プロセスやデータストアの間をデータが辿るルートです。他の構成要素との間のインターフェイスを表し、一般に「請求詳細」などの短いデータ名のラベルが付いた矢印で示されます。
DFD のルールとヒント
すべてのデータフロー図には、留意すべきいくつかの規則があります。
-
各プロセスには、少なくとも入力と出力1つずつが必要です。
-
各データストアには、少なくともデータフロー入力とデータフロー出力1つずつが必要です。
-
システムに格納されたデータはプロセスを通過する必要があります。
-
DFD 内のすべてのプロセスが他のプロセスやデータストアへ向かうものとします。
DFD のレベルとレイヤー : コンテキスト図から擬似コードまで
データフロー図では、レベルやレイヤーを使用して、特定の部分を出発点とし、段階的に詳細を記述していくことができます。 DFD のレベルには0、1、2など番号が振られており、時にはレベル3以降に達することもあります。作図対象のスコープにより、記述すべき詳細のレベルは異なります。
DFD レベル 0
DFD レベル0はコンテキスト図とも呼ばれ、分析やモデル化対象となるシステムまたはプロセス全体の基本的な概要を示す図です。システムを単独の高次のプロセスとして示し、これに外部実体との関連を付したもので、一見してわかりやすいよう作成することが重要です。利害関係者、ビジネスアナリスト、データアナリストや開発者など、さまざまな受け手にとって理解しやすい図となるようにします。

DFD レベル1
DFD レベル1の図は、コンテキストレベル図の各部分を分解してより詳細に記述するものです。システムの主な機能を紹介しています。

DFD レベル 2
レベル2の DFD では、レベル1の部分をさらに一歩深く掘り下げます。対象のシステムの機能の詳細を十分に記述するため、より多くのテキストを要する可能性があります。

レベル3、レベル4以降に進めることもできますが、レベル3以降へ進むことはあまりありません。図が複雑となり、情報伝達、比較やモデル化の上での効率が低下するためです。
DFD レイヤーを使う際には、階層式のレベルを図の直下にネストすると、見た目がすっきりし、詳細を表示したい時にも簡単にアクセスできるようになります。DFD で十分に詳細を記述できるようになると、開発者や設計者はこの図を英語とコード言語を組み合わせた擬似コードの記述に利用できるようになります。実際のコードを開発する上でこの擬似コードが役立ちます。
DFD の使用例
データフロー図は、さまざまな分野における多様な種類のシステムの分析やモデル化に役立ちます。
-
ソフトウェアエンジニアリングにおける DFD: 1970年代にデータフロー図応用の出発点となった分野です。DFD を利用することで、コーディング開始前に事前の調査を十分に行い、技術開発に重点を置いたアプローチを取ることができます。
-
事業分析における DFD : ビジネスアナリストは、既存のシステム分析と非効率性の発見に DFD を用いています。プロセスを図式化することで、他の方法では見逃したり、理解しきれていなかったであろうステップを見いだすことができます。
-
業務プロセス改革 (BPR) におけるDFD:業務プロセス改革は、1990年代に組織による運営コストの低減、顧客サービスの改善、および市場競争力の向上を支援する手段として開発されました。DFD は、ビジネスプロセスを通じてデータのより良い、より効率的なフローをモデル化するために使用できます。
-
アジャイル開発における DFD: 事業面や技術面での要件を視覚化して理解し、次のステップを計画する上で DFD を使用できます。迅速な開発に注力するためのコミュニケーションとコラボレーションを実現するシンプルながらも強力なツールとなります。
-
システム構造における DFD: 段階的にシステムやプロセスの詳細を分析し、技術面、非技術面での改善につなげることができます。
DFD と統一モデリング言語 (UML) の比較
システム内のデータの流れを表す DFD に対し、UML は、オブジェクト指向ソフトウェア設計におけるより詳細なビューを示すために用いられるモデリング言語です。DFD は依然として良い出発点となりますが、開発者は実際にシステムを開発する際、必要な詳細度を達成するためにクラス図、構造図、またはその他の UML 図を利用することがあります。
論理 DFD と物理 DFD の比較
データフロー図には2つの種類 (論理と物理) があります。論理 DFD は、事業運営に不可欠なデータフローを視覚化します。システムの動作方法や期待される動作方法ではなく、対象の事業と必要な情報に重点を置きます。これに対し、物理 DFD は、現時点、または将来の時点でのシステムの実装方法を示します。例えば、論理 DFD におけるプロセスは事業活動となり、他方で物理 DFD におけるプロセスはプログラムや手動の手順となるという違いがあります。


データフロー図の書き方
Lucidchart を使えば、オリジナルの DFD をオンラインで作成することができます。Lucidchart の DFD 例や専用の表記を使えば、システム内のデータの流れを視覚的に表現することができます。Lucidchart のデータフロー図メーカーは、シンプルながらパワフルなツールです。
まずはテンプレートから作図を始め、図形を利用してプロセス、データストア、データフローや外部実体をカスタマイズしましょう。Lucidchart なら、DFD を素早く作成でき、簡単に共有できるうえ、オンラインや文書内でいつでも迅速に参照できます。今すぐ簡単にスタート!

図の作成に必要なすべて
Lucidchart を使えば、洗練された美しい図を無料で作成できます。どんな図にも対応できる機能を完備したツールで、今すぐアカウントを作成して図の作成を始められます。
無料ではじめる