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!

FXDiagram video and slide

以前のモデルベースソフトウェア開発コミュニティーで EclipseCon NA2015 の報告を行いましたが、その中で FXDiagram のデモをお見せしました。これは Xtext を使ったテキスト型のモデルから Java-fx を利用してダイアグラムを生成するものですが、InfoQ にこのプレゼンテーションの動画とスライドが公開されました。

話をしているのは itemis 社の Jan Koehnlein さんで、彼は以前より Xtext のテキスト型 DSL の世界とグラフィカル DSL の世界をつなごうと幾つもの試みを行って来ていますが、これが最新の(最後の?)アプローチということになります。テキスト中心で進める場合は、このやり方は効果的だと思います。私は以前 PlantUML を使って Xtext ベースのモデルからダイアグラム生成をしたことがありますが、出来ればこちらに乗り換えようかと考えています。

なお、他のプロジェクトも同じですが、Eclipse の 2015 年のリリース(Mars)が後 2 週間少々ででてきますので、試されるならその後の方が良いかもしれません。

FXDiagram video and slide

“EMF FORMS” HANDS-ON NIGHT (Part 2)

EMF Forms のハンズオンをさせて頂きました。資料は次にあります。

簡単な説明の後に、EMF Forms に付属するサンプル(Make It Happen!)に触れて貰いました。最初に File -> New -> Project -> EMF Forms からモデルデータを選択すると二つのプロジェクトが生成されます。一つ目が通常の EMF プロジェクトで、二つ目がその Edit プロジェクトです。後で考えると、これがどう作られたのか分かりにくかったようでした。通常のモデリングプロジェクトを作成し、ecore ファイルを作成し、genmodel からモデルコードと Edit プロジェクトを生成するというあたりをもっと説明すべきだったようです。

いずれにせよ、EMF Forms を利用すれば、コードに触れずにモデルから UI が生成できますので、モデル検討・レビュー期間中に活用すれば(モデラー以外の)一般の方にも馴染みのある UI でモデルを見てもらえるようになるので、分かりやすい説明・議論ができるのではないでしょうか。

“EMF FORMS” HANDS-ON NIGHT (Part 2)

“EMF Forms” Hands-on night

モデルベースソフトウェア開発コミュニティー活動の一つとして、EMF Forms の価値と使い方をご説明する場を企画しました。

EMF FormsハンズオンNight!

私は別に EMF Forms の開発に携わっている訳ではありませんので、ディープな知識がある訳ではありません。したがって、最もシンプルな使い方についての説明になります。そのシンプルな使い方だけであっても、データモデルのレビューと早期収束にとても有効なツールだと考えています。そしてハンズオンにしたのは、説明を聞きデモを見るだけでなく、実際に手を動かすことでこのツールの使い方を身につけて頂くためです。

なお EMF Forms は Eclipse の Modeling Project の一つで EclipseSource というドイツの会社が中心となって推進しています。

“EMF Forms” Hands-on night

Obeo UML Designer の紹介

Eclipse ベースの UML ツールは各種あり、オープンなものとしては Papyrus が良く知られています。 オープンという意味では Obeo UML Designer もあり、今回はこちらを紹介します。

昔はそうでなかったと思うのですが、Obeo 社は多くのオープンソースプロジェクトを持っているようです。 彼らの製品ページは次のようになっています。

最初にコマーシャル製品(SmartEA, Designer, Agility)があり、次に Eclipse Open Source Projects として Sirius, Acceleo などが続きます。 そして最後にオープンソース製品として、UML Designer, SysML Designer などがあげてあります。

さて、UML Designer ですが、次の専用ホームページがあります。

説明によると Sirius ベースとあります。多分 Eclipse の UML2 プロジェクトの成果を利用してグラフィカルエディタを作成したのだろうと思われます。 ダウンロードして使ってみるとなかなか使えます。 日本語が通らないと使って貰えないことがありますので、定番の日本語化(Pleiades)を適用してみました。 そうして作成したサンプルのクラス図を次に示します。

ObeoUMLDesigner

いかがでしょうか? Eclipse の他のモデリングツールとの連携は良いはずですので、是非お試しください。

Obeo UML Designer の紹介

Viewpoint: the making of 動画の紹介

EclipseCon NA 2015 の報告で PolarSys のことを書きましたが、PolarSys 関連の聴講セッションのなかでも特に感心したのがこのビューポイントを作成してモデルに反映するデモです。二人の人が前に出てマネージャとデベロッパーの役を演じ、マネージャからの無理難題をデベロッパーが Capella/Kitalpha を使い軽く実現してしまうというプレゼンテーションです。

自由に Viewpoint を定義して Model Work Bench をカスタマイズしながらモデルを発展させてゆくというアプローチがとてもうまく実現されており、使い方を工夫すれば別の世界(例えば、エンタプライズ系)にも適用できるでしょう。このプロジェクトには Obeo 社が参画しており、そのためか Sirius が大活躍しています。

いろいろな意味で参考になるプロジェクトですので、是非最後までご覧ください。

Viewpoint: the making of 動画の紹介

Mendix App Platform の紹介

モデル駆動開発の考え方を実用レベルで実現したシステムの例としてMendix社の製品を紹介します。この製品はDSLベースの現実的モデル駆動開発の実現により、欧州と米国を中心に利用が拡大しています。製品としては開発者(ビジネスエンジニア)が利用するMendix Business Modelerと社内サーバやクラウド側の実行環境(Mendix App Platform)があります。

モデルに基づいてシステム開発を行うアプローチとして説明されるモデル駆動開発ですが、具体的な製品としてはUMLやDSLをベースとしたモデル作成支援とコード生成・編集支援(スケルトンコードを生成し補完するコードを書き込む仕組み)を備えたものが多数派です。これに対しMendix App Platformは、対象領域をWebアプリケーションに絞り込むことで、モデル開発だけでビジネスアプリケーションが完成する(モデルを解釈実行)という最短のパスを実現しています。作成するモデルは次の3種類で、すべてBusiness Modelerを使っての作業になります。

  • ドメインモデル(データモデル)
  • GUIモデル
  • ロジックモデル

ドメインモデル

UMLのClass図(サブセット)相当のグラフィカルな記法を使い、ダイアグラムとして作成します。ここで定義するClassは実行環境でデータベースの一つのテーブルに対応づけられます。出来る範囲ですが入力項目の妥当性チェックも指定できます。例えば次のようなものです。

m1

顧客-注文-注文明細-製品というEntityモデル

GUIモデル

ドメインモデルで必要な概念と関連を定義しましたが、データ操作(CRUD操作他)につながるGUI定義(モデル)も必要です。登録したデータのリスト表示画面、エントリデータの編集画面がドメインモデルを用いて容易に作成できます(マウス操作が中心)。GUIモデルでは一つの画面定義が必ずしも一つのClassに対応するものでなく、業務の要求に応じた柔軟な画面設計が可能です。例えば次のようにマスター・明細を同時に含めることも出来ます。

m2

注文新規編集画面GUIモデル

ロジックモデル

通常ドメインモデルは構造を表現したモデルになります。従って、振る舞いを表現したモデル、例えばビジネスロジックやビジネスルールの定義も必要になります。何らかのプログラミング言語やスクリプト言語でこの部分を記述し、自動生成されたコードに欠けているコードを書き足す方式を良く見かけます。この製品では業務ロジックをBPMNのサブセットを使いモデルとして記述します。例えば次のようなものです。

m3

サンプルロジックモデル

こういった書き方なら業務・ビジネスロジックの大部分をコードの世界に入らず書くことが出来ます。Web ServicesやXMLインタフェースもモデルレベルで対応できるようになっています。どうしてもモデルで表現出来ない(またはしたくない)場合は、ロジックモデルの一部からJavaコードを呼び出せます。

大雑把な概要説明でしたが、かなりの種類の業務アプリケーションをこの方式で記述出来そうだということがお分かりになったと思います。では、実行環境はどうなるのでしょう?単体テストはBusiness Modelerを動作させているPCでサーバプロセスを動かすことで実施出来ます。それ以上のテストや本番用には、企業内サーバに実行環境を用意するか、Mendix社が運用するクラウド上の実行環境(Mendix App Platformの構成要素)を利用します。

評価のために簡単なサンプルシステムを作成してみましたが、国際化にも対応しており、業務概念定義・画面定義・ロジック定義だけで(コードを書く事なく)動作しました。また、プログラミング言語を使わなかったため一連の開発作業が早く、限られた時間でモデル作成・テスト・修正を何度もまわす事ができました。

さて、このようなシステム開発手法はシステムの発注者・利用者にとってどんなメリットがあるでしょう。Webアプリケーション形態の業務アプリケーションをかなり短期間で作成出来ます。その改変・更新も同様に短期間で出来ます。作成したモデルが実行環境のもとで実行されると共に、そのモデル自体が読み易いため、発注者・利用者と開発者がコミュニケートする仕様書として利用する事も出来ます。ビジネス環境が激変する昨今にぴったりの、変化に対応し易い業務システムが実現出来そうです。

Mendix App Platform の紹介