「長瀬嘉秀のソフトウェア開発最新事情」 長瀬嘉秀 テクノロジックアート 2002/12/7 |
ソフトウェアの開発手法を巡る動きが活発化している。ウォーターフォール型開発手法の神話はすでに崩れ去ったと言ってよいのだろうか? 反復型開発手法の雄「RUP」は果たして定着するのか? アジャイル開発プロセスの思想が、一時期のブームに終わってしまう可能性はないか? 開発手法を巡るさまざまな潮流の観察者がおくる連載コラム。(編集局) |
第1回 「OOPSLA 2002」にビル・ゲイツが来た! |
■Webサービスへの熱い期待
11月4日から5日間、米国シアトルでは、「OOPSLA(Object-Oriented Programming Systems Languages and Applications)2002」が開催された。OOPSLAは、ACM(Association for Computing Machinery)という世界最大の学術団体が主催するオブジェクト指向のイベントである。今回は、世界43カ国から約2000人の参加者が集まった。
今年のテーマは「XPとアジャイル」「Aspect指向」「Webサービスと.NET」の3つ。ちなみに、昨年まで世間を騒がせた(日本ではいまでも騒がせているが)「UML」というキーワードは、ほとんど姿を消してしまった。UMLがすでに物珍しい最新技術ではなく、開発現場に浸透した基礎的な技術となったためだろう。
さて、今回のOOPSLA2002で私が特に注目したのはWebサービスである。学術的な色合いが濃いOOPSLAで、実装技術が大きなテーマとして取り上げられるのはとても珍しい。最大のスポンサーがIBMとマイクロソフトだったという政治的な要因を差し引いても。おそらく、IBM、マイクロソフトに代表される産業界とともに学術界も、数少ない重要技術(しかも抜群に将来性がある!)に注力していく方向性を今回のイベントで示したかったのかもしれない。
OOPSLAの会場風景 |
IT業界にとって、Webサービスが“失敗”することは許されないことなのだろう。OOPSLA2002を見て分かったが、業界の期待はあまりにも大きい。現在のIT業界における最大の勝ち組ベンダ、IBMとマイクロソフトが全力でWebサービスに力を注ぐ限り、産業界、学術界問わずその市場にプレーヤとして参加し続けることになると感じられた。
■メタファの優位性を説くケント・ベック氏
基調講演に登壇したのは、開会初日にXPの提唱者として著名なケント・ベック氏、最終日がマイクロソフトの会長兼チーフソフトウェアアーキテクトのビル・ゲイツ氏という、なんとも好対照で豪華な顔ぶれだった。
ベック氏の講演は「The Metahpor Metahpor」という奇妙なタイトルに彩られていた。中身はもちろんメタファ(比喩)についてである。この講演で使用されたメタファとは、XP(Extreme Programming)におけるプラクティスの1つを指す。つまり、プログラムの構造やシステムアーキテクチャを表現するときに使用するプラクティスである。
簡単に説明してみよう。クライアント/サーバシステムのアーキテクチャとは何かと聞かれたとき、あなたはどのように説明するだろうか? あなたはこう答えるかもしれない。「プログラムをユーザーインターフェイス部分とビジネスロジック部分に分割し、それぞれのプロセスを違ったコンピュータで稼働させるシステムだ」と。要するに、この説明を内包する“クライアント/サーバ”という言葉がアーキテクチャのメタファなのである。メタファを活用することで、システムの概要を一言で表現し、コミュニケーションの活性化を図ることができる。それによって、開発の効率性を向上させることが可能となる。ただし、である。以上のことはあくまで建前の話で、このメタファというプラクティスは、XPの数あるプラクティスの中で非常にイメージがつかみにくい。
そこで、ベック氏はメタファのより分かりやすい解説を講演のテーマに選んだわけだ。
ベック氏によると、メタファは「ソース」「ターゲット」マッピング」という3つの要素で構成される、という。ソースとはメタファの定義を示し、ターゲットはメタファの適用先、マッピングはソースとターゲットの関係を具体的に表で表現する。そして、ベック氏は「概念メタファ」(Conceptual
Metaphor)として、以下のようなメタファを紹介した。
メタファは「ソース」「ターゲット」「マッピング」という3つの要素で構成される |
ソースとターゲットを表にして、メタファとして表現する。ベック氏はこれまでオブジェクト指向の世界で、CRCカード、デザインパターン、XPを生み出してきた。今回のメタファもオブジェクト指向の世界に新たな一石を投じることになるのかもしれない。この内容を受けて、多くの研究者、エンジニアがメタファの研究に進むと予想される。なぜなら、メタファは、デザインパターンよりも手軽に使えるのである。ベック氏はいう。「デザインパターンを活用する場合、プログラミング作業の最中にパターンを見つけ、パターンの定義に数時間を費やし、再度プログラミング作業に戻る、という工程を繰り返す。これではあまりにも時間がかかり過ぎる」。一方、メタファの活用はプログラミング作業を加速する。メタファの定義はすぐにできるし、適用も素早く行える。デザインパターンの使用はトレーニングが必要であり、ある程度の勉強をしなければ習得することができないが、メタファは容易で、開発メンバーはすぐに理解できる。おそらく、XPやアジャイルによる軽量高速開発にはかなり重要な要素となる可能性が高い。
つまり、デザインパターンの定義を行うには、コンテキスト、構造、構成要素など、さまざまなことを検討し、作成しなければならないし、この作業にはかなりの時間を必要とするが、一方で、メタファは直感的であり、ソース、ターゲット、マッピングだけを対象にするだけで定義を行うことができるのである。
システムの開発期間が短縮され、ユーザーの要件定義を実際のシステムとして実現するのが困難になっている現状に対し、メタファは非常に有効なコミュニケーション手段を提供するといえるだろう。ビジネス環境の変化は、システムの開発方法にも大きな変革をもたらしている。ベック氏は、このような現状に適応する方法を常に検討し続けている。
■ゲイツ氏は“Design”ではなく“Modeling”と口にした
ビル・ゲイツ氏の講演は、マイクロソフト全社を挙げて推進するセキュリティ戦略「Trustworthy computing」とWebサービスへの取り組み、.NETの開発環境を強化する新テストツールの紹介、Tablet
PCのお披露目という内容だった。
やはり、“筋金入りのプログラマ”だったゲイツ氏 |
当初、私はゲイツ氏の講演の内容よりも、オブジェクト指向な人たちが、彼に対してどのような反応を示すのかが、とても気になっていたのだが、この答えは、講演前に判明した。前方の席で写真撮影をしようと思い、講演の30分前にメインホールに行ったのだが、そこにはすでに、入場を待つ長蛇の列ができていた。オブジェクト指向な人々は、ゲイツ氏の話にほとんど興味を示さないのではないかという私の杞憂(きゆう)は、一瞬にして消え去った。彼らもゲイツ氏の話が聞きたかったのだ。
さて、講演の内容である。基本的には、.NETをプラットフォームにWebサービスを展開するというマイクロソフトのビジネス戦略について、が講演の主要テーマだった。今後の開発環境はすべて.NETになっていくということ、Officeなどのコンシューマ製品も.NETに連携していく、という流れである。確かに、ExcelやWordが.NET環境に組み込まれていくならば、かなりのインパクトが予想される。Webサービスを通じて、マイクロソフトのアプリケーションがインターネット上で動く、ということなのだから。
ゲイツ氏はさらに、ビジュアルテストツール「Scout」(開発コード名)のデモンストレーションも行った。テストでカバーされるステップが色分けされて表示される。テストカバレッジを把握するには非常に便利そうだ。コンパイルしたバイナリについても、ソースコード同様、色分け表示が可能である。これは、面白いかもしれない。デモンストレーションの中で、Windowsのソースコードの一部が、サンプルとして公開されていたのだが、観客の目が、ツールの機能よりも、ソースコードに向いていたのには笑った。
もちろん、Tablet PCのデモンストレーションも行われた。Ink技術による文字認識を試すデモが行われたが、かなり汚い筆記体の文章を識別していたのには感心した。果たして、日本語はどの程度認識できるのだろうかと疑問を持ってしまう。平仮名を入力した後に、漢字変換のアクションが必要だとしたら興ざめだ。
講演の最後にゲイツ氏は、モデリング、プログラム言語、XMLストレージ、.NET開発環境に関する話題を展開した。私は、ゲイツ氏が「設計(Design)」ではなく、「モデリング(Modeling)」という言葉を使ったことに少なからず驚いた。プログラマは往々にして、“Modeling”ではなく“Design”という用語を使うものなのである。しかし、筋金入りのプログラマであるゲイツ氏が“Modeling”と口にした。モデリングは、ここまで定着したのかと思った。
■XP対RUP!?
パネルディスカッションにはいくつか面白い試みがあった。開発で重要視するのは実装か設計か、を議論するパネルディスカッションでは、パネリストたちが、1つの議論が終わると実装側、設計側を交互に入れ替わるのである。この入れ替わりが、とても面白い。例えば、設計側では「リファクタリングなんて、きちんと設計作業が行われていない証拠でしょ」と攻撃し、実装側では「はじめからすべての要求を盛り込んだ設計なんてできるわけがない」と反論する。このような議論をパネリストが立場を変えながら行うのである。そうすることで、実装、設計と立場は異なりながらも、両者にとって共通する問題が浮かび上がってくる。パネリストには、マーチン・ファウラー氏、ロン・ジェフリーズ氏などXPな人々が参加していた。
もう1つ、ケント・ベック氏、ロン・ジェフリーズ氏らXP陣営の論客とRUPを提唱するラショナルソフトウェアのコンサルタントが、開発方法論をめぐる熱い議論を戦わせるパネルディスカッションがあった。愉快だったのは、ラショナルソフトウェアのパネラーが、首から標的を下げていたことである。“RUPに対する批判は甘んじて受けよう”との意思表示だろう。議論は、ラショナルソフトウェアのパネラーが、大規模システム開発で経験したプラクティスを紹介する場面があるなど、終始和やかに行われた。
■Eclipseの人気はすごい
OOPSLA2002ではオブジェクト指向をめぐるトレンドを一望の下に眺めたわけだが、局所的な視点として開発環境にも注目したい。Eclipseの人気にはすごいものがあった。EclipseとはIBMが開発したIDEツールだ。現在ではオープンソースとして開放されている。Eclipseの最大の特徴はプラグインにある。多くのプラグインがコミュニティを通じて開発され、それらの機能はプログラム作成時にだれでも利用できる。テストツールとしては、JUnitが組み込まれており、テストファーストプログラミング(テスト駆動開発)を実践できるのである。OOPSLAの催しとは別に、Eclipseをテーマとしたパーティが夜中に行われたのだが、狭い部屋に500人以上が集まった。室内は、空調が効かないほど熱気にあふれていたが、ほとんどの人が終わりまでいた。
そのパーティの目玉は、ケント・ベック氏とエリック・ガンマ氏のEclipseのデモンストレーションである。ベック氏とガンマ氏が対談をしながら、主にガンマ氏がEclipseの操作を見せるという豪華なセッションだった。ガンマ氏は、自分で作成している「HotDraw」というEclipseプラグインについて、実際にプログラムを書きながらその機能を解説した。彼がプログラムを作成するスピードは驚くほど速かったのである。Eclipseとテスト駆動により、かなり高速のプログラム開発が可能なことを体感したものだ。プログラマによっては、生産性が10倍どころではなく、30倍程度にまで拡大するのではないか、と内心感心してしまった。
レセプションでは、ジョン・ブリシデス氏、マーチン・ファウラー氏が合流した。お酒や食べ物が無料で振る舞われる。IBMという巨大なスポンサーシップを擁するオープンソースのすごさを実感したのだった。
◆
最後に、OOPSLA2002では、ケント・ベック氏とマーチン・ファウラー氏の新刊が発売され、飛ぶように売れていた。邦訳は、現在作業を行っている最中である。来年の春には書店に並べられるようにしたいと考えている。
ともあれ、この1週間は、ケント・ベック氏の家族、マーチン・ファウラー氏、アリスター・コーバーン氏、ウィリアム・C・ウェイク氏、ジョン・ブリシデス氏など多くの人たちと友好を深めながら、非常に有意義に過ごした。残念なのは、せっかくシアトルに来たのに、マリナーズの試合がすでにシーズンオフになっていたことだ。とはいえ、結局、日米野球でイチローを見ることができて、不満はかなり解消したのであるが。
【関連リンク】
OOPSLA 2002
プロフィール |
長瀬嘉秀(ながせ よしひで) 1986年東京理科大学理学部応用数学科卒業後、朝日新聞社を経て、1989年株式会社テクノロジックアートを設立。OSF(Open Software Foundation)のテクニカルコンサルタントとしてDCE関連のオープンシステムの推進を行う。OSF日本ベンダ協議会DCE技術検討委員会の主査。現在、株式会社テクノロジックアート代表取締役。著書に「分散コンピューティング環境 DCE」(共著、共立出版)、「ソフトウェアパターン再考」(共著、日科技連出版社)、「コンポーネントモデリングガイド」(共著、ピアソン・エデュケーション)など多数。また「独習UML」(監訳、翔泳社)、「XP エクストリーム・プログラミング入門」(監訳、ピアソン・エデュケーション)、「UMLコンポーネント設計」(監訳、ピアソン・エデュケーション)、「入門Cocoa」(監訳、オライリー・ジャパン)、「Webサービス エッセンシャルズ」(監訳、オライリー・ジャパン)など海外の最新テクノロジに関する書籍の翻訳作業も精力的に行う。 |
Java会議室でご意見、ご感想を募集中 |