| << 目次を表示 >> ページ位置: Enterprise Architectの拡張 > 独自の表記方法・記述言語の定義 > MDGテクノロジーを独自に定義 > プロファイルの作成 > プロファイルの作成と編集 > メタモデルビュー > メタモデル制約の定義 | 
UMLを拡張してドメイン固有のプロファイルを作成する際、Enterprise Architectでは、接続を制限する制約の指定が可能です。接続は、クリックリンクやツールボックスを利用して描くことができます。 こうした制約は、「プロファイル」ツールボックスの「メタモデル」以下にある関係から定義されています。なお、このページで説明する接続の「向き」は定義には考慮されません。常に接続のソース側要素からターゲット側要素への関係として出力されます。
利用手順:
| リボン | モデル > ダイアグラム > ツールボックス: | 
| キーボード | Ctrl + Shift + 3 | 
プロファイルにメタモデル制約を追加する
| 項目 | 説明 | 
| メタ関連 | 2つのステレオタイプをつなぐメタ関連の接続は、この2つのステレオタイプの間で有効なUMLの接続を指定するのに使われます。 UMLの接続の名前は、メタ関連の接続の「metaclass」タグに設定される必要があります。 
 
 
 ここで挙げるプロファイルの例では、メタ関連の接続が、ステレオタイプServiceSpecificationからServiceInterfaceへ接続されています。UMLの接続の名前は、接続のタグ付き値として指定します。 このプロファイルをモデルに読み込むと、Enterprise Architectは、クイックリンクを使ってServiceSpecificationとServiceInterfaceの間に関係を作成する際、メタ関連の接続で指定された有効なUMLの接続を表示します。 | 
| メタ制約 | 2つのステレオタイプをつなぐメタ制約の接続は、この2つのステレオタイプ間の制約を指定するのに使われます。制約は、メタ制約の接続の「umlRole」タグに設定する必要があります。 
 
 ここで挙げるプロファイルの例では、メタ制約の接続が、ステレオタイプActualProjectMilestoneからProjectMilestoneへ接続されています。制約は、接続のタグ付き値「umlRole」で、「classifier」と指定されています。 このプロファイルをモデルへ読み込むと、ActualProjectMilestone要素に分類子を割り当てる際、Enterprise ArchitectはProjectMilestoneでステレオタイプ化された要素のみを表示します。 
 「umlRole」タグの制約値は、次のとおりです: 
 (参考:メタ制約に使われる制約) | 
| ステレオタイプ関連 | 2つのステレオタイプをつなぐステレオタイプ関連の接続は、この2つのステレオタイプの間で有効なステレオタイプの接続を指定するのに使われます。 
 ステレオタイプの名前は、ステレオタイプ関連の接続の「stereotype」タグに設定する必要があります。 
 
 ここで挙げるプロファイルの例では、ステレオタイプ関連の接続が、ApplicationComponentからApplicationEventへ接続されており、接続のタグ付き値のstereotypeが「Assignment」に設定されています。 
 このプロファイルをモデルに読み込むと、Enterprise Architectは、クイックリンクを使ってApplicationComponentとApplicationEventの間に関係を作成する際、「Assinged」の選択肢を表示します。 (参考:メタモデル制約とクイックリンク) | 
特別なメタクラス
要素間を接続で結ぶ場合に、ソース側の要素に特別な要素を指定し、ターゲット側の要素に実際に適用されるメタクラスを指定できます。以下のいずれかの名前を、ステレオタイプ«metaclass».を付加したクラス要素に対して設定してください。
| 項目 | 説明 | 
| source.metatype | ターゲット側の要素は、ソース側で定義されるステレオタイプと完全に一致しなければなりません。 | 
| source.metatype.general | ターゲット側の要素は、ソース側で定義されるステレオタイプと完全に一致するか、あるいはそのステレオタイプの上位(汎化)クラスである必要があります。 | 
| source.metatype.specific | ターゲット側の要素は、ソース側で定義されるステレオタイプと完全に一致するか、あるいはそのステレオタイプの下位(特化)クラスである必要があります。 | 
| source.metatype.both | ターゲット側の要素は、ソース側で定義されるステレオタイプと完全に一致するか、あるいはそのステレオタイプの上位(汎化)クラスあるいは下位(特化)クラスである必要があります。 | 
| <profile_name>::* | '<profile_name>' の名前を持つプロファイルで定義されている項目すべてに対応します。 | 
| <none> | 上位のクラスの設定を継承しないようにする場合には、この設定を利用します。 | 
参照: