2008年11月12日水曜日

「モデル駆動」は再燃するか?

MDAなど「モデル」駆動が復活の兆しかね。というか、日本はトレンドに弱すぎなのか、地道にやるってことができてないから「復活」だと思ってしまうだけかもしれない。こないだガートナーの亦賀さんも日本のベンダは継続性が弱いって言ってたけど。

モデル駆動アプローチがうまく機能しない(しなくなる)8 つの理由

「8つ」とか言っておきながら、読んだ限りでは、とにかく「1.モデル駆動工学のすべての目的が対象とされていない」で書いてあることが重要(言いたいこと)なんじゃないかと思われる。

欧州でもやはり地道にやっていて、車や航空機などのソフト開発への適用検証が行なわれているようですよね。

DSLについては技術的に面白いと思いつつ、やはり目的層でこれという明確さがなく、モチベーションが出てこなかったのですが、もう少し考えたくなりました。
GPL に基づいた DSL の定義を行うには、言語メタモデリングと存在論的メタモデリングの両方が必要です。
そんな難しいこと言ったら、メタモデル作れる人おらんようになるがな。でもそれくらい難しいということか。

そういえば、「モデル駆動関連、ほとんど組込み系と定義される分野で発展していますよね。この理由って何なんでしょう?」って社内で言っていたら、「ハードは人間に比べて計算モデルを厳密に定義できる」からではないかという回答をもらい、なるほどと思いました。
あと、なんとなく手戻りコストが大きい(そうだ)から必要にかられてっていう部分もあると思いますが。

2 コメント:

Yuji さんのコメント...

良い記事だと思います。
最近、私はようやく保守フェーズまで服また一連の開発の実際をある程度観察できた気がします。その経験でこの記事に関連したコメントを3つ上げるとすると
1. モデル化を新規開発に適合させるは困難です。ある程度の開発のスパイラルを経験し、その後安定性の高い部分のみをモデル化、そしてDSL化すべきでしょう。
2. メタモデル化して制約をかける品質部分は対象アーティファクトによって異なります。semanticに制約をかけるべきなのはビジネスルール、状態遷移などモノであり、syntaxに制約をかけるべきなのは処理フローなどコトです。ここを明確に意識することが使えるモデルを実現する上で非常に重要です。
3.やはり、メタモデル化を構築することは、相当に抽象概念の理解できる人でないと困難です。通常はモデルがあり、それをインスタンス化するというだけでも嫌になる人がほとんどという前提が正しい思います。つまりDSLを作ってすらもその利用ができる人は少ないと考えるべきです。しかし、モデル駆動で品質良くできた資産は長い安定性を持つでしょう。つまり、よいモデルの指標は開発の生産性ではなく、実現の生産性とすべきです。

toraneko さんのコメント...

まぁ、某社では何億も突っ込んでなんの成果もでてないので辞めた方がいいと思うね。