MD*: The Model-Driven Star blog: IFML is now adopted and published by OMG, Wikipedia, and YouTubeについて

Marco Brambilla さんのブログポストの紹介です。IFML については以前少し書いたと思いますが、OMG の標準化プロセスをうまく通り抜けたようです。

  1. MD*: The Model-Driven Star blog: IFML is now adopted and published by OMG, Wikipedia, and YouTube

仕様書を読んでもイメージを把握することが出来なかったのですが、上のページに YouTube のリンクがあり、それで分かり易くなりました。 GUI モデルを作成する過程でデータモデルを埋め込んで作成してしまうということのようです(ちょっと「微妙」なところです)。 ただ、これが OMG 標準となり、同じく標準のテキスト変換と組み合わせてJavaコードが出来上がるのを見るのは「何となくうれしい」ですね。 ビジネスロジックはどうするのだろうと思いますが、仕様書のどこかに書かれているのでしょう。

 

広告
MD*: The Model-Driven Star blog: IFML is now adopted and published by OMG, Wikipedia, and YouTubeについて

Eclipse Modeling 勉強会について

先週金曜日(12月7日)の夜に東京で Eclipse Modeling 勉強会 を開催しました。 夕刻の地震でどうなるか心配でしたが、10名程度のこのテクノロジに関心を持つ方々が集まり、楽しい時間を持つ事が出来ました。

私は二つの話をしました。一つ目はご挨拶代わりのもので、勉強会をやってみようとした経緯、eclipse と modeling のつながり、そして OMG 仕様と eclipse 実装の関連などについてです。二つ目の話は DSL についての話で、特に GMF と Xtext の利用についてのものです。

勉強会実施の相方をやって頂いた細合さんから Eclipse Modeling Project の全体像のお話、大島さんから MDA と Acceleo を使った実システムへの MDA 適用経験のお話、奥村さんから欧州の研究プロジェクトと Eclipse Modeling Project との関係についてのお話、など興味深いものが並びました。

この勉強会はこれが最初で最後という訳でなく、これからも機会があれば実施する予定です(次は2月頃と勝手に考えています)。そのために、Xtextユーザ会と同様にメーリングリストとサイトをもうけました。

このテーマに関心を持って頂ける方の参加をお待ちしています。 なお、サイトの方に私の発表で触れた情報を多少書き込んであります。

Eclipse Modeling 勉強会について

モデリングとプログラミングの間について

モデリングは(私的には)対象や物事を抽象化することで「木を見て森を見ず」状態を避けることが大きな効能であると思っています。ソフトウェアの世界でモデリングというと UML が代表的な言語でありその UML で描く事の出来る各種ダイアグラムがモデルということになります(正確には UML モデル)。難しいのは、正しく正確なモデルというものが評価しがたいということではないでしょうか。簡単なモデルならいざ知らず、クラス数(これもモデル作成者によって変わると思いますが)が増えてゆくと(異なる流儀などにより何通りも書き方が出てくるため)正しいモデルというものが見えなくなってきます。

それでも、ある程度まともなモデルに基づいてソフトウェア開発につなげようとする試みは多くあります。MD* (Model Driven Architecture/Development/Engineering/… ) と呼ばれるもので、標準(UML)ベースのものや DSL ベースのものがあります。

モデルをプログラムに近づける MD* の活動は、ツールベンダによる商用製品やオープンソース系のものがあり、オープンソースでは eclipse に多くのプロジェクトがあります。これは eclipse が最初から EMF をその要素としていたためです。当初 EMF がオープンソースとして出されたことに驚きました。EMF は OMG の MOF のサブセット(emof)の実装ですので、これを利用すればモデリング言語を実装出来る訳です。その結果、現在では UML や BPMN などについてのグラフィカルエディタがプロジェクトとして活動しています(使えます)し、GMF や Xtext なども EMF を利用しています。

モデルはあるレベル・視点での表現であり、別の視点での表現や詳細化が必要になることがほとんどです。このためにモデルから別のモデルを生成するモデル変換というものがあります。OMG 標準では QVT と呼ばれていますが、アカデミックな世界には ATL というものもあります。どちらも eclipse 環境用に実装され利用出来るようになっています。

モデルをプログラムに近づけるには、最終的にモデルをテキスト(プログラム)に変換してゆくステップが必要です。これを100%実現するのは困難なため、主流はテンプレート方式をとったものになります。これについても OMG 標準などがあり、それを eclipse 環境で実装するプロジェクトが成果を出しています。

プログラミングを主体に考える立場を取ると、ボイラープレート的なコードは出来るだけ排除し、より本質だけを記述したり、何度も同じようなコード書かずに済ませたい、ということから Internal DSL やフレームワークなどが使われていると思います(例えば RoR のような)。

実は「モデリング」や「プログラミング」という一般的な言葉を並べても現実の世界では余り意味が無く、具体的な対象の世界がまずあって、その世界に向いたモデリングやプログラミングを選ぶ事がとても大切だと思います。例えば状態遷移が支配するような世界からビジネス分析が必要な世界までを同じ言葉で扱うのはやはり無理があるでしょう。

今後このポストの続編として、比較的使えそうに思えるプロジェクトや製品をいくつか紹介出来ればと思っています。

モデリングとプログラミングの間について

“Model-driven Software Engineering in Practice” book について

Model-driven Software Engineering in Practice という書籍についての紹介です。

ざっと目を通しただけなのですが、OMGのMOF/UML etc. から eclipse modeling project に含まれる(非公式なものも含め)モデル駆動ソフトウェアエンジニアリング(MDSE)系のプロジェクト・話題について広く説明しており、これまで(Webページとしてはありましたが)本としては深く書かれていなかった領域を活字にしたものだと思います。 多少読みにくい部分もあったりしますが、この領域に関心を持つ人には参考になる本だと思います。

ご参考までに、この本のサイトもあります。

“Model-driven Software Engineering in Practice” book について

UML Profile for NIEMについて

OMGで標準化が進められている活動の紹介です。 NIEMというのは米国の National Information Exchange Model で、政府や州や民間の間で情報交換を行う際の語彙の標準化だそうです。 そのベータ版#1がレビューのために公開されたということなので、ちょっと眺めてみました。

  1. UML Profile for NIEM beta 1

かなり複雑な仕様です。 内容の詳細はさておき、OMGの政府向けの仕様ということで、これがいったいどんな構成になっているかをみてみます。するとMDA的な整理になっており、PIM/PSM/Platformの各仕様が並んでおり「これらの間の対応付けをQVToで書いた変換ルール」として提供しています。 OMGでもこういった形式の仕様は初めて見るように思います。 個人的な印象ですが、対象範囲が広く政府のプロジェクトとも多分関連すると思われるため、上から下に向けての変換を厳密にするための工夫ではないかと思いました。 国によって事情が違うと思いますが、こういう仕様を公開すれば情報交換の質はきっと上がると思います。 この構成についての考え方だけでも参考になるのではないでしょうか。

UML Profile for NIEMについて

Executable UMLについて

ちょっと思うところがあり、昔買った Executable UML の本を読み返してみました。 きっかけは、OMG の Alf + fUML が過去のものとどれだけ違っているのかふと気になったためですが、そもそもは、eclipse の UML ツールの一つである Papyrus で Alf のエディタの内蔵を検討していることを知ったためです。

Alf + fUML  はいろいろな意味で確かに現代的になっているのですが、本質的には昔のものとそれ程違いがなさそうな気がしました。 UMLでモデルを作成しても、それが有効に活かされないことが多く、モデル実行が実現できればもう少し事態が改善するかと思うのですが、このままでは普通の設計者には使うのが難しそうな気がします。 UML Profile ではありませんが、用途に応じてサブセット化しシンプルなものに出来るようなメカニズムがあれば良いのにと思う次第です。

Executable UMLについて

InfoQ: Why did MDE Miss the Boat?について(2)

10月18日のポストでご紹介した話が今週の Splash Conference (旧OOPSLA)で発表され、その場に立ち会った方が InfoQ に記事を書かれています。

  1. InfoQ: Why did MDE Miss the Boat?

Jean Bezivin さんは、MDA Initiative の中で活動された一人として、またアカデミックな世界で活動されている立場から、これまでに起きたことを総括し、次のサイクルで生かそうとしていると思います。 Dart についての見方も興味深いものです(そうなのかもしれません)。

InfoQ: Why did MDE Miss the Boat?について(2)