ジェームズ・ランボー氏 「一流のエンジニアになりたいのなら、UML(ユニファイド・モデリング・ランゲージ)のようなモデリング言語、あるいはJavaやC++などのプログラミング言語を学ぶ前に、ソフトウエア・エンジニアリングやコンピュータ・サイエンスの基本を学ぶことが大切だ」。UMLの生みの親の一人である、米国ラショナルソフトウェア メソドロジストのジェームズ・ランボー氏(写真)はこのように強調する。

 「エンジニアリングとは成熟した分野から学び、それをうまく活用するということ。それができるようになるには、まず基本原理(ベーシック・プリンシパル)を身に付ける必要がある」とランボー氏は続ける。「例えば、モジュール性(モジュラリティ)や一貫性(コヒーレンス)といった概念は、何年も前から変わらない。このようなエンジニアリングの基本を教えずに、いきなりプログラミング言語を教えるような大学は米国にもある。だが、もしもエンジニアとして長いキャリアを積むことを考えているのなら、まずしっかり基本を身に付けることを意識すべきだ」。

 そのようにして、ソフトウエア・エンジニアリングの基本を学び、モデリング言語やプログラミング言語を学んだら、あとは実践を通じて習得することが大切だとランボー氏は語る。「建築を学んだからといって、すぐに橋を造れるわけではない。経験を積みながら、造り方を習得する必要がある。最近、私はピアノを始めたが、これだって練習あるのみ。スキーもそうだ。レッスンを通じて基本を学び、実践を通じて具体的なやり方を習得する。UMLによるモデリングも、まったく変わらない」。

 「もちろん基本を学び、経験を積んだとしても、すべての人が『優れたモデラー』になれるわけではない。モデリングに不可欠な抽象化の作業が、どうしても苦手という人はいる」とランボー氏はいう。「個人差はどうしてもある。例えば、私の妻はリズム感が今ひとつで、ダンスはうまくない。だが、料理はピカ一だ。料理の本をみて、どの作業が重要か、どこは省いてよいかがちゃんと分かる。私は本のレシピ通りにしか、料理を作れない。だれでもバリー・ボンズのように野球ができるわけではないし、タイガー・ウッズのようにゴルフができるわけではない。それと同じだ」。

 「だからといって、『UMLでオブジェクト・モデリングをやってみたい』という人のやる気をそぐつもりはまったくない」とランボー氏は付け加える。「UMLによるモデリングに対するニーズは、ますます高まるだろう。多くの人にこの分野に挑戦してほしいと思う。優れたモデラーになれるのは、せいぜい全体の半分程度かもしれない。それでも、やり方はいろいろある。例えばデザイン・パターンのような手法を利用すれば、普通の人でもエキスパートの知恵を活用したモデリングができるようになる」。

田中 淳=日経コンピュータ