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

Eclipse Sirius で遊ぶ

昨年末ですがモデルベースソフトウェア開発コミュニティで Eclipse Sirius の勉強会を実施しました。チュートリアルに従い手を動かしてみるというもので、なんとか前半を終えました。近々後半をやることになっています。

海外では Sirius を使って色々なモデリング環境が作成されており、ギャラリーというページに多く例が掲載されています。勉強会で使ったチュートリアルの例は少し実用的ではないので、もう少し多くの方になじみのあるものを遊び気分で作ってみました。

まずベースとなる ecore モデルですが、単純化したクラス図を目標に次のようなモデルを使うことにしました(どこかで見たことのあるものです)。

domainmodel

これを使い model code, edit project, editor project を生成し準備を終え、ついでに dynamic instance の仕組みを使いサンプルモデルを作成し、Eclipse の別インスタンスを立ち上げてグラフィカルエディタを作成します。途中は飛ばしますが、次のようになりました。

sirius_diagram.png

左上の区画が肝となる odesign ファイルで、Entity (UML Class 相当) を Container とし、Attribute をリスト形式で埋め込んでいます。関連は EntityReference をベースに作成しています。昔の EMF + GEF や GMF 時代をご存知の方には隔世の感があるかもしれません。

時間があれば振る舞い系のものも作ってみる予定です。出来ればまた掲載します。

Eclipse Sirius で遊ぶ

TextUML & Cloudfier について

これまであまり真面目に調べたことがなかった TextUML について調べています。

TextUML はテキスト形式のUMLエディタで、完全ではないにしろ UML 仕様を結構真面目に実装しています。 次は私のお試しモデルです(まだ細かい点をマスターしていないので、間違いが含まれているかもしれません)。

screenshot#3

これを Cloudfier というクラウド上のモデル開発環境兼実行環境に持ち込むと、デフォルトで結構良さそうな画面やDB等を生成してくれ、プロトタイプ・検証に充分使えます。ドキュメンテーションはこの実効環境(Orion)にログインしないと見つけられないかもしれません。

ただ、今のところ日本語が扱えない模様ですので、とりあえずはお試し的にモデルの確認に使うのでしょうか。一つ興味深かったのは、他の UML ツールで作成した .uml ファイルをこのエディタでオープン出来ることで、英語のクラス図があれば(制約はありますが)この環境に持ち込むことで実行シミュレーションが出来るという点です。

TextUML & Cloudfier について

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

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

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

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

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

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

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

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

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

Eclipse Mars Is Out, As Scheduled!

予定通り  Mars 版が公開されました。今回はどのような点が特徴なのか、ニュース等をあたってみました。

しばらくすれば日本語の記事も出てくるものと思います。

Eclipse Mars Is Out, As Scheduled!

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