MDG Technology feature guideby SparxSystems Japan

MDG テクノロジー 機能ガイド(2022/03/10 最終更新)

Copyright (c) 2009-2022 Sparx Systems Japan目次1はじめに.............................................................................................................................................. 32

独自モデルの定義の流れ .................................................................................................................... 532.1

モデルの定義 ............................................................................................................................... 52.2

制約の定義 .................................................................................................................................. 72.3

ソースコード生成の定義 ............................................................................................................ 8

支援機能の定義の流れ ........................................................................................................................ 93.1

独自のパターン ........................................................................................................................... 93.2

独自のモデルテンプレート ....................................................................................................... 113.3

独自のドキュメント生成ルール ............................................................................................... 113.4

独自のスクリプト ..................................................................................................................... 123.5

独自の検索ルール ..................................................................................................................... 123.6

独自のプロパティ画面 .............................................................................................................. 134

MDG テクノロジーのサンプル ........................................................................................................ 135

MDG テクノロジーの作成方法 ........................................................................................................ 146

MDG テクノロジーの開発例 ............................................................................................................ 156.1

独自の要素やダイアグラムなどのサンプル ............................................................................. 15

6.2

モデルテンプレートのみのサンプル ........................................................................................ 17

Copyright (c) 2009-2022 SparxSystems Japan2

1

はじめに
このドキュメントでは、Enterprise Architect が提供するカスタマイズ機能である「MDG テクノロジー」について説明します。この機能を利用することで、独自のモデリング言語(Domain Specific
Modeling Language : DSM 言語)を定義することができます。
具体的には、以下のような内容を独自に定義することができます。
・ 独自の要素やダイアグラム独自の要素やダイアグラム(図)を定義することができます。要素については、外見(表現)をカスタマイズすることができます。
・ 要素間の関係
Enterprise Architect の特徴的な機能であるクイックリンクについて、表示される選択肢を自由にカスタマイズできます。また、Enterprise Architect の「評価」の機能にルールを追加することで、独自のルールや制約条件に合致しているかどうかを確認することができます。
・ 独自要素から生成されるソースコードの内容作成したモデルから出力されるソースコードの内容を定義することができます。これにより、作成したモデルから「スケルトン」以上の結果を得ることも可能です。
そのほか、Enterprise Architect でのモデルの作成を支援するために、以下の内容を定義することができます。
・ 独自のパターン(要素間の関係を定義したもの)
・ 独自のモデルパターン(パッケージ・ダイアグラム・要素を含む構成情報)
・ 独自のヘルプ情報
・ 独自のドキュメント生成ルール
・ 独自のスクリプト・ 独自の検索ルール・ビュー
・ 独自のプロパティ画面
また、MDG テクノロジーを利用することで、以下の支援機能を利用することができます。
・ カスタマイズした全ての情報を単一の XML ファイルとして出力。そのファイルを配布することで、複雑な設定をせずに利用可能
・ ネットワークドライブや Web サーバに MDG テクノロジーファイルを配置すれば、それぞれの利用者は自動的に最新の設定情報を取得可能
Copyright (c) 2009-2022 SparxSystems Japan3

作成した MDG テクノロジーは、以下のような画面で利用の有無を選択することができます。
(「アドイン・拡張」リボン内の「MDG テクノロジー」パネルにある「設定」ボタンで開くことができます。)

なお、Enterprise Architect には利用する記法を切り替えるための「パースペクティブ」機能があります。Enterprise Architect の画面右上の「パースペクティブ」ボタンから切り替えることができます。
独自に作成したモデル要素のみを表示する独自のパースペクティブ設定を追加することで、UML など他の内容の選択肢を非表示にすることができます。
以下、このドキュメントでは、このような独自のモデリング言語の定義を「独自モデル」と表現します。
なお、個別の機能の詳細についてはこのドキュメントでは触れません。ヘルプや PDF ドキュメントをご覧ください。PDF ドキュメントは、以下のページからダウンロードできます。
https://www.sparxsystems.jp/products/EA/ea_documents.htm
このドキュメントでは、Enterprise Architect 16.0 ビルド 1601 を利用しています。異なるバージョ
Copyright (c) 2009-2022 SparxSystems Japan4

ンの場合、操作方法が異なる場合があります。

独自モデルの定義の流れ

2

Enterprise Architect で MDG テクノロジーを利用して独自モデルを構築するまでの大まかな手順としては、次のようになります。

2.1

モデルの定義まず、独自モデルを利用してモデリングを行う場合に利用する要素や接続を定義します。この定義のためには、「UML プロファイルの定義」機能を利用します。UML プロファイルの定義では、UML の要素をベースに独自の要素や接続を定義します。この定義作業も Enterprise Architect で行います。
要素や接続には、関係するプロパティが定義されることが一般的です。ここでは、そのプロパティについても定義します。
以下の例は、アクター要素を元に拡張し、「Customer」「InternalStakeholder」という 2 つの要素を定義した例です。それぞれ、プロパティ「ID」を持つことを示しています。
(名前の先頭が_(下線)の属性は、EA 内部の処理のための情報を示します。)«metaclass»
ActorCustomer-

InternalStakeholder_metatype: int = Customer
ID: int-_metatype: int = InternalStakeholder
ID: int

なお、ここで定義した要素をモデルに作成すると、プロパティは以下のようにプロパティサブウィン
ドウに表示され、参照・設定できます。

Copyright (c) 2009-2022 SparxSystems Japan

5

UML プロファイルについての概要は、PDF ドキュメント「UML プロファイル 機能ガイド」をご覧ください。
作成する要素や接続の外見を変更する場合には、「描画スクリプト」機能を活用します。描画スクリ
プト機能を利用すると、プロパティの値に応じて外見を変化させることもできます。
以下の図は、Enterprise Architect の描画スクリプトの定義画面です。

Copyright (c) 2009-2022 SparxSystems Japan

6

描画スクリプトの詳細やサンプルについては、ヘルプをご覧ください。
また、独自のダイアグラム(図)の種類を作成する場合にも UML プロファイルの定義で行います。具体的には、以下のようなモデルで定義します。

<<metaclass>>
Diagram_Activity

DRF_Interface+++alias = Dynamic Require...
diagramID = DRF_Interface
toolbox = DRF_Interface(DRF_Interface が追加するダイアグラムの種類。Diagram_Activity(アクティビティ図)を拡張することを示しています。)
独自ダイアグラムの定義については、ヘルプの「ダイアグラムプロファイル」のページをご覧ください。

2.2

制約の定義

次に、作成した独自モデルが持つ「制約」に関する定義を行います。具体的には、「ツールボックスの定義」「クイックリンクの定義」「評価ルールの定義」になります。

Copyright (c) 2009-2022 SparxSystems Japan7ツールボックスの定義は、ダイアグラムを開いた際に表示される内容を定義します。これにより、ダイアグラムでモデルを作成する場合に利用する要素や接続を提示することができます。ツールボックス
は、UML プロファイルを作成するだけで自動的に追加されますが、任意の項目・順番を指定することもできます。
ツールボックスの内容を任意に指定する場合に作成するモデルは次のような形になります。
DRF_Common++

UML::Association = MyAssociation
UML::Class = MyClass<<metaclass>>
ToolboxPage(DRF_Common という名前のツールボックスを作成し、その中に 2 つの項目が含まれることを示しています。)
ツールボックスの定義については、ヘルプの「ツールボックスプロファイル」のページをご覧ください。
また、クイックリンクのルールをカスタマイズすることで、要素間の接続の種類を制約することができます。クイックリンクを利用することにより、効率的なモデリングが可能になります。クイックリン
クの定義はいくつかの方法があります。詳細については、ヘルプの「クイックリンクプロファイル」のページをご覧ください。

ただし、現在の Enterprise Architect の動作としては、ツールボックスから接続を選択し、ルールに反する形で要素間を結びつけることも可能です。この対策の一つとして、「評価」のルールを追加し、独自モデルでのルールを検出するための仕組みを構築することができます。設計者は、随時「評価」の機能を実行することで、ルールに反していないかどうかを確認することができます。
あるいは、アドインの機能を利用することで、要素間に接続を作成した時に即時に検知(EA_OnPreNewConnector イベント)したり、ダイアグラムで利用できない要素を配置しようとした(EA_OnPreNewDiagramObject イベント)ときにエラーを表示したりするなどの動的な処理を行うことも可能です。

2.3

ソースコード生成の定義

最後に、作成した独自モデルからソースコードを生成する場合の出力結果を定義します。この場合には、「コード生成テンプレート」をカスタマイズします。なお、ソースコードが生成できるのは UMLのクラス要素を拡張した要素のみとなりますので、ソースコードを生成する元となる要素は、クラス要素を拡張して定義してください。
ソースコード生成の定義のカスタマイズについては、PDF ドキュメントの「コードテンプレートフレームワーク(CTF) 機能ガイド」をご覧ください。以下の図は、コード生成テンプレートエディタの画面です。
Copyright (c) 2009-2022 SparxSystems Japan8

3

支援機能の定義の流れ
次に、独自モデルの作成を支援するために利用できるさまざまな機能の概要を説明します。

3.1

独自のパターンEnterprise Architect が提供する「パターン」の機能を利用すると、独自のパターンを定義することができます。パターンとは、要素と接続の組み合わせのテンプレートです。有名なパターンとしては「デザインパターン」があります。
このような、モデルに出現するパターン(部品)を定義し、ツールボックスに表示することが可能です。
パターンを利用したい場合には、ツールボックスからドラッグ&ドロップします。
具体的な例として「戦略モデリング」テクノロジーの「バランススコアカード」では、「BalancedScorecard」というパターンが定義されています。このパターンをダイアグラムにドラッグ&ドロップすると以下のような画面が表示され、定義されたパターン(テンプレート構成)をダイアグラムに追加することができます。

Copyright (c) 2009-2022 SparxSystems Japan9

ツールボックス

設定画面

Copyright (c) 2009-2022 SparxSystems Japan10

Financial Perspective
Enter text in Notes field.

Business Process Perspective

Customer Perspective

Enter text in Notes field.

Enter text in Notes field.

VISION&STRATEGY

Learning & Growth Perspective
Enter text in Notes field.

ドロップした結果の例

3.2

独自のモデルテンプレート

3.1 章のパターンは、要素と接続のみで構成される内容になりますが、モデルテンプレートは、ダイアグラム・パッケージを含めたモデル構造のテンプレートになります。パッケージの階層構造を含めて、モデルを構築する場合の適切な構成をテンプレートとして作成し利用することができます。
設計者は、利用するモデルテンプレートを選択し取り込むことができます。これにより、特にモデリングの最初の段階において効率的に進めることができるようになります。
Enterprise Architect が提供しているモデルテンプレートのデータは、Enterprise Architect のインストールディレクトリにある「ModelPatterns」ディレクトリに格納されています。それぞれのデータはEnterprise Architect のパッケージを XMI 形式で出力したものです。独自に追加する場合には、MDGテクノロジーでファイル名を指定する必要があります。
この、モデルテンプレートは、独自のパッケージ構成などを定義してチーム内で利用する場合にとても便利です。このモデルテンプレートのみを含む MDG テクノロジーファイルの簡単な作り方と利用方法を 6.2 章で説明しています。
3.3

独自のドキュメント生成ルール

独自モデルで作成した設計情報は、ソースコードとして出力するほか、DOCX, PDF, RTF(Word 互換)
Copyright (c) 2009-2022 SparxSystems Japan

11

のドキュメントとして出力することができると便利です。
このドキュメントの出力内容は「ドキュメントのテンプレート」をカスタマイズすることで、自由に定義ができます。詳細は、PDF ドキュメント「ドキュメント出力機能 機能ガイド」をご覧ください。

3.4

独自のスクリプトEnterprise Architect では、内部で API を利用してプログラムを作成することができます。例えば、全ての要素を対象に一括で処理を行うような場合に、要素の数が多い場合には手作業で処理を行うのは現実的ではありません。このような場合に、API を利用してスクリプトを定義して実行することができます。
定義したスクリプトも MDG テクノロジーの一部分になります。これにより、他の設計者も同じスクリプトを利用して作業を効率化することができます。
下の画像は、スクリプトエディタの画面です。スクリプトは、VBScript, JavaScript, Jscript のいず
れかで作成できます。

定義したスクリプトは作成したプロジェクトに格納されます。MDG テクノロジーのファイルを作成する際に、プロジェクト内のスクリプトを出力することができます。

3.5

独自の検索ルール

Enterprise Architect で独自に定義できる検索ルールも効率的なモデリングを支援します。
Copyright (c) 2009-2022 SparxSystems Japan12

検索ルールは、モデル内の要素やダイアグラムを対象に、指定した条件で抽出することができます。
例えば、指定した要素と独自モデルとして関係のある要素を抽出する場合などに活用できます。

3.6

独自のプロパティ画面

独自モデルを作成しても、要素や接続をダブルクリックして表示されるプロパティ画面は EnterpriseArchitect 標準のままです。このプロパティ画面には、利用することのないプロパティも表示されます。
下の画像は、DFD の要素をダブルクリックした場合に表示されるプロパティ画面です。

アドイン機能の EA_OnContextItemDoubleClicked イベントを利用することで、独自のプロパティ画面を作成することができます。ダブルクリックした要素の種類に応じてプロパティ画面を変えることもできます。
(このイベントの戻り値として True を返すと、Enterprise Architect 標準のプロパティダイアログは表示されなくなります。)
また、このような独自のプロパティ画面を作成することで、プロパティ内の制約や矛盾をチェックすることができます。例えば、ノート(コメント)を必ず入力しなければならない、というようなルールがある場合、独自プロパティ画面を閉じる前にチェックを行い、入力されていない場合にはエラーを表示する、という処理を実装できます。

4

MDG テクノロジーのサンプル
ここまで説明したような MDG テクノロジーを実際に利用した例は数多くあります。実際に、スパークスシステムズ ジャパンで提供している有償・無償のアドインはこの MDG テクノロジーの仕組みを利用しています。
無償の MDG テクノロジーの主なものと、独自に定義している内容をご紹介します。これらの MDG
テクノロジーのうちのいくつかは、テクノロジーを定義している XML ファイル自身を参照することができますので、独自にファイルを作成する場合にも役立ちます。
・ DFD(データフロー図)・PFD(プロセスフロー図)・BPMN
Copyright (c) 2009-2022 SparxSystems Japan13

ダイアグラム・要素(外見の変更を含む)・ツールボックス・クイックリンク定義・プロパティ画面(アドイン)・評価ルール(アドイン)・ 戦略モデリング
ダイアグラム・要素(外見の変更を含む)・ツールボックス・クイックリンク定義・パターン
MDG テクノロジーのファイルは、Enterprise Architect のインストールディレクトリにある「MDGTechnologies」ディレクトリに格納されています。独自に作成した MDG テクノロジーファイ
ルをこの位置に配置することで、Enterprise Architect で利用できるようになります。
(このディレクトリへの書き込みには管理者権限が必要です。
「アドイン・拡張」リボン内の「MDGテクノロジー」パネルにある「独自拡張」ボタンを押すと表示されるメニューから「MDG テクノロジーファイルの読み込み」を実行することで、各ユーザーの権限でファイルを作成でき、EnterpriseArchitect から参照される位置に MDG テクノロジーファイルを配置(コピー)することができます。)5

MDG テクノロジーの作成方法
MDG テクノロジーファイルを作成するには、2 章および 3 章で説明したさまざまな設定を 1 つのプロジェクトに格納し、そのプロジェクトで「MDG テクノロジー作成ウィザード」を実行します。
作成ウィザードでは、下記のような画面で対象のカスタマイズデータを指定することができます。

この MDG テクノロジー 作成ウィザードについての詳細は、ヘルプの「MDG テクノロジーの作成」
Copyright (c) 2009-2022 SparxSystems Japan

14

をご覧ください。

6

MDG テクノロジーの開発例
最後に、実際に独自の MDG テクノロジーを定義したサンプルを紹介します。
6.1

独自の要素やダイアグラムなどのサンプル

このサンプルは「ecoSystem」というフレームワークに関するプロファイルです。このサンプルはEnterprise Architect のサンプルプロジェクトに含まれています。サンプルプロジェクトを開き、自動的に表示されるダイアグラムから「プロファイルの拡張」→「UML プロファイルのサンプル」とリンクをたどってください。
このサンプルは次のような構成になっています。

まず、「ecoSystem Stereotypes」パッケージを確認します。このパッケージでは、UML プロファイ
ルとして独自の要素を定義しています。定義してある内容は次の図の通りです。

Copyright (c) 2009-2022 SparxSystems Japan15

QuickLinkanimal-habitat_image = <Image type="EA...
_metatype = Animal«metaclass»
Class+-_metatype = Habitat-_image = <Image type="EA...
_metatype = Food«metaclass»
Dependency

isActive: Boolean+direction: Direction = Source -> Desti...
foodplant-_metatype = Plant

この定義のうち、クラスの右上に«»のマークがついているのが独自に追加する要素で、拡張の関係でつながっているクラスが、Enterprise Architect がもつ、基底となるクラスです。
ecoSystem Diagram のパッケージでは、独自のダイアグラムの定義を行っています。左側が独自に追加するダイアグラムです。
«metaclass»Diagram_Logical-

ecoSystem

alias = ecoSystem
diagramID = ecotoolbox = ecoSystemToolbox

そして、ecoSystemToolbox パッケージ内で、これらの独自要素と独自のダイアグラムとの関連づけを行っています。下の例はそのダイアグラムです。
ecoSystemRelationships-

ecoSystem::food(UML::Dependency) = Food
ecoSystem::habitat(UML::Dependency) = Habitat«metacl...
ToolboxPage

ecoSystemElements-

ecoSystem::animal(UML::Class) = Animal
ecoSystem::plant(UML::Class) = Plant

ここまでのデータが作成できたら、MDG テクノロジーウィザードを利用して、MDG テクノロジーファイル(1 つの XML ファイル)を作成します。そして、その XML ファイルを所定の位置に配置すれば、利用可能になります。

Copyright (c) 2009-2022 SparxSystems Japan

166.2モデルテンプレートのみのサンプル

3.2 章で説明したモデルテンプレートは、チーム(複数人数)での継続的な設計の場合に活用すると、大きな効果を発揮します。具体的には、チームでの標準的なパッケージ構成をテンプレートとして定義しておくことで、新規にプロジェクトを作成した場合に、同じパッケージ構成で設計ができます。
同じパッケージ構成で設計ができることにより、例えばどのように UML で表現するのか、どこまで詳細に表現するのか、などの気になる点があれば、既存の他のプロジェクトの同じ場所を見ることで、参考にすることができます。プロジェクトごとにパッケージ構成がばらばらになっていると、このような場合に参照すべきパッケージ・ダイアグラムを見つけることは容易ではありません。
この、モデルテンプレートのみを含む MDG テクノロジーファイルは簡単に作成できます。作成方法と利用方法を紹介します。
まず、モデルテンプレートとして利用するパッケージ構成を Enterprise Architect を利用して作成します。空のプロジェクトにパッケージやダイアグラムを追加しても良いですし、既存のプロジェクトをコピーし、要素などの中身を削除して作成しても良いです。例えば、以下のようなパッケージ構成を定義したとします。
完成したら、テンプレートとして作成する最上位のパッケージを選択した状態で、「生成・入出力」リボン内の「モデルの入出力」パネルにある「XML 出力」ボタンを押し、「XML ファイルへ出力」を実行してください。内容を XMI1.1 あるいは 2.1 形式(ファイルの拡張子は XML)で出力してください。
複数のテンプレートを利用可能にする場合には、この作業を繰り返して複数の XML ファイルを作成して下さい。
次に、このモデルテンプレートを含む MDG テクノロジーファイルを作成します。メモ帳などのテキストエディタで、以下の内容を含むファイルを作成して下さい。
----ここから---<?xml version="1.0" encoding="Shift_JIS"?><MDG.Technology version="1.0"><Documentation id="MY_ID" name="MyTemplateName" alias="テンプレートグループ名" version="1.0" notes="全体の説明文"/><ModelTemplates><Model name="テンプレート名 1" description="テンプレート説明 1" location="TemplateFileName1.xml"/><Model name="テンプレート名 2" description="テンプレート説明 2" location="TemplateFileName2.xml"/></ModelTemplates></MDG.Technology>----ここまで---Copyright (c) 2009-2022 SparxSystems Japan17このファイルで、赤字で記載されている部分については、必要に応じて内容を変更して下さい。最初の id と name は、アルファベットと数字のみで、先頭文字はアルファベットにして下さい。location の値
は、先ほど出力したファイル名にしてください。必要に応じて、<Model name=で始まる行の数を増減させて下さい。完成したら、このファイルも拡張子 XML のファイルとして保存して下さい。
次に、このファイルと、先ほどの XML ファイルをまとめて 1 つのフォルダに配置します。チームで共有する場合には、ネットワークドライブの特定のフォルダに配置すると良いでしょう。
このモデルテンプレートを利用するためには、Enterprise Architect を起動し、「アドイン・拡張」リボン内の「MDG テクノロジー」パネルにある「設定」ボタンを押します。
「MDG テクノロジーの設定」画面が表示されますので、画面左下にある「追加設定」のボタンを押してください。
すると、「MDG テクノロジー – 追加設定」画面が表示されますので、左下の「追加」ボタンを押し、サブメニューから「パスの追加」を選択します。そして、先ほどのファイルが格納されているフォルダを指定して下さい。
以上で、モデルテンプレートの選択画面から、自分で作成したテンプレートを選択できるようになります。

Copyright (c) 2009-2022 SparxSystems Japan

18

改版履歴
2009/12/11 初版
2011/05/18 Enterprise Architect9.0 のリリースに伴い、内容を更新。
2011/12/21 Enterprise Architect9.2 のリリースに伴い、内容を更新。
2013/02/04 6.2 章を追加。
2014/01/30 説明の微調整・画像の差し替え。
2015/08/31 説明内容の一部を最新の内容に更新。
2015/12/01 Enterprise Architect12.1 のリリースに伴い、内容を更新。
2016/02/15 利用することができない情報が残っていた箇所を削除。
2016/10/07 Enterprise Architect12.1 のリリースに伴い、内容を更新。
2018/05/16 Enterprise Architect14.0 のリリースに伴い、内容を更新。
2022/03/10 DFD では評価機能が廃止されたので、その説明を削除。

Copyright (c) 2009-2022 SparxSystems Japan

19