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

Domain-Specific Modeling

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

 

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


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

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


ワーストプラクティス

 良くない事例集 <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は適合させにくいのではという質問をよくいただきます。しかしながらデバイスドライバーの開発で多くの良い事例があります
 
SWとHWのコデザインに ドメインスペシフィック言語を統合
 
 組込みシステム開発では、ソフトウエアとハードウエア両方の異なるアーキテクチャ間の代替案を分析・管理する必要があり、様々なアーキテクチャ記述言語が必要になる。
 
DSM 言語の開発にどれだけの工数が必要か?
 
 一般にはモデリング言語とコード生成機能を、ツールを用いて定義するのには、数年もの工数が掛かるプロジェクトになると予想されます。しかしながら我々の経験では数日でDSLとコード生成機能を実装しています。
 
DSLのパネルディスカッション動画 @OOPSLA 2008
 
 発表者の多くがDSL開発に工数と費用が掛かることを課題にするなか、MetaCase社 Juha-Pekka氏は、間違った適用法(広範なドメイン、コードレベルの抽象度、生成されるコードに手を加える)や、未熟なツール(インクリメントに開発できない、イテレーティブに進化させられない、複数のDSLを統合できない)によっては、数日で構築できる DSL に数年を浪費してしまうことを警告しています。そして、まずは小さな事例で実績を得ること、その成果を持ってマネジメントの理解を得ることで、継続的に進化させることが肝要であると説いています。
 
ドメインスペシフィック モデリングセミナー 2010 資料公開
 
・アーキテクチャ記述言語に活用される 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+ の例題演習を介して、イテレーティブに、実用的な独自のモデリング言語が、コード資産を基にして、容易に実装できることを紹介します。(所要時間:180分)


モデル管理をどうすれば良いのか?

 
 モデリングブームの中、殆どの方は既存のバージョン管理ツールやその手法でモデルを管理しようと試みる。CVSなどはテキストレベルの言語サポートを目的に進化したが、残念ながらモデルの管理には向いていない。それはたとえモデルがテキストで保存されてもである。モデリング担当者、VCSベンダー、あるいはモデリングツールベンダーでさえ、この困難に直面している。ここでリポジトリ―ベースのモデリングツールが、このようなコードファイルの管理を意図して作られたツールの課題に直面する多くの人へ解となる。Professor Mandfred Broy 氏(Technical University of Munich) は Software Product Line Conference の講演で、”全てのモデル駆動開発ツールはリポジトリ―ベースにするべきである” と強調している。 MataCase社CTOのSteven Kelly は、十数年にわたって成功裏に活用される成熟したモデリングツールが、モデルのバリアントやバージョンの課題を解決できるかを調査し、リポジトリ―ベースのツールによって複数開発者によって開発される複数の統合されるモデルの適切な管理について論文にした。既存のバージョン管理システムはモデル管理に重要な役割を持つものの、モデリング言語、ツール、そのリポジトリ―自身が最適な役割を担う。モデルエレメント、複数ユーザのリポジトリ、製品系列にドメインスペシフィックな言語、それのバリエーションが直接リンク付けされることで、生産性向上をもたらす成熟したDSMを得ることができる。


動画デモ Flash形式

 
 マトリクス、テーブル、ダイアグラムの形式で同じモデルを表現
  -既存のダイアグラムをマトリクスに変換
  -メタモデルからマトリックスエディタを開いて一から記述 
 
 
 MetaEdit+ で開発されるドメインスペシフィックモデリング言語なら、独自のルールやコンストレインツを持たせて、間違ったモデルを描けないようにすることができる
 
 
 Decomposition を設定することによりグラフ間の階層設定や、複数モデリング言語を統合することができる
 
 
 アプリケーションモデルや、モデリング言語(メタモデルのコンセプト、ルール、シンボル、ジェネレータ)が同時に編集できて、その結果は他のユーザへシームレスに反映