“Model-driven Software Engineering in Practice” book について

Model-driven Software Engineering in Practice という書籍についての紹介です。

ざっと目を通しただけなのですが、OMGのMOF/UML etc. から eclipse modeling project に含まれる(非公式なものも含め)モデル駆動ソフトウェアエンジニアリング(MDSE)系のプロジェクト・話題について広く説明しており、これまで(Webページとしてはありましたが)本としては深く書かれていなかった領域を活字にしたものだと思います。 多少読みにくい部分もあったりしますが、この領域に関心を持つ人には参考になる本だと思います。

ご参考までに、この本のサイトもあります。

広告
“Model-driven Software Engineering in Practice” book について

Why isn’t BPM the language of the boardroom? – ebizQ Forumについて

Why isn’t BPM the language of the boardroom? というのはちょっと無理筋の質問だとは思いますが、どんなコメントが寄せられているかを眺めるの面白そうではありませんか?

  1. Why isn’t BPM the language of the boardroom? – ebizQ Forum

多分皆さんの予想に近いコメントが含まれていると思いますが、そうでないものもあるかもしれません。

Why isn’t BPM the language of the boardroom? – ebizQ Forumについて

UML Action Language: An OMG Journey | MOdeling LAnguages

via UML Action Language: An OMG Journey | MOdeling LAnguages.

Ed Seidewitz さんが説明した UML Action Language の歴史を Jordi Cabot さんがまとめたものです。 とても分かり易く書かれています。 Executable UML がどの程度発展し受入れられるようになるか楽しみです。

UML Action Language: An OMG Journey | MOdeling LAnguages

MD Day 2010について

11月の末にフランスでModel Driven Day 2010というイベントが開催され、そのスライドが SlideShare で公開されています(これはJean Bezivin 先生のつぶやきからの情報です)。 フランス語のスライドが多いのですが、興味深いのは Microsoft 社の Steve Cook さんの UML の過去現在未来についてのスライド(これは英語)です。 現在の OMG での問題意識がかなり詳しく説明されていますので、UML の今後に興味のある方は是非ご覧になると良いと思います。

  1. MD DAY’s presentations
  2. Stevecook uml mdday2010
MD Day 2010について

Microsoft社とモデリングについて

私もあまり歴史に詳しい訳ではありませんが、現在の Visual Studio 2010 に UML Modeling 機能が含まれている事は広く知られた事実だと思います。

  1. Developing Models for Software Design

歴史については Jean Bezivin 先生のブログに面白い内容のものがあります。私もこの頃の話は知りませんでした。

  1. Bits of History (Uml is not UML)

また、最近話題としてはDSL ToolやOslo M Languageがありますが、Wikipediaにもエントリが登録されています。

  1. Oslo (Microsoft)
  2. Tool support for DSM languages

試行錯誤の繰り返しはどんな技術でも発展のために必要ですし、きっと既に定着した部分もあるのだろうと想像します。 ソフトウェア分野では最大の会社ですので、是非モデリングについて業界をもっと引っ張り続けて貰いたいと思います。

Microsoft社とモデリングについて

Will Business Adopt BPMN 2.0?について

InfoQの記事の紹介です。

  1. Will Business Adopt BPMN 2.0?

BPMN 2.0では多くの機能が追加されたが実際にビジネス側の人々にとってはどうなのか、という問題についていろいろな意見が紹介されています。 UMLでもそうでしたが、実際に使われるとどんどん機能追加・拡張の要求が現れ、それらに対応すると仕様が複雑になるということです。 最後のまとめ的な文章にもありますが、何も機能を全部知っていて使いこなせないといけない訳ではなく、ビジネス側の人々にとって適度なサブセットを用意し(使いたい人や使える能力のある人はフルの機能セットを使って貰えば良いでしょう)とりあえずその範囲で言いたいことを表現して貰う、というアプローチが良さそうに思います。 要求し過ぎることも、また制約し過ぎることも、利用者にとっては嬉しくないことだと思います。

Will Business Adopt BPMN 2.0?について

モデリング言語とMDDについて(2)

何となく今こう考えているということですが ・・・

1 メタモデルまたは概念モデル

どんな手法でモデリングをするにしても、やはりメタモデルまたは概念モデルといったものが最初にきます。 表現方法はいろいろあって、MOFを使うものや、EBNFのようなプログラム言語設計記法を使うもの、更に多分もっと純粋数学的なものなどです。

2 モデル

モデルはモデリング言語で書かれた対象の記述になります。 世の中でもっとも使われているモデリング言語がUMLだとすると、純粋なUMLモデルやUML Profileを含んだ拡張UMLモデルがここで言うモデルにあたります。  EBNFのようなものを使って文法を規定した場合は、その文法に従って書かれたテキストがモデルにあたります。

3 プログラム

プログラムとモデルの違いは何でしょうか? 言語定義の厳密さレベルの違いもありますが、プログラムはコンパイラやインタープリタを使い実行できます。 OMGでもExecutable UML的な検討が長年行われていますがまだ時間がかかるようです。 もしこれが出来ればUMLもプログラミング言語に昇格し、UMLモデルはUMLプログラムと呼ばれるのでしょうか? そうかもしれませんが、現時点ではモデルはモデルであり、どうしてもそれをプログラムに対応付ける作業が必要で、人が頭の中で補完しながら変換して行くのが従来型の開発作業で、ある程度は(本当は出来るだけ多く)自動化したいというのがモデル駆動の基本的な考え方だと思います。 文法規則を決めて書かれたテキストモデルの場合も同様で、そのテキストは文法規則に従って解釈できる訳ですから、その文法とテキストを入力として対象プログラミング言語・対象インフラ環境をターゲットとしたマッピングを行えば良いだけです。 言うのは簡単ですが、実際にはモデリング言語やマッピング対象の多様性を考えると、なかなか標準的なものになりそうもないという印象を受けます。

4 DSL: 現実解の一つ(Xtext)

UMLを使ってもうまくMDDの流れに乗せられないとすれば、別の方式にも目が向きます。 UMLを使うMDAがまだ普及に至っていないのは、UMLの仕様自体の複雑さに起因しているのではないかという気がします。 仮にそうだとするともっとシンプルな方式の方が現実的かもしれません。 DSL、それもグラフィカルDSLではなくTextual DSL(何故なら、グラフィカルDSLの作成がそれ程容易でないため)、そしてInternal DSLではなくExternal DSLが良さそうです(こちらについてはご意見がありそうですが)。 この方向のツールにはXtext、MPS、Oslo M言語などがありますが、関連情報の入手のし易さとプラットフォーム非依存という観点からXtextが有力候補になります。 Xtextは今回書いているDSL設計、DSLに基づくエディタ、コード変換などがパッケージになっています。 Xtextが究極の解かと問われると独自仕様部分が多くまた競合製品・プロジェクトもありそこまでは言えませんが、現時点ではオープンな世界でかなり実用的に使えるものです。

モデリング技術は世の中に多くあるため、人により何を信じるのか異なる宗教のようなところがあります。 実際は効率よく良い結果が得られるなら何を使っても構わないとも思っています。 このポストに書いたことは「こんな見方もある」という程度でご理解下さい。

補足) 日本Grails/Groovyユーザーグループの山田さんから「Grailsプログラミングはモデリングと同じ」という見解を聞かせて頂いたことがあります。

モデリング言語とMDDについて(2)