DFDは、システムのデータフローとプロセスを視覚的に表現するための基本的なツールです。DFDは、主にソフトウェア開発やビジネスプロセスの分析で用いられ、システム内でのデータの流れや処理の仕組みを明確にします。
この記事では、DFDの基本的な概念、主要な要素、そしてどのようにシステム全体の動作を表すのかを解説します。また、DFDのレベルの概念とその読み方、実際のDFDの書き方についても説明します。
DFDは初心者にとっても理解しやすいツールですが、初心者の方でも理解できるようにDFDの実例も用いて分かりやすく解説します。
この章では、DFDの初歩的な知識である「DFDとは」から、実際にDFDを書くメリットまで解説します。まずは、DFDを理解するうえで基本的な内容を習得しましょう。
DFDとは、Data Flow Diagramの略で「データフロー図」と訳します。その名の通り、データとその流れを表現するための手法です。
DFDはシステム開発の3つのアプローチのうち「プロセス中心アプローチ」で使われる図法です。システム内のデータの流れと処理プロセスをモデル化して、相互関係を視覚化するために効果的です。
また、システム内のデータの移動パターンや異なるプロセス間の相互作用も明らかになります。
DFDはプロセス中心アプローチの図法としてだけではなく、システム内でのデータの流れとプロセス間の相互作用を明確にするためにも用いられます。
データがどのように入力され、処理され、最終的な出力に至るかを視覚的に追跡できます。DFDは複雑なシステム内のデータの流れを分析し、理解を深めるための強力なツールとして機能します。
各プロセスの入出力を具体的に示すことで、システムの要件定義や設計を支援し、より効率的でエラーの少ない情報システムの構築を可能にするのです。
DFDを書くメリットには次のようなものがあります。
DFDはシステム内でのデータの動きを視覚的に表現することで、プロセス間のデータフローを明確にします。DFDを書くことで、チームメンバー間での認識が共有化され、誤解を避けながら効率的な設計が可能になります。
DFDはシステムの機能とプロセスの関係を具体化するため、開発者やステークホルダーがシステムの動作を総合的に理解しやすくなります。これは理解促進とコミュニケーションの両方において効果的です。
DFDを書くことにより、初期の設計段階でシステム要件とプロセスの一貫性を検証できます。後のフェーズでのコスト増のリスクを避けながら、要件に適合する設計を行うことができます。
DFDを書くための記法は主に 2つ存在しますが、記法の違いと言えるほどの相違点はありません。一部の要素(図形)が多少異なるだけです。
この章では、DFDの主要な記法である「Yourdon & Coad」と「Gane & Sarson」の記号について紹介します。
後の章で詳しく説明しますが、DFDでは使用される要素(=図形)が定義されています。たとえば、データを渡すもの/データを受けるものを表す「源泉と吸収」、データの加工を表す「プロセス」などです。
DFDでは4つの要素しか使いませんので、直感的に読みやすいのが特徴です。
また、DFDは表現方法が標準化されており、次節で説明する記法によっても多少の違いしかありませんので、記法の違いがデメリットになることもないでしょう。
DFDでは、基本的に4つの図形・記号が使われます。外部エンティティとプロセス、データストア、データフローです。この章で、実際のDFDを用いて説明します。
外部エンティティはシステム外部のオブジェクトや組織、人物を表します。システムの入力源または出力の宛先となり、システムの境界を定義する役割を持ちます。
たとえば、顧客やサプライヤー、他のシステムなどが外部エンティティに相当します。これらのエンティティは、システムがどのように外部環境と相互作用するかを理解するために不可欠です。
プロセスはシステム内でデータがどのように処理されるかを表します。各プロセスは通常、システムが実行する具体的な機能や活動を表し、円で図示されます。
プロセスは入力データを受け取り、それを何らかの形で変換し出力データを生成します。プロセスは、システムの動作を理解する上で中心となる要素です。
データストアは、システムによって生成または使用されるデータが一時的に保管される場所を表します。データベースやファイル、記録などが該当します。
データストアはデータがどのように保持され、アクセスされるかの詳細を表現し、プロセス間でのデータの一貫性と永続性を保証します。
データフローは、システム内のデータがどのように移動するかを表す矢印で、外部エンティティからプロセスへ、プロセスからデータストアへ、またはその逆の流れを表します。
これはDFDにおいて非常に重要な要素であり、データの流れを追跡することで、システム内の情報の流れと各要素間の関係を明らかにします。
DFDには「レベル」の概念が存在します。
レベルの数値が小さいほど、システムの抽象度が高く(例:レベル0)表現され、数値が大きいほど、データフローが細分化され、より具体的かつ詳細に(例:レベル3)描写されます。
実際には、高レベルのDFDはおおざっぱな概観が描写され、より低いレベルのDFDに進むにつれて、データフローは詳細に分解されます。
右にいくほど詳細化
・レベル0(高レベル)→レベル2(低レベル)
DFDのレベル0は「コンテキストレベル」ともいわれており、システムの全体像を単純に表現します。描写される外部エンティティもシステムの主要なものに限定されて、概要的なプロセスのみが表現されます。
DFDのレベル1では、主要なプロセスとサブシステムが表現されます。レベル0の単一プロセスを複数のサブプロセスに分割して、それぞれのサブプロセス間のデータフローが描写されます。
DFDのレベル2では、より詳細な内部プロセスが表現されます。レベル1のサブプロセスがより詳細なレベルで分割され、各プロセス内の具体的な機能や手順が描写されます。
DFDの基本要素、図形、記号を理解すると、DFDの読み方が容易になります。データフローを正確に追跡し、システムのプロセスを可視化することで、システムの全体的な動作を把握することができます。
この章では、DFDの基本的な読み方について説明します。
DFDを読む際には、まず外部エンティティからプロセスへ、そしてデータストアを介してのデータの流れを追跡することから始めます。
この流れを追うことで、システムのどの部分が情報を生成し、どこで使用するかを把握することができます。DFDの全体像を把握することは、システムがどのように流れるのかを理解する第一歩です。
DFD内の各プロセスを分析することで、システム内でデータがどのように変換されるかを理解できます。
プロセスはシステムの機能やアクティビティを表し、データフロー図内でどのようにデータが処理されているかを表現します。それぞれのプロセスの入力と出力を分析することで、そのプロセスがシステム内でどのような役割を果たしているかが明確になります。
データフローを分析することで、システム内でデータがどのように移動するかを理解することができます。
これには、外部エンティティからプロセスへのデータの移動、プロセスからデータストアへのデータの移動、そしてデータストアからプロセスへのデータの移動が含まれます。
データフローの構造を把握することで、情報がどのように収集され、保存され、使用されるかを理解することができます。
この章では、DFDを書くためのプロセスについて紹介します。DFD作成のアプローチは、システムの複雑さや目的によって異なりますが、一般的に以下のステップを踏みます。
DFDの土台となるのは、明確な要件定義です。
この段階では、システムが達成すべき目標とその範囲を特定し、ステークホルダーとのコミュニケーションを通じて、システムが満たすべきニーズを整理します。これにより、システムの主要な機能やデータフローが決まります。
DFDでは、ER図のように要素単位で描いていくのではなく「レベル」を視点にDFDを書いていきます。まずは、コンテキスト図となるレベル0のDFDを書き、それから各プロセスや機能の詳細を表現していきます。
なお、DFDのレベルは2が上限ではありません。システムの要求によって、より詳細な記述が求められる場合もあります。
今回は、プロセス中心アプローチの図法、またプロセスモデルの設計で使われるDFDについて、基本や図形・記号の意味、レベルの概念や書き方について記事にしました。
DFDは情報システムやソフトウェア開発において、データの流れとプロセスの相互関係を明確にするために重要なツールです。
システムの設計や分析において、DFDを用いることで、複雑なプロセスとデータの動きを視覚的に捉えることが可能になります。設計者や分析者はシステムの構造をより正確に理解し、より効果的な意思決定を行うことができます。