モデル駆動型アーキテクチャ
2004年2月2日
モデル駆動型アーキテクチャ (MDA) は、アセンブラから最初の高水準言語への移行以来、ソフトウェア開発における最大の変化となると考える人もいます。一方、それは「Night of the Living Case Tools」(CASEツールの亡霊の夜)に過ぎないと考える人もいます。私は後者の陣営に属していますが、気の利いた言葉以上のものが必要だと感じています。
現在MDAについて語られていることの多くは、80年代にCASEツールコミュニティが語っていたことと同じです。CASEツールが失敗した理由はいくつかあると思いますが、その根底には、一般的なエンタープライズアプリケーションを他の方法よりも効果的に構築できる、首尾一貫したプログラミング環境を考え出すことができなかったという事実があります。確かにCASEツールは、特定のタスクでは、しばしばかなり役立ちます。データベーススキーマを作成する場合、TextPadにSQLを入力するよりも、グラフィカルなスキーマデザイナーを使用した方が良いでしょう。しかし、CASE環境では不可能なこと、あるいははるかに難しいことが多すぎました。
そこで私の疑問は、MDAがこれを変えるかどうかということです。UMLは、設計アイデアを伝えるためのスケッチにはかなり妥当な表記法から発展しました。私はUMLをスケッチとして多用していますが、MDAが機能するために必要な完全なソリューションにUMLを変換するために必要な形式と凝集性の度合いは、はるかに困難です。確かにUML 2では、多くの人がUMLを計算上完全なものにしようと努力してきました。しかし、この多くは紙の上で行われており、UMLを使用するプラットフォームが実際にどのようなものになるかについての明確な例や経験がありません。UMLが計算上完全であっても、他の方法よりも効果的なソフトウェア開発環境である必要があります。UMLと他の方法の両方に精通している者として、私はこれを見ていないと言わざるを得ません。
例として、振る舞いロジックを考えてみましょう。シーケンス図やアクティビティ図を描くことが、最新の言語でコードを書くことと同じ程度に優れているとは考えられません、ましてや優れているとは考えられません。これは、図を実行してテストする場合のように、図よりも高い精度でコードを作成する必要がある場合でも当てはまります。
UMLが効果的なプログラミング環境を形成したとしても、それが普及する必要があります。元Smalltalkerとして、最高の言語でさえも常に主流になるとは限らないことをよく知っています。
MDAを支持する他の議論は二次的なものであり、説得力もありません。
- OMG標準スタックを持つことは、確かに80年代のCASEツールには欠けていたものですが、人々がどれだけそれに固執するかは、これから見ていく必要があります。私が驚いたことの1つは、MDAの支持者の多くがUMLを望ましくないモデリング言語と見なしているように見えることです。
- MDAの支持者はプラットフォーム独立性について語っていますが、私はこれをすでにプラットフォーム独立性の誤用として却下しています。
- MDAはパターンの自動生成を可能にすることで開発を簡素化すると聞いています。しかし、UMLでできることと、優れたライブラリやフレームワークでできることの違いはわかりません。(パターンの実装を生成することは、パターンのポイントの少なくとも半分を見逃しているという事実もあります。)
- UMLの推進の多くは、絵はテキストよりも優れているという声明に基づいているようです。場合によってはこれは真実ですが、私は一般的にその証拠を見ていません。フローチャートと擬似コードを比較したことがある人なら誰でも、自分の結論を出すことができます。
多くの点で、私はこのことについて間違っていることを願っています。ソフトウェア開発が抽象化のレベルによって向上するのを見たいと思っています。(UMLの成功は私個人にとって良いことであることは言うまでもありません。)しかし、UMLがこの抽象化の飛躍を提供しているとは思えません。それがなければ、MDAは成功しないでしょう。
興味深いことに、より多くの人々がOMG標準なしでMDAを行いたいと考えているという感覚が高まっています。OMGのMDAスタック以外のツールを使用したモデル駆動型開発について、より多く耳にするようになっています。
MDAに対する他の思慮深い批判を以下に示します。
- スティーブ・クックは、マイクロソフトのMDAに関する見解と、モデル駆動型開発のより広範な問題について語っています。スティーブはUMLの中心的な貢献者であり、英国におけるOOの初期のリーダーでもありました。
- 「ベダーラ」デイブ・トーマスは、OOPSLA 2003のMDAパネルで、精力的な懐疑主義の壮大な展示を行いました。残念ながら彼のパフォーマンスのビデオはありませんが、古いjotコラムは彼の議論の深さのいくつかを捉えています。