HOME | products | MetaEdit+ | MetaEdit+ 各種資料と動画デモ

Domain-Specific Modeling について

既存フレームワークを活用する専用のモデル開発環境(DSM)の構築 LinkIcon
 
 ドメイン固有言語は、コードライブラリやフレームワークの延長線上にあり、それらの共通コードを効率良く、容易に、堅実に使用することができる手法です。この資料では、ライブラリやフレームワークに対して専用のモデル開発環境を構築する方法について紹介します。

 

専用モデリング言語の始め方 LinkIcon
 
 あらゆるアプリケーションや産業分野、課題に適合するレベルの抽象化に満足するのではなく、Domain-Specific Language により、開発における妥協を回避できる。 独自のDSLを構築することで、どの様にして、品質と生産性を大幅に向上できるかをご紹介します。
 
MetaEdit+ DSMのジェネレータ定義について LinkIcon
 
 全てのコードを一字一句記述することが賢明でないことは周知のこと。いくつかの機能を実装することで、それらコードの類似性を見出して、繰り返されるパターンに気付くことができる。毎回決まりきったコードを実装したくは無いので、繰り返される個所を自動生成するといった、コード生成の自動化の考えに至ることは必然。この資料では、どのようにしてコード自動生成機能がMetaEdit+ で実現できるかについて紹介する。

DSMの技術解説書

MataCase社の、Juha-Pekka氏、Steven Kelly氏による、ドメイン固有モデリングの長年の経験がまとめられています(ツールの詳細ではなく)。最初の40ページは、DSMの概要と優位性、次の50ページで、DSMのアーキテクチャと各要素、次の100ページでは5つの実践的なサンプルを用いて、モデリング言語、ドメインフレームワーク、コードジェネレーションの紹介、そして残りの200ページで、独自のモデル環境を如何にして構築できるかを、事例を交えた実践的な方法を紹介しています。製品版や評価版で、動作させることもできるようになっています。

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+ツールを使用して、特定のドメインのための完全なモデリングソリューションを開発する取り組みに焦点を当てながら、2つの異なる方法で合計10の事例にわたって必要とされる投資について比較します。まず、ケーススタディを行って、2つの現実的なサイズのドメイン固有のモデリングソリューションを実装する開発努力に関する詳細なデータを紹介します。次に、さまざまな企業から公開されている8つの事例をレビューして、同じツールを使用した業界の経験からデータを取得し、それらを私たちのケーススタディの結果と比較します。ケーススタディと業界事例の両方から、このツールでは、ドメイン固有のモデリング言語環境を作成するために必要な投資はわずかであることが示されました。その範囲は3〜15人日、平均10人日です。
ACM/IEEE 21th International Conference on Model Driven Engineering Languages and Systems /Copenhagen, Denmark 14-19 October, 2018
 
 

MetaEdit+でなら通常1~2週間で開発できる

 
 

コラボレーション開発の技術革新

規模が増大するアプリケーションの、多様な側面や異なる開発者の様々なビューは、単一のモデリング言語で満たすことはできない。言語・ジェネレータ・表記などの定義を再利用できて、複数のモデリング言語が開発プロセスを通じて統合されて、様々な専門領域が一体化される、革新的なコラボレーションを支援できるツールだけが現実的な選択肢として、モデルベース開発の可能性を大きく飛躍させることができる。
 

ワーストプラクティス

 

良くない事例集 <IEEE Software 特集記事> : ドメイン固有モデリング(DSM)言語を正しく活用するための指南書は殆ど無い。ベストプラクティスを留意することに加えて、共通の落とし穴や避けるべきことを知ることは有用である。著者は、広範な76 例のDSM を分析しワーストプラクティスを分類した。15 年間で、4 カ国、様々なツール、100 人にも及ぶ言語開発者、プロジェクト内のモデル担当者が3人から300 人の規模まで。これらワーストプラクティスを、プロジェクトの進捗にあわせて直面すると考えられる順で紹介する。講演資料も公開

補足資料

 

 

状態遷移モデルから状態遷移表を生成 ~テストシナリオの自動生成など LinkIcon
 
単純な状態遷移を例にして、従来のモデリングツールには無い優位性をご紹介
 
実行履歴やシーケンス図から状態遷移図に変換 LinkIcon
 
例えば、シーケンス図からSDL(Specification and Description Language)に変換するなどの活用事例があります
 
MetaEdit+ 概説書 LinkIcon
 
MetaEdit+ のDSM環境構築機能(MetaEdit+ Workbench)、モデリング機能(MetaEdit+)の各種機能を説明しています。MetaCase社日本語ページのProducts部分をまとめた資料です。
 
ドメインフレームワークについて LinkIcon
 
モデルから生成させるコード(部品を呼び出す為の処理や、条件判断文)と、ドメインフレームワークの役割について簡単に説明します。
 
ジェネレータの動作について LinkIcon
 
MetaEdit+のコードジェネレータは、独自のスクリプトを使ってモデル内を巡回し、メタモデルのデータ(プロパティー)に応じて、プログラム言語を構成する文字列を出力します。 これにより、あらゆるプログラミング言語のソースコード、要求仕様書などのテキストドキュメント、各種モデリングツールのモデルを自動生成させることができます。
 
メタモデルを変更する場合の考察と支援機能 LinkIcon
 
ドメイン固有モデリング言語を実開発で使用するには、ライフサイクルを通じた修正やメンテナンスを避けることはできない。少なくとも、その製品系列が開発・メンテナンスされ続ける数年間は。MetaEdit+のリポジトリには、DSMソリューションを共有するためのポリシーが備わっていて、自動的に言語の新しいバージョンで、全てのユーザーのモデルを更新することができる。あるいはDSMの定義を個々のファイル(またはファイル群)で共有可能にして、各モデリング担当者が個々のモデリング環境にインポートすることもできる。これは新しいバージョンがデプロイされたときに、メタモデルの古いバージョンで作成されたモデルインスタンスの情報が失われないようにするために、極めて重要な機能。
 
コンディションによりグラフ表示を変更する方法 LinkIcon
 
Graph上でオブジェクトを移動した時に、その位置に合わせてボタンの表示名(上下関係)を変更させる。
 
サブグラフの名前を上位グラフのオブジェクトに表示させる方法   LinkIcon
 
サブグラフの名前をオブジェクト内に表示させる方法
 
MetaEdit+ プロジェクトの エクスポート・インポート手順 LinkIcon
 
MetaEdit+のリポジトリ間で、メタモデルと実体(モデル)の両データを、バイナリ形式(.mec)でエクスポート・インポートする方法を紹介。
 
MetaEdit+ ライセンスの有効化、無効化 LinkIcon
 
ライセンス形態はノードロックのみですが、ライセンスの有効・無効化は顧客サイドで容易にできる仕組みです。

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 チュートリアル LinkIcon
 
MetaEdit+ Workbench で提供される機能について紹介。段階を追った演習を通して、モデル言語の作り方、その言語の使用法がわかるようにしています。また、モデル言語の機能を拡張する方法についても言及しています。
  

 
このチュートリアルは、MetaEdit+を使って作成されたモデリング言語の内容を理解する事で、モデリング言語の構築に関する考え方と、その手法を学習することを目的に書かれています。 評価版などインストール内にあるサンプルを用いて演習が行えます。
 
 
グラフィカルメタモデリング機能の概説書。 サンプルを用いて、MetaEdit+でグラフィカルにメタモデリングができることを紹介します。MetaEdit+ のグラフィカルメタモデリングによりメタモデルの中核となる、言語コンセプトと関連するルールなどの基本をデザインすることで、言語(モデリング環境)作成の始めの段階を支援します。作成された言語のデザインは、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+ で開発されるドメイン固有モデリング言語なら、独自のルールやコンストレインツを持たせて、間違ったモデルを描けないようにすることができる
 
 
Decomposition を設定することによりグラフ間の階層設定や、複数モデリング言語を統合することができる
 
 
アプリケーションモデルや、モデリング言語(メタモデルのコンセプト、ルール、シンボル、ジェネレータ)が同時に編集できて、その結果は他のユーザへシームレスに反映

事例

 
パナソニック事例 LinkIcon  ユーザインタフェース・デザインツールの開発
 
ソフト/ハードの協調設計環境 SystemC Japanでの 講演スライド LinkIcon
 
Nokia社事例 LinkIcon  新規メンバーの学習期間を短縮、生産性を10倍向上
 
EADS社事例 LinkIcon  C に対する知識が少なくても効率良く開発が出来る
 
事例スライド LinkIcon  スポーツコンピュータ、ホームオートメーション、防衛通信機器

 
IPA 独立行政法人情報処理推進機構 先進的な設計・検証技術の適用事例報告書

MetaEdit+ Forum

技術的な質問に Domain-Specific Modeling の著者をはじめとする専門家より回答を得ることができます。