DOAとPOA

こんにちは!kossyです!



本日気になったニュースはこちら
www.asahi.com

仕組みは単純だと思うのですが、アイデアが素晴らしいですね。
英語学習なんかにも応用できそうです。

技術は困っている人の課題を解決するために使うべきだと思っているので、
識字が難しくなったお父様のために開発されたという
エピソードにも非常に共感できます。










さて、今回はDOAPOAという聞きなれない言葉を見つけてしまったため、
自分なりに調べてブログにまとめてみたいと思います。





POAとは

Process Oriented Approachの頭文字を取った、「プロセス中心アプローチ」という
ソフトウェアの開発手法の考え方の一つになります。
端的に言ってしまうと、最初に処理ありきでどんなデータが必要か考える形ですね。

商品発注システムを設計するとして、
受注・発注・仕訳のシステムを作る前に、
それぞれどんなデータが必要か考える前に
プログラムを組む感じです。


今でこそこのやり方が非効率だとわかるのですが、
設計に関して何にも知識のない状態でシステムを設計しろ、
と言われたら、まずは処理ありきで考えていたと思います。

なぜ非効率なのかというと、処理ありきで考えてしまうため、
・処理ひとつひとつの単位で同一のデータを持ってしまうこと(冗長性)
・処理の内容が変わった時に迅速に仕様の変更ができない(柔軟性の欠如)

1960-70年代はプログラムそのものが単純だったため、
POAでもなんとかなっていたようですが、80年代になり
システムの大規模化が進むにつれて、上記のデメリットが表面化するようになりました。

この問題を解決するために、ある手法が台頭するようになりました。





DOAとは

Data Oriented Approachの頭文字を取った、データ中心アプローチという
これもソフトウェア開発手法の考え方の一つになります。

POA(プロセス中心アプローチ)と決定的に異なる点は、
『データが永続的である』
ということです。

データの意味や形式がシステムを組む前に先に定義されていれば、
複数のプログラムで共有することも簡単で、
システム要件の仕様変更にも柔軟な対応が可能になるというメリットがあります。

現在では、POAは時代遅れとされており、ソフトウェア開発の現場では
DOAで開発することが主流になっているようです。





まとめ
・処理ありきでソフトウェア開発するのは時代遅れです
・ソフトウェア開発はプログラム組む前にどんなデータが必要か考えましょう





参考にさせていただいた記事
【初級】ゼロから学ぶDOA 第1回 | 日経 xTECH(クロステック)