“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)

Modeling with SoaMLシリーズについて

IBM社のJim AmsdenさんがdeveloperWorksにSoaML解説の連載を始められました。

  1. Modeling with SoaML, the Service-Oriented Architecture Modeling Language: Part 1. Service Identification

以前「もっと注目されても良いのに」と書いた仕様です。 Jimさん及び先日紹介したホワイトペーパーを書いた人がこの標準仕様を強力に推進しました。 何度も書いていますが、UML Profileとしては比較的簡単なもので、お手持ちのUMLツールで簡単に定義できるかもしれません(ツールに依存します)。 5回にわたっての連載のようですので、かなり丁寧に解説してくれると思います。 一言付け加えると、重要なのは考え方の方で必ずしもツールではありません。 解説を読みながら裏紙にボールペンで身の回りの事例について書いてみる程度のことで、(SoaMLの考え方に基づく)サービス指向のソフトウェア設計手法が少しでも明確になってくれば良いのではないでしょうか。

Modeling with SoaMLシリーズについて

Modeling Forum 2009 On Demand Web Seminarについて

UMTP主催で9月中旬に東京で開催されたModeling Forum 2009の講演内容がIDGのサイトでOn Demand Web Seminarという形で公開されています。

  1. Modeling Forum 2009 On Demand Web Seminar

参加できなかった方、どんな講演があったのか興味のある方、改めて聞いてみたいという方、上のURLを訪問してみてください。 ちなみに、私はUMTP会員ではありませんが、有用な情報ですので御紹介させて頂きました。

Modeling Forum 2009 On Demand Web Seminarについて

標準化について(モデリング言語)

これまでの流れでモデリング言語の標準がUMLで対抗しそうなものがDSLだということがお分かりだと思います。

UMLは幾つも存在したモデリング言語・記法・方法論から標準化できる範囲を決めて合意を取ったものです。確かに標準ですが、例えばダイアグラムの種類の多さをみると、通信プロトコルやミドルウェア程には「標準にこう書かれているので、こういうデータしか受け付けられない」といったことが言えないところがあると思います。大体、同じ課題を与えてまったく同じクラス図が出来上るということがなかなか無いと思います。国際標準にもなっている標準記法ですが、Design by committeeと言う意味では通信やミドルウェアと変わりませんので、使い方において選択肢が結構あるということです。

DSLですが、こちらも結構歴史があります。UML対抗という意味では、最近の話に限定しても構わないと思います。以前も書いたと思いますが、DSLと大きなくくりをすれば同じですが、実際にはいろいろなキャンプがあります。ということは、ひょっとすると何らかのDSL標準が現れる直前の状況なのかもしれません。そういった標準が出来るとすると、OMGのモデリング標準(MOFも国際標準になっていたと思います)とどう調整を取るのか関心を持って眺めたいと思います。DSLで気になるのは、同じ種類のDSLでも異なる種類のDSLでも良いのですが、似たような分野に適用し似ているものの異なる種類のモデルを量産されることです。1種類でも問題なのに、沢山でこれをやられると、後でモデル変換を山ほどしないといけなくなる恐れがあります(これは容易ではありません)。本気で使うのであれば是非DSLも標準化して欲しいものです。

標準のReference Implementationという意味ではラッキーなことにeclipseがあります。以前eclipseのモデリングプロジェクトを紹介したことがありますが、オープンソースでUML2エディタあり、SCAエディタあり、BPMNエディタありですし、GMF他でDSL実践も可能です。このような環境で仕事が出来る最近の若い方は幸せですね。

元に戻って、結局オープンで多数の人に支持され使われるのが本当の標準だとすると、モデリング言語の標準化というのは実はまだ制定・発展途上(ひょっとするとまだ入り口に過ぎない?)なのかもしれません。

標準化について(モデリング言語)