既存フレームワークを活用する専用のモデル開発環境(DSM)の構築
ドメイン固有言語は、コードライブラリやフレームワークの延長線上にあり、それらの共通コードを効率良く、容易に、堅実に使用することができる手法です。この資料では、ライブラリやフレームワークに対して専用のモデル開発環境を構築する方法について紹介します。
専用モデリング言語の始め方
あらゆるアプリケーションや産業分野、課題に適合するレベルの抽象化に満足するのではなく、Domain-Specific Language により、開発における妥協を回避できる。 独自のDSLを構築することで、どの様にして、品質と生産性を大幅に向上できるかをご紹介します。
MetaEdit+ DSMのジェネレータ定義について
全てのコードを一字一句記述することが賢明でないことは周知のこと。いくつかの機能を実装することで、それらコードの類似性を見出して、繰り返されるパターンに気付くことができる。毎回決まりきったコードを実装したくは無いので、繰り返される個所を自動生成するといった、コード生成の自動化の考えに至ることは必然。この資料では、どのようにしてコード自動生成機能がMetaEdit+ で実現できるかについて紹介する。
MetaEdit +ならDSM言語の進化を自動的に反映できる
言語を変更しても、モデルエディターがフリーズするようなことは無く、既存モデルやジェネレータなど、すべての成果物が新しい言語バージョンに自動的に更新されます。 これは、シングルユーザー版で単独で作業する場合も、コラボレーションモデリングにマルチユーザー版を使用する場合でも同じです。
以下の記事で、事例を用いて詳しく紹介しています。(英文ですがChromeなどの翻訳機能で簡単に読めます)
SPLC 2019講演資料/日本語訳版を公開
How Domain-Specific Modeling Languages Address Variability in Product Line Development: Investigation of 23 Cases
ドメイン固有のモデリングの産業界の23事例から、どのような種類の再利用およびプロダクトラインアプローチが適用されているかを検証する。
MODELS 2018講演資料
日本語訳版を公開
Effort Used to Create Domain-Specific Modeling Languages

MetaEdit+でなら通常1~2週間で開発できる
コラボレーション開発の技術革新
規模が増大するアプリケーションの、多様な側面や異なる開発者の様々なビューは、単一のモデリング言語で満たすことはできない。言語・ジェネレータ・表記などの定義を再利用できて、複数のモデリング言語が開発プロセスを通じて統合されて、様々な専門領域が一体化される、革新的なコラボレーションを支援できるツールだけが現実的な選択肢として、モデルベース開発の可能性を大きく飛躍させることができる。
ワーストプラクティス
補足資料
状態遷移モデルから状態遷移表を生成 ~テストシナリオの自動生成など
単純な状態遷移を例にして、従来のモデリングツールには無い優位性をご紹介
実行履歴やシーケンス図から状態遷移図に変換
例えば、シーケンス図からSDL(Specification and Description Language)に変換するなどの活用事例があります
MetaEdit+ 概説書
MetaEdit+ のDSM環境構築機能(MetaEdit+ Workbench)、モデリング機能(MetaEdit+)の各種機能を説明しています。MetaCase社日本語ページのProducts部分をまとめた資料です。
ドメインフレームワークについて
モデルから生成させるコード(部品を呼び出す為の処理や、条件判断文)と、ドメインフレームワークの役割について簡単に説明します。
ジェネレータの動作について
MetaEdit+のコードジェネレータは、独自のスクリプトを使ってモデル内を巡回し、メタモデルのデータ(プロパティー)に応じて、プログラム言語を構成する文字列を出力します。 これにより、あらゆるプログラミング言語のソースコード、要求仕様書などのテキストドキュメント、各種モデリングツールのモデルを自動生成させることができます。
メタモデルを変更する場合の考察と支援機能
ドメイン固有モデリング言語を実開発で使用するには、ライフサイクルを通じた修正やメンテナンスを避けることはできない。少なくとも、その製品系列が開発・メンテナンスされ続ける数年間は。MetaEdit+のリポジトリには、DSMソリューションを共有するためのポリシーが備わっていて、自動的に言語の新しいバージョンで、全てのユーザーのモデルを更新することができる。あるいはDSMの定義を個々のファイル(またはファイル群)で共有可能にして、各モデリング担当者が個々のモデリング環境にインポートすることもできる。これは新しいバージョンがデプロイされたときに、メタモデルの古いバージョンで作成されたモデルインスタンスの情報が失われないようにするために、極めて重要な機能。
コンディションによりグラフ表示を変更する方法
Graph上でオブジェクトを移動した時に、その位置に合わせてボタンの表示名(上下関係)を変更させる。
サブグラフの名前を上位グラフのオブジェクトに表示させる方法
サブグラフの名前をオブジェクト内に表示させる方法
MetaEdit+ プロジェクトの エクスポート・インポート手順
MetaEdit+のリポジトリ間で、メタモデルと実体(モデル)の両データを、バイナリ形式(.mec)でエクスポート・インポートする方法を紹介。
MetaEdit+ ライセンスの有効化、無効化
ライセンス形態はノードロックのみですが、ライセンスの有効・無効化は顧客サイドで容易にできる仕組みです。
DSM言語を作るためのツールを比較
ドメイン固有モデリング言語ツールを構築するための複数の手段を成熟度順で紹介
デバイスドライバー開発にも活用
組込みシステムの ドライバーSW開発では、新規HWへの修正・変更が主な作業であり、DSMは適合させにくいのではという質問をよくいただきます。しかしながらデバイスドライバーの開発で多くの良い事例があります
DSM 言語の開発にどれだけの工数が必要か?
一般にはモデリング言語とコード生成機能を、ツールを用いて定義するのには、数年もの工数が掛かるプロジェクトになると予想されます。しかしながら我々の経験では数日でDSLとコード生成機能を実装しています。
DSLのパネルディスカッション動画 @OOPSLA 2008
発表者の多くがDSL開発に工数と費用が掛かることを課題にするなか、MetaCase社 Juha-Pekka氏は、間違った適用法(広範なドメイン、コードレベルの抽象度、生成されるコードに手を加える)や、未熟なツール(インクリメントに開発できない、イテレーティブに進化させられない、複数のDSLを統合できない)によっては、数日で構築できる DSL に数年を浪費してしまうことを警告しています。そして、まずは小さな事例で実績を得ること、その成果を持ってマネジメントの理解を得ることで、継続的に進化させることが肝要であると説いています。
ドメイン固有モデリングセミナー 資料公開
・アーキテクチャ記述言語に活用される MetaEdit+ / EAST-ADL、AUTOSAR、SysML など
・派生開発/SPLE を支援する MetaEdit+ / ドメイン固有モデリングと完全なコード自動生成
MetaEdit+ チュートリアル 3部作
Family Tree Modeling Language チュートリアル
MetaEdit+ Workbench で提供される機能について紹介。段階を追った演習を通して、モデル言語の作り方、その言語の使用法がわかるようにしています。また、モデル言語の機能を拡張する方法についても言及しています。
Code Generation 2009 ハンズオン資料
モデルから完全なコード生成と、その生産性向上に興味を持っても、どのようにしてコーディング中心の開発からモデリングベースへ移行できるかは、良く知られていません。特に白紙状態から、抽象度を上げて高い生産性を得る(UMLではかなわない)独自のモデリング言語を作ることは、難しいと思われています。そこで、このセッションでは、MetaEdit+ の例題演習を介して、イテレーティブに、実用的な独自のモデリング言語が、コード資産を基にして、容易に実装できることを紹介します。資料・動画デモ
モデル管理をどうすれば良いのか?
モデリングブームの中、殆どの方は既存のバージョン管理ツールやその手法でモデルを管理しようと試みる。CVSなどはテキストレベルの言語サポートを目的に進化したが、残念ながらモデルの管理には向いていない。それはたとえモデルがテキストで保存されてもである。モデリング担当者、VCSベンダー、あるいはモデリングツールベンダーでさえ、この困難に直面している。ここでリポジトリ―ベースのモデリングツールが、このようなコードファイルの管理を意図して作られたツールの課題に直面する多くの人へ解となる。Professor Mandfred Broy 氏(Technical University of Munich) は Software Product Line Conference の講演で、”全てのモデル駆動開発ツールはリポジトリ―ベースにするべきである” と強調している。 MataCase社CTOのSteven Kelly は、十数年にわたって成功裏に活用される成熟したモデリングツールが、モデルのバリアントやバージョンの課題を解決できるかを調査し、リポジトリ―ベースのツールによって複数開発者によって開発される複数の統合されるモデルの適切な管理について論文にした。既存のバージョン管理システムはモデル管理に重要な役割を持つものの、モデリング言語、ツール、そのリポジトリ―自身が最適な役割を担う。モデルエレメント、複数ユーザのリポジトリ、製品系列にドメイン固有な言語、それのバリエーションが直接リンク付けされることで、生産性向上をもたらす成熟したDSMを得ることができる。
動画デモ
MetaEdit+ Forum
技術的な質問に Domain-Specific Modeling の著者をはじめとする専門家より回答を得ることができます。