「現在のソフトウエア開発における最大の問題は、システム全体を貫くアーキテクチャ(設計思想)を考えずに、いきなりシステム構築を進めてしまうことだ。いわゆるレガシー・システムは、アーキテクチャなきシステム構築が生んだ弊害そのものだ」。オブジェクト指向に基づくシステム開発のためのモデリング言語「UML」の生みの親の一人、ジェームズ・ランボー氏(写真)はこう指摘する。同氏は現在、米IBMのソフトウエア・グループでラショナルソフトウエア ディスティングイッシュト・エンジニアを務めている。

 ランボー氏は続ける。「一般に、技術者ならモノを作り始める前に完成品のデザインを練り、将来の拡張性や発展性を見込んだアーキテクチャを採用するのが当たり前。ところがソフトウエア開発は、完成した姿も考えずにすぐ作り始めることが珍しくない。まるで、甘やかされた子供が、目の前に置かれたおもちゃに飛びついてすぐ遊び始めるようなものだ」。アーキテクチャなき完成品は拡張性に乏しく、機能追加や修整に苦労がかかる。それでも強引に追加・修整を重ねた結果、システムがレガシー化するというわけだ。

 ランボー氏は米ラショナルソフトウェア(IBMが買収)にいた時代から、システムのアーキテクチャを検討するためのツールとしてUMLを推進してきた。最近では、UMLを生かしてシステム開発の効率化と品質向上を目指したMDA(モデル駆動アーキテクチャ)と呼ぶ新たな開発手法の普及活動を続けている。そうした視点から、「ソフトウエア工学の歴史は60年程度になるが、エンジニアリングと呼ぶには程遠い」と切り捨てる。

 厳しい意見を述べる一方、ランボー氏はソフトウエアに対する愛着も強い。「ソフトウエア工学だって、努力を続ければ必ずエンジニアリングのレベルに到達できる。歴史を紐解けば、化学が錬金術から科学になるのには何世紀もかかった。乗り物を動かすエンジンだって、今でこそ品質は高いが、19世紀のミシシッピー川ではボートに搭載したエンジンが爆発する事故が頻発していた。現在では考えられないことだが、18世紀の英国では建築物のビルが倒壊することもあった。ソフトウエア工学も、あと50年もすれば必ずやエンジニアリングと呼べるレベルに到達しているだろう」。

 ソフトウエア工学を進歩させるカギは、アーキテクチャと品質にあると、ランボー氏は分析する。「これから作るシステムは、将来の拡張性まで考え、一定のアーキテクチャに基づいて開発しなければならない。品質向上の観点では、ソースコードを極力手で書かず自動生成するといった単純ミスの防止策はもちろん、システムの使い手と作り手が正しく意思疎通できる仕組みを整備すべきだ。現在注力しているMDAは、これらの課題を解決することで、ソフトウエア工学の進化を後押しする」。

大和田 尚孝=日経コンピュータ