DFD(データフロー図)とは?
DFD(英:data flow diagram・データフローダイアグラムの略)とは、任意のシステムやプロセスの情報の流れをマップ化する図です。長方形、円や矢印などの定義済みの記号や短いテキストのラベルを用いて、データの入出力、格納場所や各出力先間のルートなどを表します。
データフロー図には、簡潔に手描きでプロセスの概観を表すものから、詳細で複数のレベルに及び、データの取り扱いを深掘りして記述する DFD まで、様々なものがあり、既存のシステムの分析や新たなシステムのモデル化に利用することができます。他の優れた図やグラフでも同様ですが、DFD を使うことで、言葉で伝えにくい内容を視覚的に明確に伝えることができます。
開発者から CEO に至るまで、技術畑の受け手にも、そうでない受け手にも有効な手段です。長年を経ても DFD の人気が一向に衰えない理由には、そうした背景があります。データフローソフトウェアやシステムに最適な図ですが、最近では、インタラクティブ、リアルタイム、またはデータベース指向のソフトウェアやシステムでは使われることは少なくなっています。
DFD の記号と4つの構成要素
広く使われている記号システムには、作者の名前を冠した以下のようなものがあります。
- ヨードン/コード式
- ヨードン/デマルコ式
- ゲイン/サーソン式
これらの記号における最も大きな相違点は、ヨードン/コード式とヨードン/デマルコ式ではプロセスに円を用いるのに対して、ゲイン/サーソン式では角丸の長方形 (ひし形と呼ばれる場合もあります) を用いる点です。この他にもさまざまな記号が使われています。したがって、他のメンバーとのコミュニケーションや共同作業においては、使用する図形や表記法に明確な一貫性をもたせることが重要です。
どの規則の DFD ルールやガイドラインを使用する場合でも、記号を使ってデータフロー図の以下の4つの構成要素を表す点は同じです。
- 外部実体: データを送受信し、作図対象のシステムと通信する外部のシステム。システムを出入りする情報の送信元や送信先となります。外部の組織や人、コンピューターシステムや事業システムが外部実体となりえます。端子、ソース、シンクやアクターと呼ばれる場合もあり、一般に図の端に配置されます。
- プロセス: データを変更し、出力を生成する任意のプロセス。計算の実行、ロジックに基づくデータのソート、ビジネスルールに基づくデータフローの方向付けなどを行う場合もあります。プロセスを記述するためには「支払送信」などの短いラベルを用います。
- データストア: データベース表や会員フォームなど 、後の利用のためにデータを保持するファイルまたはリポジトリ。データストアにはそれぞれ「注文」などの簡単なラベルを付します。
- データフロー: 外部実体、プロセスやデータストアの間をデータが辿るルート。他の構成要素との間のインターフェイスを表し、一般に「請求詳細」などの短いデータ名のラベルが付いた矢印で示されます。
表記 |
ヨードン/コード式 |
ゲイン/サーソン式 |
---|---|---|
外部実体 | ||
プロセス | ||
データストア | ||
データフロー |
DFDの書き方
手書きの場合:
- 基本的な用具を用意紙とペンまたはマーカーを 用意します。
DFDの基本的な記号(外部実体、プロセス、データストア、データフロー)を描くために、定規やコンパスも役立ちます。 - 記号を描く
外部実体:四角形を描き、外部実体の名前を書きます。
プロセス:円や長方形を描き、プロセス名を書きます。
データストア:平行四辺形を描き、データストアの名前を書きます。
データフロー:矢印を使って、データの流れを示します。 - 図を整理
記号を用意し、データの流れやプロセスを整然と配置します。図全体が見やすくなるように、記号と矢印の配置に注意します。 - タイトルを追加し、共有
完成した手書きのDFDにタイトルを付け、写真を撮るかスキャンしてデジタル形式に変換します。必要に応じて、共有するための適切なフォーマットに変換し、メールやプリントアウトで配布します。
手書きのDFDは直感的で簡単ですが、共有や編集の際に不便です。なので、オンラインツールを使ってリアルタイムでの編集や共有を実現し、チームと共に書き上げていきましょう。
オンラインDFD作成ツールを使った書き方:
-
テンプレートの選択
使用するツールを開き、データフロー図のテンプレートを選択します。ツールによっては、「新規作成」や「テンプレート選択」のオプションが用意されています。 -
ファイル名の設定
新しい図のタイトルを設定します。ツールのメニューから「ファイル名変更」または「タイトル編集」のオプションを探し、お好きな名前を入力して保存します。 -
外部実体の追加
外部実体を示すためのシンボルをツール内で見つけ、図に追加します。シンボルをクリックし、ドラッグしてワークスペースに配置し、必要な名称を入力します。シンボルの回転や削除もツール内のオプションで行います。 -
プロセスの追加
プロセスを示すシンボルを選び、ワークスペースにドラッグします。プロセスに適切な名称を付け、図の中で位置を調整します。 -
データストアの追加
データストアを示すシンボルを選び、図に追加します。データストアに名前を付け、位置を調整します -
アイテムの追加と配置
必要な外部実体、プロセス、データストアのシンボルを全て図に追加し、配置を調整します。シンボルのサイズ変更や移動もツールの機能を使って行います。 -
データフローの追加
データフローを示すための矢印や線を使い、外部実体、プロセス、データストアを接続します。シンボル間をドラッグしてフローを作成します。 -
ファイル名の変更
図のファイル名やタイトルを変更する場合、ツールの「ファイル名変更」オプションを利用します。 -
カスタマイズ
図のデザインをカスタマイズします。シンボルの色やフォントの変更、矢印のスタイル調整などが可能です。ツールの「デザイン」や「フォーマット」メニューを使って調整します。 -
タイトルの追加とシェア
完成した図にタイトルを追加し、図表内で適切な位置に配置します。完成図をチームメンバーや関係者と共有するためには、「共有」ボタンを使用し、メールやリン クで送信します。共同編集機能があれば、リアルタイムで編集やコメントが可能です。
DFDの書き方おすすめツール
簡単に使えるLucidchart でのDFDの書き方
- テンプレートまたは空白のキャンバスから最初のデータフロー図を作成するか、文書をインポートします。
- 図形を追加し、線を接続して、文字を書きこみます。
- データフロー図のスタイルと書式設定を調整する方法を学びます。
- 「機能を検索」で必要な機能を見つけます。
- 作成したデータフロー図をチーム内で共有し、コラボレーションを開始します。
DFD のレベルとレイヤー : コンテキスト図から擬似コードまで
データフロー図では、レベルやレイヤーを使用して、特定の部分を出発点とし、段階的に詳細を記述していくことができます。 DFD のレベルには0、1、2など番号が振られており、時にはレベル3以降に達することもあります。作図対象のスコープにより、記述すべき詳細のレベルは異なります。
- DFD レベル0はコンテキスト図とも呼ばれ、分析やモデル化対象となるシステムまたはプロセス全体の基本的な概要を示す図です。システムを単独の高次のプロセスとして示し、これに外部実体との関連を付したもので、一見してわかりやすいよう作成することが重要です。利害関係者、ビジネスアナリスト、データアナリストや開発者など、さまざまな受け手にとって理解しやすい図となるようにします。
- DFD レベル1は、コンテキストレベル図の各部分を分解してより詳細に記述するものです。コンテキスト図の高次のプロセスをサブプロセスに分解し、システムの実行する主な機能を強調します。
- DFD レベル2は、レベル1よりも一歩細部に踏み込んだものです。対象のシステムの機能の詳細を十分に記述するため、より多くのテキストを要する可能性があります。
- レベル3、レベル4以降に進めるこ ともできますが、レベル3以降へ進むことはあまりありません。図が複雑となり、情報伝達、比較やモデル化の上での効率が低下するためです。
DFD レイヤーを使う際には、階層式のレベルを図の直下にネストすると、見た目がすっきりし、詳細を表示したい時にも簡単にアクセスできるようになります。
DFD で十分に詳細を記述できるようになると、開発者や設計者はこの図を英語とコード言語を組み合わせた擬似コードの記述に利用できるようになります。 実際のコードを開発する上でこの擬似コードが役立ちます。
データフロー図の活用場面
DFDは、さまざまな分野における多様な種類のシステムの分析やモデル化に適しています。
ソフトウェアエンジニアリングにおける DFD: 1970年代にデータフロー図応用の出発点となった分野です。DFD を利用することで、コーディング開始前に事前の調査を十分に行い、技術開発に重点を置いたアプローチを取ることができます。
事業分析における DFD : ビジネスアナリストは、既存のシステム分析と非効率性の発見に DFD を用いています。プロセスを図式化することで、他の方法では見逃したり、理解しきれていなかったであろうステップを見いだすことができます。
業務フロー改革における DFD: あるビジネスプロセスにおいてデータフローをより効率的にモデル化する上で DFD を使用することができます。業務プロセス改革は、1990年代に組織による運営コストの低減、顧客サービスの改善、および市場競争力の向上を支援する手段として開発されました。
アジャイル開発における DFD: 事業面や技術面での要件を視覚化して理解し、次のステップを計画する上で DFD を使用できます。迅速な開発に注力するためのコミュニケーションとコラボレーションを実現するシンプルながらも強力なツールとなります。
システム構造における DFD: 段階的にシステムやプロセスの詳細を分析し、技術面、非技術面での改善につなげることができます。
DFD の歴史と由来
コンピューティングの先駆者、エドワード・ヨードンとラリー・コンスタンチンの「Structured Design (構造化設計)」から生まれたデータフロー図は1970年代後半に普及しました。デイビッド・マーティンとジェラルド・エストリンによる「データフローグラフ」計算モデルに基づき作成されたものです。構造化設計の概念は、ソフトウェアエンジニアリング業界で急速に広まり、それに伴い DFD のメソッドも広く使われるようになりました。事業分析に用いられることから、学界よりも事業界で人気を集める図となりました。
データフロー図に関連するこの他の概念としては、以下の2つが挙げられます。
- アプリケーションやシステムの分析と設計のためにヨードンとピーター・コードが考案したオブジェクト指向分析設計 (OOAD)。
- 情報システムの分析と設計を目的としたウォ ーターフォールメソッドである構造化システム分析設計手法 (SSADM)。スクラムや動的システム開発手法 (DSDM) といった最新のアジャイルなアプローチと対極をなす厳格な文書化型アプローチです。
DFD 方法論の隆盛に寄与した専門家としては、この他にトム・デマルコ、クリス・ゲイン、トリッシュ・サーソンの3人が挙げられます。3人は、共同でデータフロー図に使われる主な記号や表記法を定義しました。