メタモデル制約の定義

<< 目次を表示 >>

ページ位置:  Enterprise Architectの拡張(SDK) > 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」タグの制約値は、次のとおりです:

  • classifier - 元となるステレオタイプ要素の分類子を、対象となるステレオタイプ要素で制限します。
  • type - 元となるステレオタイプ要素の種類を、対象となるステレオタイプ要素で制限します。
  • behavior - 元となるステレオタイプ要素の振る舞いを、対象となるステレオタイプ要素で制限します。
  • conveyed - 元となるステレオタイプ要素の運ばれる要素を、対象となるステレオタイプ要素で制限します。
  • slot - 元となるステレオタイプ要素のスロットを、対象となるステレオタイプ要素で制限します。
  • client/source/end[0].role/informationSource - 接続のソース側要素を、対象となるステレオタイプ要素で制限します。
  • supplier/target/end[1].role/informationTarget - 接続のターゲット側要素を、対象となるステレオタイプ要素で制限します。
  • realizingConnector/realizingActivityEdge/realizingMessage - 情報フローを実現できる接続を制限します。
  • typedElement/instanceSpecification - モデルブラウザから分類子としてドロップされた際、対象となるステレオタイプで種類を制限します。
  • owner/class/activity/owningInstance - この要素のコンテナを、対象となるステレオタイプ要素で制限します。この制約は、クイックリンクの埋め込み要素のルールを作成したり、モデルの評価の際にネスティングの検証に使われたりします。
  • ownedElement/ownedAttribute/ownedOperation/ownedParameter/ownedPort - 元となるステレオタイプ要素が所有する要素/属性/操作/パラメータ/ポートを制限します。この制約は、モデルの評価の際にネスティングの検証に使われるのが一般的です。
  • annotatedElement/constrainedElement - ノートリンクの接続の対象を、対象となるステレオタイプ要素で制限します。

(参考:メタ制約に使われる制約)

ステレオタイプ関連

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>

上位のクラスの設定を継承しないようにする場合には、この設定を利用します。

 

 

参照: