What is Cloudfier and why you may want to use it について

Jordi Cabot さんのブログに、先日の EclipseCon で TextUML で書いたビジネスモデル(アプリケーション)の実行環境として触れた Cloudfier について、開発したご本人(Rafael Chaves さん)による紹介記事が掲載されていますので紹介します。

特徴について説明されていますが、例えば次のようなポイント(本文から引用)は気になる方もおられるのではないでしょうか。

  • “Cloudfier programs are UML models”
  • “Cloudfier programs are business-centric and technology-free”
  • “Instant prototyping for early validation”
  • “Gapless code generation”
  • “Cloudfier is open source!”
  • “Cloudfier is an online development environment”

モデルの表現形式はテキスト型ですがUML2.5対応であり、Xtend言語を利用しJEE対応のコード生成を実現するそうです。こういう技術の利用が一般化すると、ビジネスアプリケーションの開発はモデルを作成する作業が中心になり、トータルの開発効率が向上することでしょう。

広告
What is Cloudfier and why you may want to use it について

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 について

On Building Software: Win Friends and Influence People …with DSLsについて

Vladimir Bacvanski さんのブログポストの紹介です。 先日の EclipseCon でこの方の講演を聞きました。 とても異色でした。 というのも、通常ならばテクノロジの話をする場なのに「DSL をビジネスの現場に適用するには」という観点からの経験談や知恵を語ってくれたからです。 具体的にはEMFとXtext他を使っているということですが、そんななものは一切見せず、ハイレベルで話をまとめてくれた点が優れたセッションでした。 実際、どんなDSLツールを使っても、ビジネスシステム開発現場では同じような議論が出てくると思います。 その時の心構えやDSL開発手順についてのアドバイスが書かれていますので、そういった使い方を考えている人にはとても参考になると思います。

  1. On Building Software: Win Friends and Influence People …with DSLs.
On Building Software: Win Friends and Influence People …with DSLsについて

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)

Why did MDE miss the boat? « Models Everywhereについて

おなじみの方のブログポストからです。

  1. Why did MDE miss the boat? « Models Everywhere
今回のサイクルにおいてはMDEは成功しなかったということですが、全面的にダメという訳ではなく、組込み分野ではかなり広く使われていますし、エンタプライズ分野でも領域によっては使われているところがあります。 むしろ、次のサイクルで大成功するために、今回のサイクルでの問題点を考えてみよう、という内容だと理解しました。 個人的には、組込みシステムでのモデリングはかなり絞り込んだ範囲で行われるのに、エンタプライズ系ではその絞り込みがされなかったのが原因の一つかと思っています。
Why did MDE miss the boat? « Models Everywhereについて