このウインドウを閉じる

Little wealth, little care.

 
 世間では、 DOAOOA との対比が取り沙汰されているようですが、議論の前提を揃えていないので、議論が空振りになっているようです。

  DOA と一口に言っても、対象領域(立脚点)が違えば、考えかたも違うし、 OOA といっても、おそらく、そうでしょう (SmallTalk を対象にした考えかたもあれば、Java を対象にした やりかた もあるでしょう)。僕自身は、オブジェクト主導に関して、SmallTalk を前提にした青木淳さんの考えかたに共感しています。

 世間では、僕は、 DOA の一派だとみなされているようなので、僕は「 DOA Data-Oriented Analysis)」という言葉を使っていますが、精確に言うなら、僕の考えかた (T字形 ER手法) は、「言語の形態論」に近い、と思っています。

  DOA を一言でまとめる概念は、おそらく、「データの独自性」でしょう。そして、「データの独自性」を、どのように考えるか、という点が、 DOA のなかで、色々の流派が出る理由でしょうね。
 たとえば、「データの独自性」を、概念設計のなかで考えれば、「(データの観点に立ってモデルを考える)実装独立」という考えかたが成立します。その考えかたをしている手法が TH法 (椿氏と穂高氏が提示なさった手法) です。TH法を起点にして、概念設計の手法として、体系を整えた方法論が PLAN-DB (データ総研社) です。概念設計の体系を整えていますから、概念設計のなかで使う方法を包括して--データ構造ばかりではなくて、プロセス構成も対象にして--1つの体系として提示されています。

 いっぽう、T字形 ER手法は、「データの独自性」を、もっと「強い」意味で考えていて、コッド正規形が提示した「data-independence」という考えかたを立脚点にしています。したがって、データ構造を対象にしていますが、プロセス構成(プログラムのアルゴリズム)を対象にしていない。したがって、T字形 ER 手法は、あくまで、データベース設計論のなかで生まれた手法です。
 ただ、(事業のなかで使われるデータを対象にしたとき、) コッド正規形の2つの弱点を修正するために、意味論 (event と resource) を導入しました。でも、できうる限り、数理モデルの完全性を崩したくなかったので、T字形 ER手法のなかに導入した意味論は、それだけに限りました。その意味論を前提にして、4つの推論ルールを使ってデータ構造を生成する、というのがT字形 ER手法です。

 したがって、 DOA と一口に言っても、概念設計 (意味論) を目的とした手法もあれば、データベース設計論としての手法もあります。
  OOAOOD の境界線が、どのように扱われているのか、という点を僕は知らないのですが、もし、(waterfall モデルを前提にして、) DOA とオブジェクト指向とを対比するのであれば、 DOA の概念設計(意味論)と OOA が対比され、 DOA のデータベース設計論と OOD が対比されなければならないでしょうね。

 しかも、 DOA は、事業のなかで扱われるデータを対象にしていますので、事業のデータを前提にして対比しなければならないでしょうね。
 コンピュータ技術の歴史を振り返ってみれば、オブジェクト指向は正しい考えかたをしている、と僕は思います。複数サーバー・複数クライアントがインターネットのなかで情報をやりとりする、というのがコンピュータを使う「普通の」形態でしょう。クライアントの最小単位は個人でしょうね。ただ、コンピュータが、当初、導入された場所は企業のなかであった、という適用の歴史を考えれば、企業向けのシステムを作ることが、コンピュータ技術を使う典型のように思われてきました。

 企業向けのシステムを作ることは、「特殊な」形態だと思ったほうが良いでしょう。「特殊」という意味は、そういうシステムでは、「事業の論理」が成立している、ということです。したがって、企業のシステムを対象とするなら、事業を効果的・効率的に進めることを第一義に考えなければならない、ということです。事業過程 (購買過程・生産過程・販売過程・労務過程・財務過程) のなかでおこなわれている仕事を効果的・効率的に実現する方法を導入する、というのが事業のシステム化でしょう。

  SE およびプログラマが、コンピュータ技術を、専門家として、第一義に考えることは当然のことなのですが、いっぽうでは、自らの技術が、事業のなかで、どのように貢献できるか、という点も考えなければならない。
 ウェッブのなかに掲載されている いくつかのページでは、 DOA を「制服(スーツ)組」とみなして、 OOP を「私服を着た自由人」として見立てたり、「マネジャー対プログラマ」という比較をしたり--こんなことは、1970年代に、もう、語り尽くされてきたことですが(苦笑)--、事業という観点が、毛頭、ないような言いたい放題が綴られています。もし、そういう くだらない対比をしたいなら、我々の業界が、マネジメントから観れば、最新テクノロジーを口実として、法外な投資を ぼったくっている業界だと思われている点を考えてみればいい。

 エンジニアが自らの技術を最高だと思いあがることは害のない自由ですが、企業向けのシステムを作る際、事業に貢献することを考えない、というのは、技術の専門家として、ethics に抵触する行為です。

 (2004年1月23日)

  このウインドウを閉じる