InfoQ

News

汎用言語とドメイン特化言語を組み合わせたモデルドリブンエンジニアリング

作者 Jean-Jacques Dubray, 翻訳者 金森 諭 投稿日 2008年4月29日 午後12時46分

コミュニティ
Architecture
トピック
モデリング,
動的言語
タグ
BPEL,
BPMN,
UML,
Domain Driven Design

Mendix(サイト・英語)のCTOであるJohan den Haan氏は最近自身のブログで、モデルドリブンに関する方法(アーキテクチャ、開発、エンジニアリングなど)について記事(source) を書いた。

モデルドリブンエンジニアリング(MDE)(source)の基本原理は「全てはモデルである」ということです。モデルおよびモデルの要素は最も重要なものとして扱われます。そして最も重要な変化は、モデルが単にプログラマに対するドキュメントとして用いられるだけでなく、今はソフトウェア開発を直接動かすものとして用いられるようになったことです。

(中略)上記のようなコンセプトに基づいたMDEの手法についての言語を定義する時、ある種の要素について、ドメイン特化言語(DSL)で定めるべきなのか、それとも汎用言語で定めるべきなのか、という問題が持ち上がります。

彼はこう述べる。

ほとんどの手法で取られる一つの手は、汎用言語とドメイン特化言語の中間に置かれる方法です。私が思うに、両方の言語から一番いいとこを取ることで両方を結合することができます。

この記事は教育向けでもある。まずモデルやメタモデルの定義を明確にし、OMGで定義されるM0、M1、M2、M3のモデルドリブンアーキテクチャのレベルも分かりやすく示している。彼は言語的なメタモデルとオントロジ的なメタモデルの違いをはっきりさせている。

言語的メタモデルはモデルの言語(抽象構文、型意味論、静的意味論、動的意味論)を定義するもので、オントロジ的メタモデルはモデルの内在意味論を定義するものです。内在意味論はモデル化されたリソースの内面的な意味や隠れた意味を表現し、概念を推論する基礎となります。

そしてこう述べている。

オントロジ的なメタモデルは宣言型言語を定義する上で必須のものです。宣言型言語とは例えば、”how”ではなく”what”を定義する言語で・・・(中略)・・・言語的なメタモデルもオントロジ的なメタモデルも、モデルを使った手法を行うのには欠かせません。

また彼はオントロジ的なメタモデルの階層の重要性を説明している。彼が述べるには、その階層構造はテクノロジレイヤを基底とすべきで、それはドメインオントロジが依拠し、モデルが依拠するものとなる。その後、彼は言語的メタモデルと実際のソフトウェアを関連付けている。

オブジェクト指向については、次のようにしていることが分かるという。

  • 言語定義は小さくシンプルにする ,
  • 重要な概念の再構築が行われている時でさえもバーチャルマシンは安定して動くようにする 
  • ユーザがなるべく自由なことができるための基礎を提供する(ユーザはライブラリを変更したり拡張したりできるが核となる言語概念は変更できない)

そして彼はビジネスプロセスモデリングの例を示している。

ビジネスプロセスモデリングの汎用言語としてBPMN(OMGで2006年標準化)やBPEL4WS(OASISで2007年標準化)を用いることについて多くの議論が続いています。BPMNが(一般的な)分析とドキュメンテーションのためにビジネスプロセスを定義するのに使われるのに対して、 BPEL4WSは実行可能なビジネスプロセス定義を行うのに使われます。

彼はメタモデルの明確な階層を示している。モデルレイヤ、ドメインレイヤ、サービスレイヤ、そしてBPELが該当する抽象レイヤはプラットフォームに依存しない概念で、BPMNは言語レイヤに当てはめられている。彼はこう述べている。

(BPMNとBPEL間の)変換を定義するのは、このメタモデル階層を用いれば非常に簡単にできます。.

結論ではこう述べている。

このように設計を決定するのはドメイン特化言語を定義するのに大変強い力となります。第一に、そうやって定義されたドメイン特化言語は実際に動くソフトウェアへ変換するのが容易です。第二に、ご紹介した手法によって汎用言語の概念とドメイン特化言語の概念を組み合わせることが可能になります。

原文はこちらです:http://www.infoq.com/news/2008/04/mde-combining-gpl-and-dsl

ブックマーク
digg+,
reddit+,
del.icio.us+,
dzone+,
Hatena

No comments

返信

ジャンル別一覧

"YUKATA"から始まるコミュニケーション(Agile2008 ライトニングトークより)

私は「浴衣」を着てパーティーに参加したことで、たくさん声を掛けていただけました。 そこで感じたことは、このカンファレンスが人との繋がりを生み出し、また言葉の壁を越えて積極的に交流する場所であることです。民族衣装はそれらを助けてくれるものでした。きっとこの交流が、新たなムーブメントをアジア圏の仲間たちにも与えてくれると確信しています。

ソフトウェアのリーン思考入門

これは、InfoQ Chinaのアジャイル編集者、Jacky Li氏によるリーン思考とリーン思考をどのようにソフトウェア開発に適用するかについての入門です。

Java 6のスレッド最適化は実際に動作しているのか?

2つのパートからなるこの記事では、シングルスレッドベンチマークの助けを借りて、Java 6のスレッドのパフォーマンスに関する疑問に答える試みをしようと思います。

平鍋氏のGordon Pask Award受賞スピーチ

Agile2008において、Gordon Pask Awardの授与式が行われ、その一人として、チェンジビジョンの平鍋氏が受賞しました。本賞は、毎年、アジャイルコミュニティで定評のあるリーダーだけではなく、新たなリーダーになる可能性のある者に贈られるものです。InfoQでは、授与式のスピーチを動画にてお送りします。

Linda Rising氏による「誰を信頼しますか?」

Agile2008の3日目、8/6(水)午前中の、Linda Risingによるセッションです。セッションの冒頭、Linda Risingはとてもゆったりとしたきれいな、わかりやすい英語で話し始めました。

Jean Tabaka氏による「Collaboration Explained--真のアジャイルチームのためのファシリテーションツール」

Jean Tabaka氏の書いた書籍では、会議などのチーム活動において、ファシリテーションの手法とツールについて具体的かつ実践的に説明しています。8/8(金)、Agile2008の最終日の朝のセッションでは、Jean Tabaka氏自身が本の内容をベースとしたセッションを行いました。

Hubert Smits氏による「ゲーム・デザイン・ワークショップ」

Agile2008の4日目となる8/6(木)の8:30から、Hubert Smits氏による「ゲーム・デザイン・ワークショップ」がおこなわれました。ゲームと言っても単なる遊びではなく、「フレームゲーム」と呼ばれる、グループでの情報収集や意志決定、また教育やトレーニングの教材として使えるいろいろなゲームです。

スケーラビリティに関するベストプラクティス:eBayからの教訓

eBayが日々挑んでいる主要なアーキテクチャの勢力は、スケーラビリティです。これはアーキテクチャや設計に関するあらゆる意思決定を特徴づけたり、駆り立てたりします。