DOA(データ中心アプローチ)
システム設計の やり方だよ
まずはデータの構造や流れを整理するよ
データをもとにして処理とかを考えるよ
「DOA」と表現された場合は「Data Oriented Approach」の略だよ
簡単に書くよ
DOA(データ中心アプローチ)(読:データチュウシンアプローチ 英:data oriented approach)とは
システム設計の やり方のひとつ
であり
「何はともあれ、データだよ!まずはデータを整理しよう!」な考えでもって、まずはシステムで使うデータを洗い出して構造や流れを整理し、それをもとにして「それじゃあ、どんな処理をやれば、これらのデータを良い感じに扱えるかな?」を考えるやり方
です。
詳しく書くよ
システムというのは、あんな処理をやって、こんな処理をやって、そんな処理をやります。
そうすると、あんなデータが、こんなデータになって、そんなデータになります。
システムは処理をやります。
そうすると、データが変わります。
処理の内容が変われば、データの内容も変わるでしょう。
扱うデータが変われば、処理の内容も変わるはずです。
処理とデータには関連性があります。
以上を踏まえて、システムを構成する2つの要素
1.処理
2.データ
のうち
「2.データ」を先に考えて、その結果をもとにして「1.処理」を考えるシステム設計のやり方
が「データ中心アプローチ」です。
「こんな業務をやるシステムだけど、多分こんなデータを扱うことになるよね。ということは、これらのデータを処理するには、こんな機能が必要で、そうすると、実際の処理は、こんな感じかな」なアプローチのやり方です。
データ中心アプローチは「Data Oriented Approach(データ・オリエンテッド・アプローチ)」を省略して「DOA」と表現されることも あります。
「Dead Or Alive(デッド・オア・アライブ)」の省略では ありません。
ご注意ください。
※「Data Oriented Approach」を何となく日本語にすると「情報指向アプローチ」となります。[詳細]
例えば、そうですね。
ピヨ太君がピヨピヨタイムカードシステムを作るとしましょう。
データ中心アプローチでは、まず「どんなデータが出てくるかね?」を考えます。
ピヨ太君は
1.社員番号
2.社員の名前
3.日付
4.出社時間
5.退社時間
の5つが必要だと考えました。
このうち
1.社員番号
2.社員の名前
は「社員情報」です。
3.日付
4.出社時間
5.退社時間
は「出退勤情報」です……が、誰が出社したのかも知りたいですよね。
「社員情報」の『社員番号』も追加して
1.社員番号
3.日付
4.出社時間
5.退社時間
を「出退勤情報」としました。
なお「社員情報」の『社員番号』と「出退勤情報」の『社員番号』は同じ物です。
線で結べます。
さて、これでピヨピヨタイムカードシステムで扱うデータが決まりました。
あとは、これをもとにして処理を考えます。
面倒くさいので過程は省きますが、必要な処理は以下のような感じでしょうか。
1.出社処理
「出退勤情報」にデータを追加。『社員番号』『日付』『出社時間』を埋める。
2.退社処理
「出退勤情報」のデータを更新。『退社時間』を埋める。
3.社員情報メンテナンス処理
「社員情報」のデータを追加・更新・削除。
4.出退勤情報メンテナンス処理
「出退勤情報」のデータを追加・更新・削除。
これで、システムでやるべき処理が決まりました。
あとは実際に作るだけですね。
かなり大雑把ですが、このようなアプローチの仕方がデータ中心アプローチです。
まずは、システムで扱うデータを一気に洗い出して、それを整理します。
そうすると「これがシステムで扱うデータが全部詰まったデータベースだよ」なデータベースができるはずです。
あとは、それをもとにして、どんな処理が必要かを考えます。
そんなやり方です。
ちなみに、システムを構成する2つの要素
1.処理
2.データ
のうち「1.処理」を先に考えて、その結果をもとにして「2.データ」を考えるシステム設計のやり方は「プロセス中心アプローチ(POA)」と言います。
もちろん「1.処理」を考える過程で必然的に「2.データ」を考えることにもなりますけどね。
あくまで、中心となるのは「1.処理」です。
「こんな業務をやるシステムだから、こんな機能が必要で、そうすると、こんな処理をやることになるね~。あっ、そうすると、こんなデータを扱うことになりそうか~」なアプローチのやり方です。
気が向いたら、併せて覚えてあげてください。
データ中心アプローチ(DOA):考える優先順位が「データ」→「処理」
プロセス中心アプローチ(POA):考える優先順位が「処理」→「データ」
です。
一言でまとめるよ
まぁ「データ中心アプローチ(DOA)」って単語が出てきたら「『(処理よりも先に)データから考えていこう!』な設計のやり方なんだな~」と お考えください。
おまけ
■訳してみるよ
「data(データ)」の意味は「資料」とか「知識」とか「情報」とかです。
「中心」は日本語ですね。
「approach(アプローチ)」の意味は「近づく」とか「迫る」とかです。
何となく くっつけると
情報を中心に(考えて完成に)近づく
となります。
■検索してみる?






