奇妙なクラスと実世界

先日のエントリに続いて、過去の遺物ネタをもう1つ。

今回は、オージス総研さんの主催する「オブジェクトの広場」に載せた記事について書いてみたい。この「オブジェクトの広場」に関しては、サイトの立ち上げに自分も参加したのでちょっと思い入れがある。月次のペースでコンテンツを更新することを決めたのは立ち上げ直後だが、その頃はどうせ長く続かないだろうと思っていた。しかしその後かれこれ7〜8年の間ずっと月刊で更新し続けているのには頭が下がる。新しいことを企画するのは容易ではないが、最初に決めたことを続けるのはそれ以上に大変なことである。

このサイトには、自分でもモデリングに関する記事をいくつか書いた。当時考えたことに対して、今の自分の考えがどう変化したかを振り返ってみたい。(折を見て今後も取り上げる予定。)

まずは一番最初に書いた「奇妙なクラスと実世界」という記事から。
http://www.ogis-ri.co.jp/otc/hiroba/technical/StrangeClass/index.html

この記事を書いたのは広場のページの立ち上げ直後で、まだ月刊形式にする前だった。今でもよく覚えているが、この記事はなんと一晩で書き上げた。原稿を書くのが非常に遅い自分が、ムチ(=締め切り)もアメ(=原稿料)もない状態で、そんなことができたのは奇跡としか思えない。
内容は、オブジェクト指向の仕組みと現実世界が「似て非なるもの」であることを「振る舞いの観点」から考察したものである。最近オブジェクト指向を学んだ人にはピンと来ないかも知れないが、1990年代の頃は「オブジェクト指向は現実世界をシームレスにソフトウェアに表現する技術」と喧伝されていた。このシームレス話は最初からインチキ臭いと思ったが、自分自身でその理由をきちんと説明できなかったので、ずいぶんと色々考えたものである。結局このネタは『オブジェクト指向でなぜつくるのか』のモチーフになったが、広場の記事を読むと、基本的な考えがだいたいこの頃固まったことがわかる。しかし正確にはまだこの時点では、オブジェクト指向は「組織化された超分散協調社会」で、現実世界の役割分担の延長線上に位置づけられる(正確には、なんとか位置づけたい)と思っていた。「オブジェクト指向と現実世界は大違い」と言い切るまでの踏ん切りはついてなかったわけである。

また今回数年ぶりにこの記事を読んでみたが、モデリングのスタイルや文章の書き方が今とは少し違っていることに気づいた。

まずモデリングのスタイルでは、概念モデリングでメソッドを書いているのが面白い。もちろんこの記事ではメソッドを書かないと話が展開できないが、この頃は実務でもメソッドをそこそこ書いていた気がする。しかし次の記事の「実世界をそのまま表現するモデルとは」以降ではメソッドを書いてないので、「オブジェクトの振る舞い(責務)を考えることはソフトウェアの設計の話で、要求定義とは切り離すべき」という考え方に固まったのもこの頃のようだ。

文章の書き方も結構違っている。結論の提示は最後だし、見出しもあまり工夫していない。この後、雑誌の記事や書籍を書くようになってからは、編集者の方に色々指導を受けた。つまり、記事を最後まで読んでもらえるとは限らないので、早い段階で自分の主張を提示するのが常套手段であることや、見出しやタイトルで主張を簡潔に述べるテクニックなどを教えてもらった。

とはいえ「奇妙なクラスと実世界」というタイトルは、自分だけで一晩で書いた割には悪くない。しかしちょっと上品な感じである。今だったらやっぱり「オブジェクト指向と現実世界は大違い」かな。しかし、これしか思いつかないのは、年を取って退化した証拠かも知れない(笑)。