MetaCase社 MetaEdit+ は、モデル言語を開発(メタモデリング)するためのツールで、ドメインスペシフィックモデリング(DSM: Domain-Specific Modeling)言語を作るために活用される。製品系列などにドメインを限定して、高い抽象度、かつフォーマルなモデルから完全なソースコードやドキュメントを自動生成させて、コンシューマ製品、通信機器、産業システム、車載機器、防衛システムなど、あらゆるシステムの開発効率を飛躍的に改善する(5~10倍の生産性)。DSMは、グラフィカルなDSL(ドメインスペシフィック言語)と表現されることもある。

ソフトウエアの体系的な再利用を促進する手法


MetaEdit+ ならDSM言語にルールや制約を簡単に設定できるので、フレームワークの仕様書の代わりに、DSM言語を構築すれば、フレームワーク使用上のルールが徹底されない問題や、アプリケーション開発者の経験差によるばらつきから開放されるようになる。


Nokia社事例 LinkIcon 新規メンバーの学習期間を短縮、生産性を10倍向上
 
EADS社事例 LinkIcon C に対する知識が少なくても効率良く開発が出来る
 
通信システム事例 アーキテクチャ上のルールをDSM言語に組込む
 
資料:既存フレームワークを活用する専用のモデル開発環境の構築 LinkIcon
 

他のDSLに無い優位性

モデリング言語の構築がGUIを用いて簡単であることに加えて、モデリング言語、モデル、ジェネレータなど全ての成果物が専用のリポジトリに保存され、モデル環境のメンテナンスや、アプリケーション開発者へのサポートを大幅に軽減。その結果、はるかに短期間でモデリング言語を実装できる(DSM の構築にどれだけの工数が必要か?)。一般に、MetaEdit+ でDSM環境を構築するために必要な熟練者は300人の開発チームでも1~2名。またマルチユーザ、マルチ言語対応であることも、従来のモデル駆動開発ツールには無かった優位性。
 

 
 

産業界で実践的に採用される手法とツール

 UMLは抽象度がコードレベルである為、生産性はコード実装作業と変わりません。また生成されるコードはスケルトン、あるいは冗長なものにとどまります。それに対して、ドメイン専用のモデル開発環境なら、高い抽象度でモデル化して、妥協の無い完全なコードを自動生成することができます。
 
その秘訣は、製品や開発チームごとに専用のモデル開発環境を構築することです。そうすることで製品コンセプトを意識した高い抽象度でモデル開発が可能になり、生産性が飛躍的に向上します。また、既存のフレームワークを用いるアプリケーションロジックを生成するジェネレータスクリプトを定義して、完全なコードの自動生成が行えます。これはフレームワークを用いてアプリケーションを実装する作法をモデル言語に組み込む仕組みです(結果、モデルをコンパイルしてコードを生成させるようなイメージ)。 これにはランタイムライブラリなどツール独自のプログラムを常駐させる必要はありません。また、如何なるターゲット、RTOS、ソース言語にも対応しています。 また、製品独自のコンセプトを意識した高い抽象度のモデルになるため、発注者や営業、企画部などの関係者間とのコミュニケーションもスムーズになります。 このようなDSM環境を手軽に構築する為に必要な機能を備えたツールがMetaEdit+です。  
 

UMLをベースにしたDSLは、進化し続ける製品に合わせた変更・修正等のメンテナンスに莫大な工数と労力が費やされ、実用に耐えることができない。 ET 2012 講演報告 UMLより10倍速い

 MetaEdit+ Workbench は、ドメインスペシフィックモデリング言語環境を構築するためのツールです。シンプルでありながら強力なメタモデリング言語とユニークなGUIによる設定環境を用いて、モデリング言語のコンセプト、プロパティー、ルール、シンボル、言語のチェックレポート、コードやドキュメントの自動生成、などの定義が簡単に行えます。インストール内には再利用可能な多くのライブラリもあり、導入後直ちに作業を始めることができます。
 

独自のモデリング言語を設計する手順を紹介

 

ドメインスペシフィックモデリング言語を作るには、まず開発熟練者がモデルの属性、ドメインコンセプト、ルール、モデルからコードへのマップなどを定義します。(通常2週間、大規模システムでも3人月。良いツールなら1~2年もかからない!) 
 
そして開発チームはシステムをモデリングして、完全なコードを自動生成します。抽象度を上げて、モデリング作業は製品をスケッチする感覚にまで高めることができます。
 
人手に頼った、仕様書からコードへのマッピング、フレームワークやライブラリに対する習熟・解析作業などから開放され、製品デザインに集中することができるようになります。 これは全ての開発者が熟練者なみのコード開発能力を身に付けたに等しく(熟練者のノウハウを共有)、飛躍的に生産性と品質を向上させます。 
 
-生産性が10倍上がった
-100%のコードが自動生成できる
-デザインドキュメントも生成してレビューに活用
-新メンバーの研修期間が6ヶ月から2週間に
-製品機能を意識した高い抽象度で開発が出来た(コード実装では無く)

 MetaEdit+ Modeler を用いて、MetaEdit+ Workbenchで定義されたモデリング言語をリポジトリから呼び出して、モデリング作業が行えます。複数のユーザーと複数のプロジェクトに対して、主要なプラットフォームで動作します。 
 

 
MetaEdit+ Modeler は専用のモデリング言語をサポートする完全なGUIツールを提供します。モデリング言語に対する追加・改善は、グラフィカルなモデル、マトリクス又は表を用いるモデリング環境へ即座に反映されます。
 
また、フィルターを使ったデザインの表示、部品の追加・修正、他のモデルとのリンク、モデルのチェックが行えます。デザインされたモデルを、HTMLやワード形式に出力したり、完全なソースコードを生成することが出来ます。

  MetaEdit+では、マルチユーザ・モデリング環境をサポートしています。 MetaEdit+ Serverを追加することにより、アプリケーションモデルや、モデリング言語(メタモデルのコンセプト、ルール、シンボル、ジェネレータ)が同時に編集できて、その結果は他のユーザへシームレスに反映されます。
 
チェックアウト・チェックインを意識しなくても良い
差分や比較を取る必要がない
人手によるマージ作業を排除
モデリング言語開発担当によるアップデートを待つ必要がない
モデリング言語の最新版を探す、アップロードする必要がない
メタモデルの修正に合わせて手作業でアプリモデルを更新する必要がない

 

 

 MetaEdit+ なら、マージの苦労やロックされることの心配無く、モデルのバージョン管理を行えます。首尾一貫した最新バージョンのモデルで、一連の変更を全員にコミットすることができます。何が変更されたのか、グラフィカルに、あるいはテキストベースやツリー構造で表示させて、バージョンとしてコメントして名前を付けることができます。またバージョン情報は主要なバージョン管理ツールに自動保存されます(a local Git repository, a team’s SVN, on GitHub, Bitbucket etc)。別のユーザーによる変更や、旧バージョンの状態を見るためのバージョン間の比較は、MetaEdit+からでもバージョン管理ツールからでも行えます。
 

ツリー構造 で変更表示(ドメインスペシフィックな構造やシンボルで:XMLなどでは無く)
グラフィカル に変更をハイライト
テキストに変更をハイライトさせることや、モデルデータの表示をカスタマイズできる
外部バージョン管理ツール(Git や SVN)との容易な連携
マルチユーザ版では、XMLによるマージの苦労無しに他のユーザとコラボレーションできる
多様な開発マシン間で最新版に同期できる

 

 
 

 MetaEdit+ は特定ドメイン向けにカスタマイズしたドメインスペシフィックモデリング言語を開発してメンテナンスするための専用ツールであることから、以下の例を基に状況に応じた戦略が取れる。
 
1:モデリング言語の使用法
 
数十人、数百人からの問い合わせに対応できる体制が必要であっても、ドメインスペシフィックなルールや制約を持たせることや、言語の抽象度を上げることで、UMLやSimulinkなどの汎用モデリング言語と比較して、求められるサポートの量や内容は限られる。
 
また特定ドメイン向けにカスタマイズされたモデリング言語のサポートは技術的に難しくない。本来ドメインの知識は、それを使用する組織が持ち合わせるので、サポートはできるだけ現場に近いことが望まれる。チーム内、あるいは社内で組織されるのが適切。数百人規模で使用されたNokia社の事例では、新メンバーの学習期間が6ヶ月から2週間になったことからも、言語のトレーニングやサポートが容易であることが理解できる。
 
2:モデリング言語への機能追加や変更
 
モデリング言語を使用する担当者が数百人でも、そのモデリング言語を開発して、要求に応じた機能追加や変更作業に必要な開発者は数人。例えば、数百人規模の開発に使用されたNokia社のモデリング言語は、MetaCase社の数人によって開発され、メンテナンスされた。汎用モデリング言語に比較して詳細な変更・修正等は必要ない。
 
そもそもモデリング言語の開発を意図していない環境(UMLやEclipse )をベースにすると数年以上かかる作業に比較して、MetaEdit+であればモデリング言語開発は2週間程度。イテレーティブにモデリング言語を開発して、メンテナンスを容易にする仕組みを備えるので。(参考 : UMLより10倍速い)
 
 

もし社内専用のアーキテクチャモデリングやシステムモデリング言語に対して、数百ある組織ごとに異なる要求に応じた変更が必要ならば、富士設備、MetaCase社に相談を

 
ただ既にあるモデリング言語に対する機能追加や変更には、モデリング言語を一から開発する程のスキルは必要ないので、チーム内や社内でもサポート体制を組織化できる。(ここでもできるだけ現場に近いことが望まれる)
 
またアーキテクチャモデリングやシステムモデリング言語であれば、社内開発プロセスを横断的に支援する組織が請負って、異なる要求を単一のモデリング言語環境にまとめることもできる。
 
できるだけツールメーカに依存したくないなら、独自のモデリング言語を開発して、そのサポート体制を作ることが最善であり、MetaEdit+はそれができる唯一つのツール。

・MetaEdit+ Workbench: 専用モデリング言語とジェネレータの開発と使用
・MetaEdit+ Modeler: 専用モデリング言語とジェネレータの使用
 

 
弊社とMetaCase社にて、お客様のDSM環境の開発を請け負うこともできます。費用は規模にもよりますが、始めはプルーフオブコンセプトとして小さな部分を3日程度で開発し、そのメタモデルを用いて講習会を行います。これをベースにして、メタモデルをお客様側で進化させる、あるいは残りの部分も全てお請けすることが出来ます。携帯電話のような大規模システムでも、DSM環境の開発は3ヶ月程度です。 MetaEdit+ は専用のデータベースで管理される為、小さな部分を作ってから少しずつ柔軟に進化させられます。
 
国内でDSM開発を依頼いただいたお客様からは、完成度が高く、メタモデル開発における多くの知見が得られたと、好評頂いています。
 
詳細については、お問合せ頂けると幸いです。
 


Modeler Modeler with API
Workbench
モデリング機能
ジェネレータ機能
APIでツール連携・統合

XMLでツール連携・統合

モデリング言語を作る機能


ジェネレータを作る機能


SysML等システムモデリングへの緊急提言を追記

事例スライド

ソフト/ハードの協調設計環境の構築

パナソニック 成功事例

Eclipse の Papyrus project による評価

MetaEdit+ 評価版を入手