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

に公開

https://amzn.to/3REH4Y2

https://amzn.to/3REH4Y2

TL;DR

DFD (データフローダイアグラム) とそれを補完する様々な表記法を様々なケーススタディで総浚いできる良書です。特にITコンサルタントというかカスタマーサクセスというか、様々なステークホルダーに技術的な内容を正確に伝える必要がある方にお勧めできます。もちろん、ガチガチにコアな技術者であっても、思考の整理等にとても有効な手段だと思います。

目次

Amazonの書評から引用する。

いまさら? いまだからこそ、DFDが求められている!

本書は、システムや課題をデータフローダイアグラム(DFD)でモデル化する手法を学ぶ書籍です。DFDは、システムの設計やドキュメント化の際に使われるモデル化の技法の一つです。システム内のデータの流れを視覚的に表現することで、以下のようなメリットがあります。
・システム全体の構造や機能を把握しやすい
・データの流れや入出力の内容が一目でわかる
・システム内の潜在的な脆弱性やセキュリティリスクを見つけやすい

忘れさられつつある技術と言えますが、複雑化する現代のシステムやデータベースを誰にとってもわかりやすくする色褪せない力がDFDにはあります。システム要件・設計の表記手法として歴史あるものに、再度光を当てることを試みるものです。

■本書の特徴
・豊富なモデル化のサンプル
システム構築にとどまらないDFDの活用方法を豊富な事例で紹介します。
・発展的なモデル化手法を紹介
SQLやセキュリティ分野でのDFDの活用方法も紹介しています。また、オブジェクト指向設計への展開方法も解説します。
・普遍的な知識を解説
DFDは1970年代に生まれた古典的な技法ですが、今なお色褪せずに利用できます。10年使える知識として身につくように、本質的な解説を心がけました。

■章立て
第1章 データフローダイアグラム(DFD)とは
第2章 DFDの描き進め方の基本
第3章 ユーザーの要望を理解し、モデルを作成する
第4章 DFDでの表現事例
第5章 特定テーマにDFDを活用する

感想

本書の冒頭ではまず「なぜ今更DFDなのか」ということを説明するのにページ数を割いている。確かに今時の開発現場だと使わないのかもしれない。ただ、個人的にはDFDは仕事で多用するので今更感はさほどなかった。

私は、コンピュータの仕事を極限まで抽象化すると、「何らかのインプットに対して何かの処理をし何らかのアウトプットをする」ということに尽きると思っている。

この連鎖をシステム全体で表現したものがDFDだという理解をしていたが、筆者と大きくズレがないようで、私の考えが肯定されたようで安心した。

DFDでは表現できないものが何で、それをどう別の表記で補うか、という話も書かれていたのは良かった。例えばDFDでは処理順序は表現できない。そんな時はフローチャートなど別の図を使うべき、ということが丁寧に示されている。何となく感覚的には理解していたことを、きちんと言語化してくれるのはありがたい。

DFDの詳細化の手順もよくわかる。ITエンジニアの場合だと、兎角細かいところから記載しがちだが、まずは入出力とプロセスの二種類くらいを表現する(これをコンテキストダイアグラムというらしい)ところからはじめ、どんどん詳細化していく方がステークホルダー全員の理解が進むことがケーススタディでよくわかる。

全体的に、20〜30年前にでていた本と言われても信じられるくらい古典的な内容が多いが、ところどころ今時のデータエンジニアっぽい製品名が出てくるのが現代の書物であることを思い起こさせる。(なお、ここで古典的と言っているのは、時の試練に耐えられたものという意味で使っており、褒め言葉のつもりである。)

Discussion