モデルベースソフトウェア開発コミュニティの集まりのお知らせ

数日後ですが、9月1日(火曜日)の19時からこんなイベントを行います。

これまでこのコミュニティで勉強会や小規模なワークショップ・ハンズオンを何度か実施してきましたが、今後の活動(案)について前振り的な説明を行い、皆さんのご意見を頂きたいと思います。

当日は、私が前振りの前振りという全般的なお話をさせて貰い、次に今後のワークショップやハンズオン候補である:

  • コード生成技術(Acceleo)
  • DSL技術(テキストベース(Xtext)とダイアグラムベース(Sirius)の二種類)

について3名で紹介をします。各紹介にはそれぞれの技術的な概要説明も含まれると思います。

もちろんこれが全てという訳ではなく、モデリング手法の話、Executable UML 的な話、他も候補として想定していますが、(コミュニティ活動ですので)これらの説明をインプットにして方向性について考える場にしたいと思っています。

このコミュニティ活動に関心をお持ちで、当日ご都合がつく方は是非参加をご検討下さい。

モデルベースソフトウェア開発コミュニティの集まりのお知らせ

Eclipse Modeling 勉強会の件

今週の金曜日の夜に Eclipse Modeling 勉強会を予定しています。

  1. Eclipse Modeling 勉強会

今度の話題は次の通りです。

  1. Xtext紹介
  2. Bonita Open Solution紹介

Xtextはテキスト型のDSL開発フレームワークで、今回は入り口の部分を実際に動かしてお見せする予定です。Webページなどで英語の情報は沢山公開されていますが、今回は導入部分を日本語で紹介します。

Bonita Open SolutionはGMFベースでBPMNを実装した製品で、手軽にビジネスプロセスの定義やシミュレーションが出来るとのことです。GMFベースで何かを開発されるような方には参考になるかと思います。

他では聞けない話かと思いますので、よろしければ是非ご参加ください。

Eclipse Modeling 勉強会の件

Eclipse M2M変換について

2013年2月22日の夜にEclipse Modeling勉強会を実施し、そこでEclipseのモデル変換の幾つかを説明する機会がありました。題材はATLがよく例題としてプレゼンで使うFamilies to Personsです。私は主にQVTを担当しましたが、事前にATLの動作も確認しましたので、ちょっと感想を書かせて貰います。

動作の検証を行ったのは、Juno版ModelingパッケージにATLとQVToを入れたもの、Indigo版Modelingパッケージにmedini QVTを入れたもの、そしてJuno版のXtextディストリビューションです。他に、エディタしか動作しませんが、EclipseのQVTrとQVTcも入れてみました。

ATLで良く知られている例題(何々家の家族というモデルを、男性と女性の二種類からなる個人モデルに変換)ですのでこれを基準にします。

  • ATL自体のケースについては、メインのルール記述は分かり易いのですが、最初の頃はhelper機能の切り出し方が良く分かりませんでした。研究分野ではかなり使われていますし、最近は管理を地元?ベンダに移管した模様です。
  • QVToは確かに手続き言語的ですが、記述内容はATLとほとんど同じレベルで、特にOCL記述はATLのものがほぼそのまま利用できました。安定して動作するようですし、ATLとの間では比較的容易に相互に移行できそうです。
  • medini QVTはQVT Relationsなので、パターンマッチングの記述箇所に特徴的なところがあります。それでもクエリについてはQVTo同様にATLのOCL記述が(多少違いがありますが)結構近いものになりました。実績もありますので、このスタイルの記述がお好きな方は使えると思います。
  • Xtextといっても変換にはXtendを使います(勉強会当日はまだ完成していませんでしたが、三日後に動くようになりました)。Xtendは軽くJavaをラップしたものなので、変換を実現するクラスもどこかJavaコードの雰囲気が漂っています。このコードだけで動作すれば良いのですが、Xtextの仕組みにのせるため結構面倒なことになってしまいました。結果的に、Xtendでモデル変換も記述できますが(利用者にとっては)専用言語を実装したATL/QVTo/QVTrの方が楽だろう、というのが私の感想です。ただ、見栄え的にXtendの実行結果は面白いので、画像を入れておきます(左側のXtextエディタでFamilyモデルを作成しワークフローを実行すると右側のxmi形式のデータが生成されます)。

Xtend M2M

いずれの場合についてもモデル変換ロジック構築の考え方を説明したものがなく、現状はサンプルから学べという状況です。ユーザガイドやチュートリアルに、こういう考え方で書けば良いというガイドがあれば良いかと思った次第です。

最後に勉強会のサイトは こちら にあり、当日の資料類もそこに置いてあります。

Eclipse M2M変換について

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

Xtext入門e-bookについて

日本Xtextユーザ会というのをやっていますが、会のメンバの方と一緒に日本語での入門書を作成しました。 次のベータパブリッシュのサイトから無料でダウンロードできます。

  1. テキスト型DSL開発フレームワーク Xtext 入門

この本を用意した経緯ですが、eclipse/Xtextに関する情報が英語のものしかなく、使えるツールなのに国内で関心を持つ方が少なかったため、せめてとっかかりの部分だけでも楽にしたい、ということから始まりました。 従って初心者向けです。 最初はXtext 1.0ベースで用意していたのですが、途中で2.0が出てきたため(多少なりとも追いつくため記述を追加したため)公開が遅れてしまいました。

サンプルとして、アンケートシステムを考えました。 これはイベントなどの後で、参加者にアンケートに答えて貰うという想定で、アンケート内容を作成するためのXtextベースDSLを用意しました。 とても簡単なものです。 ただ、それだけでは面白くないため、コード生成のターゲットを Google App Engine/Java として、コード生成するとGAE/Jの上のアンケートシステムを作成するようにしました(この部分は私よりずっとプログラマな若い相棒にお願いしました)。 この使い方はXtextにおいてとてもオーソドックスな形態になるため、参考にして頂ければと思います。

Xtextのプロジェクトは現在Xtendというファミリー言語を使いJavaとのインテグレーションに向かっています。 構造面だけでなく振舞い面についてもずっと簡単なテキスト記述が出来、対応する(そして十分読める)Javaコードが同時に生成されます。 EclipseCon 2012ではこれとは違った側面からの使い方についての講演もありました。 いずれにせよ、今後もどんどん進化・変化してゆくツールだと思いますので、時間のある時にダウンロードしご覧頂ければと思います。

Xtext入門e-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について

Eclipse Modeling Symposium 2011について

EclipseCon Europe 2011 の一部として開催されたものと思いますが、Eclipse Modeling Symposium 2011 というのがあり、短いですがそのビデオが公開されています。

  1. Eclipse Modeling Symposium 2011
ここに9本登録されていて、次の話題がカバーされています。
  • Xtext
  • OCL
  • Acceleo
  • EMF Profiles
  • EMF Store
  • MPS
  • EEF
  • EMF Compare
  • GMF Tooling

UML の OCL ですが、Xtext を利用して Entity モデルに OCL statements を埋め込めるようなエディタにし上げています。 Slideshare にこの OCL Talk のスライドがありました。

  1. Eclipse OCL Summary
うまく組み合わせると楽しいことが出来そうです。
Eclipse Modeling Symposium 2011について