オブジェクト指向に基づいてシステムを分析・設計する,つまりモデリングする場合,今ではUMLを使うのが一般的になった。

 しかしそれだけでモデリング作業を大幅に効率化できるか,モデリングの精度を高められるかというと,現時点では「Yes」とは言えない。問題の1つは,業務に対応し理解しやすい概念モデルと,プラットフォームを意識した実装モデルの間に,大きなかい離ができてしまうことだ。UMLで一生懸命にモデリングしても,実装段階ではまったく違うクラスを作らざるを得ない場合が多い。

 それをなくそうとすると,概念モデルや設計モデルを作る際,特定のプラットフォーム(ミドルウエアや言語)を前提にせざるをえない。このため,プラットフォームが変わるとモデルの修正が必要になり,開発効率を思うように上げられない。

 これらの問題の解決を目的として,オブジェクト指向関連技術の標準化団体である米OMG(Object Management Group)は,2001年3月に「MDA(Model Driven Architecture:モデル駆動アーキテクチャ)」を発表した。

 MDAを一言で言えば,「モデルと実装技術を分離して,実装技術の変化に左右されないシステム開発を実現するための標準アーキテクチャ」である。「モデル駆動」には,「まずモデルありき」という意味を込めている。

 「モデルと実装技術を分離して」と書いたが,文字通り“分離”するわけではない点に注意してほしい。本当の意味はむしろ,概念モデルと実装モデルをシームレスにつなげることである。冒頭の問題を解決しつつ,それを実現するにはシステム設計の正確なモデルを実装技術から分離する必要があるのだ。


図1 「MDA」による統合アプリケーションの構築
[画像のクリックで拡大表示]

 図1[拡大表示]にMDAの概要を示した。システム開発の大まかな流れは,(1)実装技術に依存しない「PIM(プラットフォーム独立モデル)」を作成,(2)PIMから実装技術に依存したモデルである「PSM(プラットフォーム依存モデル)」を作成,(3)PSMから個別のプラットフォームに合うソースコード(スケルトン)を自動生成,というものだ。

 PIMとPSMは,いずれもUMLを使って記述したモデルである。PIMを作成する際に様々な制約を設けることで,PSMに変換できるようにするのがポイントである。OMGはPIMとPSMのフォーマットや記述すべき情報の種類,個別の実装技術へのマッピング仕様を定めている。OMGが定めるマッピング仕様を採用したアプリケーション開発ツールを使うと,アプリケーションのソースコードの大部分を自動生成できるようになる。

 すでに「ArcStyler(シナジー研究所)」,「Enterprise Studio」(ボーランド),「BlueGenet Family」(ザイトス)といった,MDAをサポートするツールも登場している。


鎌田 博樹(かまた ひろき)/オブジェクト・マネジメント・グループ・ジャパン代表
1992年以来,米OMGの日本代表を務める。2000年にOMGジャパンを設立し,代表取締役に就任。著書に「電子出版」,「イントラネット」,「デジタル奇人伝」など