UML(Unified Modeling Language)はソフトウェア開発の現場に着実に浸透しつつある。そのUMLを使った開発手法の一つに「Executable UML」がある。UMLで記述したモデルと,独自の言語で記述した振る舞いの情報を基に,モデルの段階で動作を検証する。さらにそこからソースコードを生成するという,MDA(Model Driven Architecture)の考え方を先取りしたとも言える手法である。主に組み込みソフトウェア開発の現場で支持されている。Executable UMLやその前身である「Shlaer-Mellor法」の提唱者で,米Accelerated Technology社のチーフ・サイエンティストを務めるStephen J. Mellor氏に,UMLをめぐるソフトウェア開発の現状と今後の見通しについて聞いた。(聞き手=八木 玲子)

──UMLをめぐる話題の中でこのところホットなものにMDAがある。MDAはソフトウェア開発に対してどのような力を発揮するか。

 MDAだけでは,ソフトウェア開発者が抱える問題は解決されない。MDAではモデルをベースにソフトウェアを開発する。これ自体はとても優れた考え方だが,まだ不足も多い。
 まず,モデルを別のモデルに変換するための標準ルール「QVT(Query/Views/Transformations)」をきちんと決めなければならない。QVTがあれば,同じモデルや変換ルールを異なるツール間でやり取りできる。またExecutable UMLにおける「アクション記述」のように,ソフトウェアの動作を記述する規約も必要だ。現在UMLにあるシーケンス図などでは詳細な動作を記述しきれないからだ。その一環として,Executable UMLをOMGで標準化する作業が進んでいる。現在のところ,2006年の10月の標準化を目標にしている。

──MDA的なアプローチはこれまで,組み込みソフトウェア開発の分野で主に支持されてきた。最近では,企業情報システムの分野にも適用しようとする動きが活発化している。これは成功すると見ているか。

 企業情報システムの分野でも,MDAの導入は進むだろう。しかし組み込み分野とは異なるやり方で浸透が進むのではないだろうか。組み込みと企業情報システムでは,事情が異なる。企業情報システムを開発する際には,既存のソフトウェア資産の扱いや他のシステムとの連携といった,組み込み分野では考える必要のない問題がたくさんある。
 ただMDA的な開発手法を身につけておくことは,両分野の間を技術者が異動する際に助けになる。例えば現在,企業情報システム分野の開発者が組み込み分野に転身するという状況が生まれ始めている。MDAでは分析や設計の成果であるモデルと,実装とが切り離されているため,比較的楽に移行できる。どちらの分野でも,システムに求められる要件を分析するためのスキルには大きな違いはないからだ。企業情報システムでモデルを作成した経験があれば,組み込み分野でもそれを生かせる。実装にかかわるスキルは身につけるのが大変だが,MDAではモデルを基に実装を半自動生成できるのでこの部分はそれほど問題にならない。

──UMLは今後どのような発展を遂げていくのか。

 UMLの道具化が進むと考えている。広く普及し,誰もその是非を議論しなくなるということだ。オブジェクト指向自体は既に道具になっているが,UMLはまだその前段階にある。今のところ,UMLを使っている人は限られている。今後,オブジェクト指向と同じように,誰もが当たり前に使う道具となっていくだろう。
 ただ現在のUMLのままでは,道具として広く使われるようになるのは難しいだろう。UMLをベースに,個々の専門領域に特化した言語(DSL:Domain Specific Language)が新たに作られていくのではないか。

──UMLは,用途ごとの言語仕様を定義するために「プロファイル」という枠組みを用意している。UMLをベースにしたDSLは,プロファイルとして作られていくことになるのか。

 私個人は,そうならないことを望んでいる。UMLのプロファイルは,あくまでもUMLの範囲内で定義されるものだ。これでは,その業界に存在する独自の記号を利用できない。その業界で長年積み上げられてきた資産が切り捨てられてしまう。これはとてもばかげた話だ。その業界に適した記号を使った表記法にすべきだ。
 例えば,二つのスイッチを一つのケーブルでつないだネットワークを設計することを考えてみよう。ネットワーク設計者は,二つのスイッチの絵を,一本の線で結んだシンプルな図で表現するだろう。これをUMLのクラス図で表現すると,図は恐ろしく複雑になる。この例からも分かるように,ある分野にとってはUMLは複雑すぎたり,逆に足りない部分があったりする。フローチャートこそが最高のモデリング言語である分野もあるのだ。だから開発者が使うDSLは,UMLの形をしている必要はない。開発者はその分野に適した表記法を使い,それをツールが内部的にUMLに変換すればよい。

──では,DSLは誰が定義すべきなのか。

 その分野を熟知した専門家が定義すべきだろう。例えばXMLでは,業界団体などによって用途別にさまざまなXMLのフォーマットが規定されている。あれと同じような手順でDSLも定義されていくことになるのではないか。

──最後に,日本のソフトウェア開発者にメッセージを。

 日本の開発者は,開発作業に関してはとても慎重で注意深いという美点がある。しかし最新技術に振り回される傾向があるのが気にかかる。例えばUMLという優れた技術がある,と聞くと,とにかくすべて採用してしまったりする。本当に必要なのは,開発作業において解決すべき問題は何か,それを解決するために必要な技術はなにか,ということだ。技術そのものに注意を奪われすぎて,それが問題解決に有益かどうかを見極めるのをおろそかにしてはならない。