PR
[画像のクリックで拡大表示]

 「開発ツール業界がMDA(Model Driven Architecture)を『図からコードを生成するもの』だと単純化したために,MDAがあたかも『子供の魔法』のようにとらえられるようになってしまった」。米Borland SoftwareのPrincipal Architectであり,標準化団体のOMG(Object Management Group)でUML 2.0やMDAの標準化に携わっているKarl Frank氏は,MDAが“誤解”されている現状をこう嘆く。これまで多くの企業がコード生成ツールを作ってきたが,これらはOMGのMDA仕様に準拠していないにもかかわらず,MDAを売り文句に販売されているという。「まともなツールがないのにMDAという言葉だけが一人歩きし,悪く言われている」というのが同氏の主張だ。

 Frank氏によれば,MDAに対する最大の誤解は「変換が1対1」だと思われている点だという。そうではなく,モデルから“複数の”モデルあるいは“複数の”テキストを生成できる点が重要だと同氏は主張する。例えば,一つのモデルをJavaやC#のソースコード,XMLといった様々なテキストに変換できなければならないという意味だ。きちんとしたモデルさえ作れば複数の実装を生成できるため,「異なるプラットフォームで動作するソフトウエア製品のラインナップを作りたい」という企業や「開発の途中でプラットフォームが変わる可能性がある」といったケースで威力を発揮するという。

 この意味で,米Microsoftが提唱している「Software Factory」という開発方法論はMDAより劣っているという。「Software FactoryはMDAのモノマネだ。だが,モデルから.NET Frameworkという一つのプラットフォーム向けにしか変換できない点がMDAとは異なる。しかも,標準ではなくプロプラエタリだ」(Frank氏)。

 ただFrank氏は,現在のUMLが,MDAに足るモデリングの精度を持っていないことも認めている。「UML 1.0はもちろん,UML 2.0でもまだ不十分。MicrosoftはUML 2.0が複雑すぎると批判するが,シンプルすぎる言語は詳細なモデリングには役に立たない。UML 2.0にOCL(Object Constraint Language,オブジェクト制約言語)を組み合わせて初めて精度の高いモデリングができる」(同氏)。つまり「より複雑なモデルのほうがよい」という立場だ。

 Frank氏は「エキスパートのプログラマがいるように,将来はエキスパートのモデラーという職業ができるはずだ」と語る。「今日,モデリングを行っているのは主にビジネス・アナリストだが,彼らには正確なモデルを作る力はない。モデリングには,技術的なバックグラウンド,つまり,いいプログラミングと同じようなレベルの力が必要だ」と同氏は強調した。