Eclipse Modeling Tools メモ(2)

先ほどと同様にモデルと Java コードの関係も図形式のメモにしてみました。他にもありますが、私の使っている範囲ということです。これからは生成対象を JavaScript/TypeScript にしないといけないのでしょうね。memo2.png

 

広告
Eclipse Modeling Tools メモ(2)

Eclipse Modeling Tools メモ

Eclipse Modeling Project には多くのツールがありますが、私がよく利用するのは基本的な EMF, Xtext, Sirius, Papyrus などです。Java コード生成などとの関係を除いて、よく使う部分の関連図をメモとして作成してみました。色々抜けがあると思います(例えば SysML が入っていない、など)が大雑把にこんな感じかなという図です。

memo.png

色々突っ込めると思いますが限定された範囲のメモということでお願いします。

Eclipse Modeling Tools メモ

How to MoDisco

今回は「検索で見つけたブログ記事」をネタにしたものです。

Javaコードを入力にして元のものに近いモデルを再生するのは、ある種 reverse engineering です。KDM 標準はそういうケースを想定して制定された OMG 標準です。これは MDA の逆をゆく行為なので ADM (Architecture Driven Modernization (TM)) という OMG 内のグループで作成されました。現在では ISO 標準にもなっています。

ただ、標準があってもそれを実装したツールがないと役に立ちません。出来ればオープンソースが良いですよね。Eclipse Modeling Project にはそのツールがあります。名前を MoDisco と言います。今回ちょっと利用する機会があり、改めて使い方を調べてみました。チュートリアルがなかったか検索したところ、有難いことに日本語のブログ記事(シリーズもの)が見つかりました。:)

記事自体は少し古そうでしたが、ポイントはちゃんと書かれています。流れとしては、Eclipse IDE に MoDisco と Papyrus (UML tool) のプラグインをインストールし、対象プロジェクトの右クリックから KDM モデル(xmi)を生成し、その KDM モデルから UML モデル(.umlファイル)を生成し、最後に UML  ツールの Papyrus に持ち込むというものです。記事で Xtext と Acceleo のインストールが要るようだと書かれていましたが、Oxygen 版で試したところ、これら無しでも動作しました(軽い使い方だったので問題が起きなかっただけかもしれません)。

スクリーンショット 0029-08-09 23.54.32

いつものモデルベース開発とは逆方向ですが、レガシーコードの分析などで利用できます。JavaコードからUMLモデルを導きたい方はお試しください。

 

How to MoDisco

EclipseCon France 2017 参加報告会を開催します

モデルベースソフトウェア開発コミュニティ という活動をしているのですが、ここ1年ほどほとんどイベント企画ができていませんでした。反省しています。

沈黙を破って、8月1日に、先日参加してきました EclipseCon France 2017 の参加報告会 を開催します。それなりの目的を持って参加したのですが、報告会となるとまず EclipseCon でどんな話題があったのかを広く(紙芝居的になってしまいそうですが)お話した方が良いだろうと考えています。なお今回はデモをお見せする時間を取れそうもありません。

カバーする主な話題は、MBSE の仕組みを構築する際に大いに利用できる Xtext, Sirius, Papyrus-RT, Capella 周りの発表内容などになります。ヨーロッパ方面では歴史があり今も活発に活動が続けられている分野です。日本から参加したのは私だけのようですので、もしご都合がつくようであればお立ち寄りください。

EclipseCon France 2017 参加報告会を開催します

Eclipse Sirius で遊ぶ #3

このシリーズの最終回です。Activity 図が書けるか試してみました。State machine の時と同様に OMG の仕様を調べたところ、Activity 周りは次のような定義になっていました(もちろん、今回も少し単純化しています)。

ActivityModel

実はこの構造は昔から DSL でネットワーク図を描く例題として馴染みのものです。そういうこともあり、かなり簡単にできてしまいました。

Activity Diagram

Buyer-Seller-Shipper の業務フローです。実線はコントロールフロー、点線はオブジェクトフローのつもりです。一箇所 UML 仕様に違反している部分もありますが(分かるでしょうか?)このような感じのダイアグラムエディタが簡単に作れるというデモンストレーションということで目をつむっていただければと思います。

クラス図、状態遷移図、アクティビティ図という三種類について、単純化したものであれば Sirius を活用して短時間でグラフィカルエディタが作れるということを示してみました。実際に現場で使う場合、モデルエディタだけでなくコード生成もセットで必要になりますが、Sirius ベースであれば親和性が良い Acceleo を使うのが良いと思います(どちらもフランスの Obeo 社が提供しているオープンソースです)。

 

Eclipse Sirius で遊ぶ #3

Eclipse Sirius で遊ぶ #2

今回は簡単な StateMachine を作成してみました。まず ecore モデルですが、UML 2.5 (OMG formal/2015-03-01) の仕様の StateMachine 定義を単純化してみました(これでも本物より簡単にしてあります)。

SimplifiedStateMachine.png

前回同様の手順を使うことでサンプルモデルから次のような StateMachine 図を作り出すことができました(今回のトライアルでグラフィカル要素の定義は下の図に含まれている要素に対してしか行っていません)。パレット部分を追加すれば簡単なエディタになります。

StateMachine Diagram

State は Container にしたので、作り込むと状態のネスト構造も記述できるのですが、お試しということでご勘弁ください。最後に Activity 図を試して、今回のシリーズを終了します。

Eclipse Sirius で遊ぶ #2