DFD(データフロー図)の書き方や詳細について徹底解説!
cover
DFD(データフロー図)の書き方や詳細について徹底解説!
アンドエンジニア編集部
2021.06.16
この記事でわかること
DFDとはシステムのデータの流れをグラフィカルに表現する図のこと
データフロー図で使用する記号は「データフロー」「プロセス」「データストア」「外部実体」の4種類
DFDには視覚的にデータの流れを理解しやすいというメリットがある

DFDの書き方

certification

DFDとは、データフロー図とよばれることもあります。この記事ではDFDの書き方について解説した後に、DFDの概要について説明します。まず、以下でDFDを書き方のルールやポイントについて詳しく紹介します。データフロー図の書き方として、データに関する処理と流れを「外部エンティティ」「データストア」「プロセス」「データフロー」の4種類の要素で表現することが可能です。

プロセスには入力・出力のデータフローが必要

プロセスは「処理」を表し、入力したデータを編集して出力を行うものです。そのため、データの入力・出力が両方とも必要な場合があります。例えば、入力が1つで出力は複数という状況もあります。一方、入力が複数あり出力は1つという状況もあります。さらに言えば、入力が複数で出力も複数という状況もあります。

データストアには入力・出力のデータフローが必要

データストアは、データの永久的な保管場所を表します。データストアには、入力と出力のデータフローが両方とも必要です。データは利用しなければ保存する必要がありません。

データフローには全て名前が必要

データフローには、「どのようなデータであるか」全てに名前をつけることが重要です。DFDは、どのようなデータを伝達するかを表現する図ですが、名前を付けることが難しいデータフローもあります。その場合は、データフローにおけるデータのまとまりとして物足りない部分があることが多いので、データフローを分割できないか、もしくはデータフロー自体の削除を検討することが大切です。

データフローに処理を書きこむことは不要

データフロー図に対して、「処理」を記載してしまうことがあります。例えば、「購入する」「売却する」「決済する」などです。この場合、処理の流れを表現する図「フローチャート」の内容が混在している可能性もあります。DFDは処理の流れについては記載せず、データの流れを記述する図です。よって「購入する」のように動詞が名前になっているデータフローは誤りとなるため、データフローの修正が必要です。

入力と出力に関するデータ処理の内容がイメージできる名前をプロセスにつける

プロセスには、入力と出力に関するデータが1つ以上あります。プロセスに名前をつける際には、入力と出力に関するデータの両方ともイメージできる名前にしてください。データフロー図を確認したら、簡単にシステムをイメージできるようにすることが重要です。

処理の実行順序は記載しない

データフロー図は、データの伝達を明確にするための図です。そのため、いつデータを伝達したかについては記載しません。処理の実行順序について記述する際には、フローチャート図やシーケンス図などに書くことが推奨されます。

DFDのコンテキストダイアグラムとレイヤー

データフロー図を記載する際には、開発するシステムを1つのプロセスとして「どのようなデータをやり取りするか」についてから書き始めることが重要です。システム全体を捉えた最上層のDFDは、「コンテキストダイアグラム」と言われます。コンテキストダイアグラムを詳細化していくために、下層のDFDをステップを踏んで作成していくことが多いです。下層のDFDについては、上位のDFDのプロセスに対して1つずつ作られます。

1つの層ごとに、プロセスは多くても7個以内にして記載するのがおすすめです。プロセスの数が多い場合、データフロー図がわかりづらくなります。DFDをみて直感的にシステムのイメージが把握できる図にしましょう。また層分けを実施する際には、0・1・2…のような番号をプロセスに記載します。下層のデータフロー図は上層の番号を継承させて、0.1、0.2などのように番号を記載することで、レイヤーの関係性が理解しやすくできるでしょう。

そもそもDFDとは

technology

以上までが、DFDの書き方におけるルールやポイントの紹介でした。しかし、そもそもDFDについてどういうものか理解できていない方も少なくないでしょう。ここからは、DFDの概要などについて詳しく紹介します。

DFDの概要

DFDとは、システムのデータの流れを表現した図を指します。データの流れを記載することで、システムの機能を洗い出すことが可能です。システムの設計・開発に使用できるだけではなく、業務フロー分析にも活用できます。視覚的にシステムを容易に把握できるため、クライアントとシステム開発を実施するシステムエンジニアが、認識合わせとしてデータフロー図を使用することが可能です。また、システム開発のプロジェクトメンバーと、システムのイメージを共有する際に活用でき、機能の抜け・漏れ・重複を防げるので、データフロー図を用いることで、認識齟齬が起こりにくくなります。

DFDの他の呼び方として「データフローダイアグラム」「データフローグラフ」などがあります。また、処理について丸で示すことから「バブルチャート」という呼び名もあります。

構造化分析

トム・デマルコによって構造化分析は考察され、1970年代後半から普及しはじめました。データフロー図は、構造化分析ツールの1つです。近年では、複雑で大規模なシステムが多くあるので、構造化分析手法を用いてシステムの要求を段階的に詳細化することで、頭の中を整理することが可能です。

構造化分析とは、「DFD」「データディクショナリー」「ミニ仕様書」などのツールを利用して、構造化仕様書を作成すること定義されています。特に、データフロー図をシステムにおけるデータの流れを直感的にとらえることが可能です。そのため、DFDは構造化分析の土台となります。

データフロー図で使用する記号

youtuber

データフロー図で使用する記号は、「データフロー」「プロセス」「データストア」「外部実体」の4種類です。DFDは、提唱者によって記号の表現の仕方が異なるので注意が必要です。DFDには、「Yourdon & DeMarco記法」と「Gane & Sarson記法」の2通りの記法が存在します。2つの方法の考え方について大きな違いはありません。しかし、「Gane & Sarson記法」には補足説明が必要な場合に、便利とされる識別子の付け方が定義されています。

データフロー

データフローは、データの流れを表現する矢印のことです。プロセス・データストア・外部要素における間のデータの流れを表します。なお、矢印には名前を記載する必要があります。

プロセス

プロセスとは、データを編集するものです。「Yourdon & DeMarco記法」では円で、「Gane & Sarson記法」では角が丸い長方形で記載し、記号の中には名前を記述します。データフロー図を確認する方が概要について簡単に理解できるような名前を設定しましょう。

データストア

データストアは、データにおける保存場所のことです。データストアの例として、ファイルやデータベースなどが挙げられます。例えば、「Yourdon & DeMarco記法」では二重線で表現します。データストアに名前をつける際も、容易に理解できるものが推奨されます。また、他のシステムの名前と同じになると、将来的に問題が発生することもあるので、一意になるように通し番号を振って名前とする考え方もあります。ただし、データフロー図の「直感的で理解しやすい」という特徴を大切にするために、わかりやすい名前にしましょう。

外部実体

外部実体は、対象とするシステムの外部の方や組織のことです。データをシステムに渡してくるものやデータをシステムから受け取るものを表現します。例えば、「Yourdon & DeMarco記法」では長方形で表現し、その中に名前を記載します。外部実体については、対象とするシステムとデータを伝達する外部要因のことであるため、内容については書く必要はありません。特に、対象システムに入力されるデータに注意を払うことが重要です。外部実体については、システムに対する理解の向上のために記載しているともいえるでしょう。

書き方に注意してデータフロー図を作成しよう!

reception

これまでに、データフロー図の書き方について詳しく紹介しました。また、DFDの概要やデータフロー図を作成する際に使用する記号についても解説しました。DFDとは、システムのデータの流れをグラフィカルに表現する図のことです。データフロー図はシステム開発工程における設計などの初期段階に作成されることが多いです。

データフロー図で使用する記号は「データフロー」「プロセス」「データストア」「外部実体」の4種類です。また、DFDには「Yourdon & DeMarco記法」と「Gane & Sarson記法」の2通りの記法が存在しています。データフロー図を用いてシステム開発を進めていく中で、認識合わせを適切に行うことが重要です。特に、複雑で大規模なシステムの場合にはDFDは役に立ち、工程の手戻りを防げます。DFDには視覚的に理解しやすいというメリットがあるので、システム開発を実施する際にはぜひ活用しましょう。

気になる人のXをフォローしよう!
アンドエンジニア公式LINEでは
新着記事やエンジニアに役立つ情報をお届け!
日々のキャッチアップをお手伝いします!
マイナビITエージェント

編集部オススメコンテンツ

Sponsored
【無料個別転職相談会】アプリケーションエンジニア向け!リモート・在宅勤務で働きたい方へ
マイナビITエージェント
Sponsored

アンドエンジニアへの取材依頼、情報提供などはこちらから

お問い合わせ・情報提供
はじめて転職される方へ
SE・システムエンジニア(IT/通信/インターネット) 求人一覧

編集部おすすめコンテンツ

Sponsored
【無料個別転職相談会】アプリケーションエンジニア向け!リモート・在宅勤務で働きたい方へ
マイナビITエージェント
Sponsored

アンドエンジニアへの取材依頼、情報提供などはこちらから

Powered by マイナビ AGENT