ドメイン固有モデリング

出典: フリー百科事典『ウィキペディア(Wikipedia)』
移動: 案内検索

ドメイン固有モデリング(ドメインこゆうモデリング、Domain-Specific ModelingDSM)とは、ソフトウェアなど主にITシステムで使われるシステム設計開発手法である。グラフィカルなドメイン固有言語(DSL)を使用してシステムの様々な面を表現する。DSM言語は汎用モデリング言語よりも抽象度が高く、システムを記述するのに詳細化を要しない。

概要[編集]

DSMにしばしば付随する概念としてコード生成(DSMモデルからの自動的な実行可能コードの生成)がある。ソースコードの記述や保守から解放させることで、DSMは開発者の生産性を劇的に向上させる。自動生成と手で書いたコードの信頼性を比較すると、自動生成のほうがバグが少なく、品質が良い傾向がある。

DSM は、1980年代のCASEツールによるコード生成の試みや1990年代のUMLツールによるコード生成の試みとは異なる。これらはいずれもコード生成機能とモデリング言語がツールベンダーによって開発された。一方、DSM言語をツールベンダーが作ることももちろん可能だが、通常 DSM はそれを使用する組織が作成する。ごく少数の専任開発者がモデリング言語とコード生成機能を開発し、他の開発者がそれを使用する。

モデリング言語とコード生成機能を利用する組織自身で開発することで、その組織の領域(ドメイン)とニーズに正確に対応させることができる。また、用語や概念が開発者にとって親しみ易いため、モデリング言語を開発者が学習するための時間も削減できる。さらに、その組織の要求だけを考慮すればよいので、モデリング言語の修正も早い。

DSM言語のツールサポート[編集]

多くの汎用モデリング言語はCASEツールの形で各種ツールを備えている。DSM言語はそれぞれの市場が非常に小さいため、同様のツールを一から作るのは採算が合わない。その代わりとして、DSM言語をサポートするツールを構築するためのDSMフレームワークやDSM環境がある。

DSM環境はメタモデリングツールである。つまり、モデリングツールやCASEツールを定義するためのモデリングツールである。そこで作成されたツールも同じDSM環境で動作するか、場合によっては独立したプログラムとして動作するようにできるものもある。一般に DSM環境は普通のCASEツールに比較して抽象レベルが一段高い。

DSM環境を使うとDSM言語用ツール作成コストを劇的に低減できる。よく設計されたDSM環境は手間のかかるプログラム部品の生成を自動化し、ドメイン固有エディタ/ブラウザ/部品などを備えている。そのドメインの専門家はドメイン固有の構成要素と規則だけを使い、DSM環境は対象ドメイン向けに最適化されたモデリングツールを提供する。

多くのDSMはDSM環境として提供される。商用製品には MetaEdit+、オープンソース製品にはGEMS、学術向けにはGMEがある。DSMが一般化するにつれて、既存の統合開発環境にDSMフレームワークを追加する動きが出てきた。例えば、EclipseEMFGMF向けのEclipse Modeling Project (EMP)、マイクロソフトでのソフトウェアファクトリー向けのDSL Toolsなどがある。

DSMの例[編集]

DSM言語は特定のドメインにおける複数の抽象化レベルを適用範囲とする。例えば、携帯電話用のDSM言語では、ユーザーインターフェイスの高度な抽象的定義から論理回路の低レベルの実装までサポートする。同様に金融サービス向けDSM言語は顧客に関する高度に抽象化された定義や各種取引に関するアルゴリズムの実装までサポートする。

DSM言語とUMLの比較[編集]

統一モデリング言語(UML)はソフトウェアを中心とした汎用モデリング言語であり、主にオブジェクト指向プログラミングをサポートするよう設計されている。DSM言語とは異なり、UMLは非常に広範囲の領域で利用可能である。

しかし、UMLにはプロファイル機構があり、それによって特定のドメインやプラットフォーム向けにカスタマイズしたり制限したりできる。UMLプロファイルはステレオタイプと呼ばれるタグ付き値と制限によってUMLを特定ドメイン向けに制限および拡張する。UMLのカスタマイズ例としてよく知られているのはSysMLであろう。これはシステム工学向けのDSM言語である。

DSM言語の定義[編集]

言語を定義するには、その定義を記述する言語が必要である。言語のモデルをメタモデルと呼ぶことが多いが、モデリング言語を定義するための言語はさしずめメタメタモデルである。メタメタモデルは2種類に分類される。既存言語のカスタマイズによって生まれた言語と当初からメタメタモデルとして開発された言語である。

既存言語から派生したメタメタモデルとしては、実体関連モデル形式言語EBNFオントロジー言語XML SchemaMOFなどがある。

ドメイン固有モデリングは特定タスクのために新たな言語を作成することを特徴としているため、メタメタモデルとして新たに設計された言語があるのも何ら驚くべきことではない。その種の言語で有名なものとしては、OPRR[1][2]、GOPRR[3]、GOPPRRがある。

他のメタモデル定義用ドメイン固有言語として、単純な変換言語とすることを指向したATLがある。ATL変換の巨大なライブラリがEclipse metamodel open source libraryにある。ATLはドメイン固有変換言語の典型例である。

参考文献[編集]

  1. ^ R.J. Welke. The CASE Repository: More than another database application. In W.W. Cotterman and J.A. Senn, editors, Proceedings of 1988 INTEC Symposium Systems Analysis and Design: A Research Strategy, Atlanta, Georgia, 1988. Georgia State University.
  2. ^ Smolander, K., (1992) OPRR - A Model for Modeling Systems Development Methods. In: Next Generation CASE Tools (eds. K. Lyytinen, V.-P. Tahvanainen) IOS Press, Amsterdam, Netherlands, pp. 224-239.
  3. ^ Kelly, S., Lyytinen, K., and Rossi, M., "MetaEdit+: A Fully Configurable Multi-User and Multi-Tool CASE Environment," Proceedings of CAiSE'96, 8th Intl. Conference on Advanced Information Systems Engineering, Lecture Notes in Computer Science 1080, Springer-Verlag, pp. 1-21, 1996.

関連項目[編集]

外部リンク[編集]