「アナリシスパターン:再利用可能なオブジェクトモデル」「UML:モデリングのエッセンス」などの著書で知られるソフトウエア・コンサルタントのMartin Fowler氏(同氏のWebサイトはこちら)がビジネスオブジェクト推進協議会(CBOP)主催のセミナー(2月8~9日に東京で開催)のために初来日し,日経ソフトウエア記者との会見に応じた。同氏はCBOPの特別顧問も務めている。会見の内容は以下の通り。

日経ソフトウエア(NSW):構造化プログラミングはすっかり一般化して語られることが少なくなった。オブジェクト指向という用語は語られるようになってから20年近く経過しているが,この言葉が一般化して語られなくなるのはいつごろだろうか。
Martin Fowler氏(MF):あと数十年は語られ続けるだろう。まだ多くの人がオブジェクト指向について真剣に学んでいる。オブジェクト指向によるコーディングはずいぶん普及してきたが,オブジェクト指向の設計はまだ広く使われているわけではない。
 それでも,米国では「オブジェクト××」という会議や雑誌は少しずつ減ってきている。代わりに「コンポーネント」という言葉がよく語られるようになってきた。

NSW:確かにオブジェクト指向のコーディングは使われるようになってきたと思う。ただ,COM(Component Object Model)をはじめとするオブジェクト技術は「動作の確実性」という面で問題があるように思うがどうか。
MF:それはオブジェクト指向の考え方に問題があるわけではない。プラットフォームの出来不出来の問題だ。ただ,私もコンサルタントとして「分散オブジェクト・システムを使いたいのだが」と顧客に言われた場合には,「そうする必要が本当にあるのか?」とたずねることにしている。分散オブジェクト・システムは明らかに困難さが伴う。そうしないで済むならしないほうがよい。

NSW:あなたはモデリング・テクニックについて研究・執筆をしているが,そのモデリング・テクニックはあらゆるソフトウエアに対して有効なものなのか?
MF:まず,モデリングとプロセスは別のものだということを理解してほしい。モデリングはソフトウエアの対象を明確に理解することで,UML(Unified Modeling Language)は図解でそれを行うための方法の一つだ。UMLのピースをうまく使えば,これはどんな対象であっても利用できる。
 一方,プロセスは「実際に人間が何をするか」ということだ。ある一つのプロセスをすべてのソフトウエアに適用できるかという点については,私は懐疑的(suspicious)だ。

NSW:モデリング・テクニックは大きなソフトウエア開発プロジェクトで使うべきもので,個人がプログラムを作る際に使うものではないのではないか。
MF:私自身が一人でプログラムを書くなら,まずは紙にスケッチをしてダイアグラムを書くだろう。当然UMLを使ってということだ。Visual BasicやDelphiを使って一人のプログラマがプログラムを書くときにも,やはりモデリングは不可欠だと思う。ただ,CASE(Computer Aided Software Engineering)ツールを使うかというと,それはNoだ。

NSW:日本のプログラマに何かメッセージをもらえるだろうか。
MF:ソフトウエアを書くということは,何よりもまず「考えるプロセス(thinking process)」だ。考えることはとても重要だし,それを助けるための方法としてUMLなどのテクニックがある。そしてUMLに限らず,いろいろなことを継続的に学んでいくことが,プログラミングを習得するうえでとても大切だ。私にとってもそうだが,「一生が勉強」と言えるだろう。
 ほかには,ファンダメンタルズ(本質)が何かを見極めることも重要だ。それに「to be social(社会的であれ)」ってことも。ソフト開発では他人とうまくコミュニケーションを取る能力が不可欠だ。ソフトウエア開発はいい職業(profession)だし,いいビジネスだ。私はそう思っている。みんなにもそう思ってほしい。