SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

データフローダイアグラム いにしえの技術がもたらすシステム設計の可能性

データフローダイアグラム(DFD)とは?──いにしえの技術が現代システム設計に効く理由

第1回 データフローダイアグラムの歴史と現状


  • X ポスト
  • このエントリーをはてなブックマークに追加

複雑なシステムの可視化

 現代のシステムは、ますます複雑化しています。多くの異なる技術やプラットフォームが相互に作用し、データがリアルタイムで流れる環境では、システムの全体像を把握することが困難になりがちです。現代的なシステムに限らず、古くから利用されてきたシステムは度重なる改修、機能拡張によって、やはり複雑化しがちです。DFDは、そのシンプルな構造と視覚的な表現を通じて、システムのデータフローを直感的に理解するための優れたツールです。とくに新しいメンバーがプロジェクトに参加するときや、異なる専門分野の間でコミュニケーションをとるときにその有用性は顕著です。

 ここで、合併とシステム統合で非常に苦しんだことで有名な銀行のお話をしましょう。なかなか完成しないことで有名となった新システムではなく、その前に使用していたシステムでのエピソードです。このシステムは、2011年3月の東日本大震災の発生にともない、テレビ局が番組などを通じて行った「義援金への協力」の呼びかけをきっかけに、振り込みが殺到、取引明細の件数が勘定系システムで処理できる1日の上限値を超えたことから、大規模なシステム障害が発生しました。

 長きにわたって使用し続けていたシステムは、機能の追加・改修を繰り返し、肥大化・複雑化していました。また、その規模の大きさ故に、担当も細分化されていました。システムの全体像を把握できる人がおらず、どこの異常がどこに影響するかを把握することが難しい状態で、いわゆる「ITガバナンスの不全」と呼ばれる状態になっていました。

 ITガバナンスを立て直すため、このトラブル以降1年にわたり再発防止策に取り組みましたが、この際に力を入れたのが「データフロー図 」を作成することでした。

 この取り組み以前においても、システム単位での仕様書、業務の流れを示す資料も作成されていましたが、データの流れに着目してシステム全体を貫くモデルを作成したのは、これがはじめてだったとのことです。役割分担が細分化され、知識が局所的にしか存在しない状態から、「組織全体としての知識」として昇華させることができたのです。

 こうして作成したデータフロー図は、障害の原因となった「上限値」の設定箇所の特定や影響範囲の確認、エラー処理の強化といった障害発生予防にも役立っただけでなく、障害発生時の伝達体制においても、影響範囲や規模が速やかに把握できるようになり、関連部署や外部への連絡も円滑になったそうです。

 この事例のように、「データフロー」に着目して可視化することができるDFDは、複雑化したシステムを分析して可視化し、システムの改善、障害対応、情報連携の強化につなげることができます。

オブジェクト指向分析・設計およびUMLとの関係

 DFD以降、さまざまなモデリング手法、分析・設計手法が登場し、比較して優劣を語られるシーンも多いですが、完全に対立する概念ではなく、それぞれの特徴を理解し、それぞれの長所を活用すべく併用することで相乗効果を得られることもあります。

 たとえば、先ほども取り上げたUMLとの関係性について見てみましょう。

 UMLは、オブジェクト指向の視点からシステムをモデリングし、クラス図、シーケンス図、ユースケース図など、複数の視点でシステムを表現します。これに対してDFDは、システム全体のデータフローに焦点を当てて、プロセスを経由してデータがどのように移動するかを視覚化します。また、DFDを用いた構造化分析のアプローチは、高次元のモデルから細分化しつつ、その次元を上下しながら整合性を担保していく手法です。

 こうした特徴を踏まえて併用する場合、DFDでシステム全体のデータフローを俯瞰し、どのデータがどのプロセスを経由するのかを把握し、さらにプロセスを細分化した後、UMLを使って各プロセスの詳細設計を行うことで、システム全体の理解と詳細設計が統合され、設計の一貫性を向上させることができます。

 また、DFDとUMLでそれぞれ異なる視点で分析・設計を行うため、多面的にチェックすることができ、一方の手法だけでは発見しにくい問題の発見につながります。

 ユーザーストーリーの整理の段階において、UMLではユースケース図を用います。ユースケース図は、ユーザー(アクタ)とユースケースによって概観を表現するシンプルなモデルであるため、非ITエンジニアとのコミュニケーションに活用できますが、極めてシンプルである半面、動作・振る舞い、データ、依存関係などの表現が困難です。UMLに閉じてこれらの情報を補う場合、シーケンス図や状態遷移図などを併用するのが一般的ですが、これらのモデルは使い慣れていない、読み慣れていない人、さらには非ITエンジニアが理解するにはハードルが高くなります。

 ここで、ユースケース図と同じくらいシンプルな構成要素で描くことができるDFDを用いると、非ITエンジニアの理解へのハードルを上げることなく、ユーザーの操作とそれにともなうデータフローを統合的に視覚化することができます。

シンプルな表現技法

 業務であったり、顧客体験であったり、すでに実装されているシステムの処理といったものを極度に抽象化すると「何らかの情報を入力として、何らかの処理をして、生まれたものをどこかへ出力する」という構造にたどり着きます。そして、DFDはこれをそのまま表現することができます。それと同時に、出力されたデータが次のプロセスにつながっていない場合、「何のために生み出されたのか? その処理は本当に必要だったのか? わたしたちはこの処理やデータについて、正しく理解できているのか?」という疑問に気づくきっかけも与えてくれます。

 DFDは「データ」「プロセス(処理)」「外部エンティティ」をデータフローを示す矢印でつなぐという、たった4つの要素で描くことができる、極めてシンプルな表現技法です。そのため、非ITエンジニアであっても読み取ることが容易です。また、自身の業務を「流れ」や「手続き」で覚えている業務担当者にとって、静的断面を表現するモデルよりも受け入れやすいでしょう。

 こうした特徴は、コミュニケーションツールとして非常に有用です。システムの発注者やヒアリングに応じた業務担当者は、話をした内容がITエンジニアに正しく伝わったのか、正確に理解してもらえたのか、不安を抱えた状態になります。ITエンジニアが作成する設計書の内容が、ITエンジニアにしか理解できない体裁であった場合「実際に動くもの」が渡されてくるまで、確認する術がありません。こうした状況に対してとれるアプローチは「非ITエンジニアにも理解しやすいモデルを作って見せる」か「質のよいドキュメントを作成するよりも、とにかく動くものを早く作って見せる」か、となります。このうち、前者の手段としてDFDは非常に優れている、と言えるでしょう。後者の代表格がアジャイルであり、設計手法としてはドメイン駆動設計などが該当するでしょう。

 多くの関係者、多くの開発者が関わる大規模システムの開発においては、アジャイル的アプローチがとりにくいことも多く、しっかりしたドキュメントを作成し、認識齟齬をなくしたうえで、次のステップに進む必要があります。とくに日本では、自社のシステム開発をシステムインテグレータなどの専門会社に委託することが一般的です。受託した会社も業務を細分化し、二次・三次受託者へ再委託することが多く、いわゆるゼネコン方式がとられています。開発プロセスには、ウォーターフォールモデルが採用されています。このことは長きにわたり賛否の議論が続いていますが、現実問題として、このような開発体制、商習慣が主流として継続しています。こうした体制である限り、各受発注者の間の依頼内容の認識齟齬、作業工程間の情報齟齬は、品質問題や開発遅延に直結する原因となるため、正確に表現されたドキュメントをよりどころとしたコミュニケーションが不可欠です。DFDを使ってモデリングすることで、システム全体を描き、必要とされる機能やデータストアを明確にし、そこから、受託者がそれぞれ担当する範囲を切り出して開発を進めることができます。これにより、担当者間で相互に情報連携する境界線も明確に示すことができます。自身が開発を担当している機能が、どこにどのように影響してくるかを把握することも容易になるのです。

データフローダイアグラム いにしえの技術がもたらすシステム設計の可能性
 

Amazon  SEshop  その他

 
データフローダイアグラム いにしえの技術がもたらすシステム設計の可能性

著者:大嶋 和幸、松永 守峰
発売日:2025年4月28日(月)
定価:3,080円(本体2,800円+税10%)

この記事は参考になりましたか?

  • X ポスト
  • このエントリーをはてなブックマークに追加
この記事の著者

大嶋 和幸(オオシマ カズユキ)

 株式会社アクアシステムズ SE、IT コンサルタントとしてCRM、HRM、BPR などの各種案件に関与し、企画立案から設計、実装、試験、運用、保守を経験。その後、事業会社数社にて事業企画、管理会計、総務、社内情報システム担当など多岐にわたる業務に従事。アクアシステムズ入社後は、各種データベースの導...

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

松永 守峰(マツナガ モリオ)

 株式会社アクアシステムズ オープンシステムの黎明期にはじめてリレーショナルデータベースに触れて以降、ソフトウェアベンダーのサポート技術者、大手メーカーのIT 部門ではDBA、コンサルティングファームでのDB コンサルタントと立場を変えながらデータベースに関わる。アクアシステムズに入社後はパフォーマ...

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

湊川 あい(ミナトガワ アイ)

 IT漫画家。マンガと図解で、技術をわかりやすく伝えることが好き。著書『わかばちゃんと学ぶ』シリーズが発売中のほか、マンガでわかるGit・マンガでわかるDocker・マンガでわかるRubyといった分野横断的なコンテンツを展開している。

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

  • X ポスト
  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/21309 2025/04/23 11:40

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング