++C++; // 未確認飛行 C++

Google
Web ufcpp.net

ドメイン特化型モデル駆動開発

目次

キーワード

概要

モデル駆動開発とドメイン特化言語の説明をしたことだし、 ドメイン特化型モデル駆動開発の話を。

Microsoft の提唱するソフトウェアファクトリーと、 DSL Tools の紹介。

予定

・MDD 的視点からみた DSL

- よいモデル
  - システム要件を必要十分に・過不足なく表現
  - 汎用言語だと、十分だけど、過剰 
↓

- ドメイン特化モデル
  - ドメインごとに必要十分なモデルを作る = DSL ベース開発


- ただし、DSL だけ使っての開発ってのは非現実
  - 細かいチューニングは、抽象度の低い言語でやりたいときがある
  - 細かい部分はやっぱり使い慣れた・使い古された言語がやりやすい
  ↓
  - GPL・DSL 混在開発

  - 開発途中で、細かいレベルではなくて、モデルレベルの修正が必要な場面も
  ↓
  - DSL → GPL コードを自動生成するなら、
    GPL → DSL のリバースエンジニアリングもできるのが望ましい
  - あるいは、DSL・PGL 混在開発で、
    DSL(モデル言語)記述側を修正したときの GPL(細かいレベル)側への
    影響が少なくなる(直行的になる)ような作り方が望まれる
  - 時には、DSL の言語仕様そのものの拡張も必要

例えば、サウンドのベルの例でいうと、
新作には新機能を搭載したい!となると、DSL に新しい構文が必要になったり


・ソフトウェアファクトリ
ソフトウェア開発の工業化
- シェフ(レシピを作る)とコック(レシピに沿って料理)
- プロダクト製造ラインとマスプロダクト
↓
DSL 開発と DSL を使ったモデル駆動製品開発

注:
  ただ、この DSL ベースのモデル駆動開発は
  MS の提唱する Software Factories という思想の一部分。
  Software Factories には、
  問題をどういう視点で見て分析するか・モデル化の手順
  というようなソフトウェア工学的な指針も含まれている。


  - MS DSL ツールの紹介
    http://msdn.microsoft.com/vstudio/DSLTools/
    http://www.microsoft.com/japan/msdn/architecture/dsl/

実質的に、DSL = ビジュアル言語
→ ビジュアルツールも含めて1つの言語
   言語の記法だけでなく、ツール開発も一緒に
   その開発インフラが DSL Tools
Transtation into English

[お問い合わせ](q)