Video and slide (InfoQ): Arduino Designer: the Making of!

前回に引き続き、 EclipseCon NA2015 で実際に聴講したセッションから、Arduino Designer の作り方といった感じの、とても興味深いセッションについて InfoQ に動画とスライドが掲載されていますので紹介します。

講演されたのは Obeo 社の Melanie Bats さんという女性の方で、Arduino というマイクロプロセッサを使い猫の模型を動作させるモデルベースソフトウェア開発システムを、Sirius と Acceleo を使って構築する様子を説明してくれています。EMF のメタモデルから始まり、Sirius のかなり詳しい使い方の説明まで触れていますので、このようなシステムを専用グラフィカル開発環境と共に構築したい方にはとても参考になるプレゼンテーションです。最後で触れていますか、このプロジェクトは github に公開されていますので、興味のある方は是非チェックしてみてください。

なお、今回の EclipseCon ではこれ以外にも itemis 社による LEGO Mindstorms を使った Xtext ベースのロボットシステム開発実行環境のデモや IBM 社が Raspbery Pi で JEE を動かしたミニチュアカーの展示などもあり、Eclipse のモデルベース開発技術が組み込みシステム寄りで応用が広がっていると感じられるものでした。

広告
Video and slide (InfoQ): Arduino Designer: the Making of!

Eclipse Modeling Meet-up in Tokyo #2

「ちょっとしたお知らせをさせて貰います。」の2度目です。

昨年12月に実施しました Eclipse Modeling 勉強会を再度開催します。 今度は2月22日(金曜日)の夜です。

  1. Eclipse Modeling 勉強会

勉強会の趣旨は変わりませんが、今回はメインテーマとして model to model 変換技術(QVTとATLになると思います)を取り上げる予定です。 model to model 変換(model to text 変換もそうですが)は今後も折に触れて扱うテーマであり、今回はその入門編ののようなものになると思います。 別のトピックスの話もあるかもしれませんので、ご関心のある方は上の案内ページをご覧ください。

Eclipse Modeling Meet-up in Tokyo #2

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

Eclipse Modeling Meet-up in Tokyo

ちょっとしたお知らせをさせて貰います。

12月7日(金曜日)夜に東京で

  1. Eclipse Modeling 勉強会

を開催予定です。 国内にこのあたりの情報交換をする場が無いなと思っていましたので、試しに一度開催してみようということです。 話題としては、例えばEMF, GMF, Xtext, SCA, BPMN, UML などに関連した話や、これらを利用したエディタやアプリ開発の経験談などで、Eclipse と Modeling がキーワードです。

ご関心をお持ちの方は上のページをご覧ください。

Eclipse Modeling Meet-up in Tokyo

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

モデリングは(私的には)対象や物事を抽象化することで「木を見て森を見ず」状態を避けることが大きな効能であると思っています。ソフトウェアの世界でモデリングというと 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 のような)。

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

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

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

Eclipse ModelingにおけるOCLについて

OMG-Eclipse modeling workshop のなかで興味深かったお話の紹介です。 もともとある程度OCLは実現されていたのですが、Ed WillinkさんがXtextを利用したOCLエディタを開発され、それは現在のDistributionの中にも含まれています。 次は説明に使われたスライドです。

  1. OCL Advances and the OCL VM

IndigoでHelp->Install New Software …->”Indigo – http://download.eclipse.org/releases/indigo/”  から “Modeling/OCL Examples and Editors” をインストールすると、このエディタを入れることが出来るということです(その前にOCLのSDKも必要でしょうが)。 関連して、前に書きましたUML 2.5の仕様開発でも使っているとのことで、これからはOCL文をこのツールで検証してから仕様書に掲載するとのことでした。 私もまだエディタを実際に動作させていないのですが、XtextのForumでも名前をみかけるEdさんなので、きちんと動作するだろうと思います。 OCLは始めとっつきにくいところもありますが、慣れると結構使いやすく感じます。 また、Junoになれば OCL VM も入ってくるかもしれません。 そうなれば更に使える道具になると思います。 OCLの気になる方は(Junoを待つのではなく)早めからお試しください。

Eclipse ModelingにおけるOCLについて

InfoQ: Ten Years of Eclipseについて

Eclipse の10年間の活動を振り返って、という InfoQ 記事の紹介です。

  1. InfoQ: Ten Years of Eclipse
IDE や開発ツールは昔から好みの分かれるものですが、Eclipse は結構使われるようになったのではないでしょうか? モデリング系の人は、EMF  と Modeling Projects があるせいで、どうしてもこちらに来てしまいがちです。 ただ、コードベースが大きくなり過ぎているようなので、少し立ち止まって考えるべき時期なのかもしれません(検討していると思いますが)。 また、上の記事の最後の箇所で、これからの10年間について触れていますので、そこだけでも眺めてみてはいかがでしょうか。
InfoQ: Ten Years of Eclipseについて