<< 目次を表示 >> ページ位置: Enterprise Architectの拡張 > 独自の表記方法・記述言語の定義 > MDGテクノロジーを独自に定義 > プロファイルの作成 > プロファイルの作成と編集 > メタモデルビュー > メタモデル制約の定義 > メタ制約に使われる制約 |
ドメイン固有のプロファイルを作成する場合、Enterprise Architectでは、関連するステレオタイプ間に制約を指定できます。 例えば、ステレオタイプ化された要素の分類子として設定できる要素を制限できます。
メタ制約の接続は、2つのステレオタイプの間にあって、2者間の制約を指定するのに利用されます。メタ制約の接続は、「プロファイル」ツールボックスの「メタモデル」から利用できます。 制約は、メタ制約の接続の「umlRole」タグに設定する必要があります。
利用手順:
リボン |
モデル > ダイアグラム > ツールボックス: > プロファイル > メタモデル |
キーボード |
Ctrl + Shift + 3 |
「umlRole」タグの制約値
(以下の表の内容は、タグ付き値 'umlRole' に対してのみ設定できます。大文字小文字を区別しますので、下の表の文字列に完全に一致するように設定してください。)
メタ制約の接続の「umlRole」タグの制約値は、以下のとおりです:
項目 |
説明 |
classifier |
この制約は、元となるステレオタイプ要素の分類子を、対象となるステレオタイプ要素で制限します。
ここで挙げるプロファイルの例では、メタ制約の接続は、ステレオタイプActualConditionからConditionへ接続されています。制約は、接続のタグ付き値「umlRole」で、「classifier」と指定されています。これは、「Condition」でステレオタイプ化された要素だけが、ActualConditionでステレオタイプ化された要素の分類子として設定できることを意味します。 このプロファイルをモデルに読み込むと、ActualConditionでステレオタイプ化された要素のデータの種類を設定する際、Conditionでステレオタイプ化された要素のみが、「分類子の指定」ダイアログに表示されます。 |
type |
この制約は、Ctrlキーを押しながら対象となるステレオタイプ要素がモデルブラウザからダイアグラムへドロップされた場合、要素の種類を指定します。 (参考:モデルブラウザから要素を配置)
ここで挙げるプロファイルの例では、メタ制約の接続がステレオタイプCapabilityPropertyからCapabilityへ接続されています。制約は、接続のタグ付き値「umlRole」で、「type」と指定されています。 このプロファイルをモデルに読み込み、Capabilityでステレオタイプ化された要素をCtrlキーを押しながらモデルブラウザからダイアグラム上にドロップした場合、「要素の配置」ダイアログにおいて、CapabilityPropertyが「配置形式」リストの選択肢の一つとしてを表示されます。 |
behavior |
この制約は、元となるステレオタイプ要素の振る舞いを、対象となるステレオタイプ要素で制限します。
ここで挙げるプロファイルの例では、メタ制約の接続が、ステレオタイプFunctionActionからFunctionへ接続されています。制約は、接続のタグ付き値「umlRole」で、「behavior」と指定されています。これは、「Function」でステレオタイプ化された要素だけが、FunctionActionでステレオタイプ化された要素の分類子として指定できることを意味します。 このプロファイルをモデルに読み込むと、FunctionActionでステレオタイプ化された要素の振る舞いを設定する際、Functionでステレオタイプ化された要素のみが、「アクティビティの選択」ダイアログに表示されます。 |
conveyed |
この制約は、情報フローの接続を拡張するステレオタイプが運ばれる要素を制限します。
ここで挙げるプロファイルの例では、メタ制約の接続が、ステレオタイプOperationalExchangeからOperationExchangeItemへ接続されています。制約は、接続のタグ付き値「umlRole」で、「conveyed」と指定されています。 これは、OperationalExchangeの接続がある場合、この接続によって運ばれる要素は、OperationalExchangeItemによってステレオタイプ化された要素に制限されることを意味します。 |
slot |
この制約は、ステレオタイプ要素のスロットを、対象となるステレオタイプ要素で制限します。
ここで挙げるプロファイルの例では、メタ制約の接続が、ステレオタイプActualProjectからActualProjectRoleへ接続されています。制約は、接続のタグ付き値「umlRole」で、「slot」と指定されています。ステレオタイプ「ActualProject」は、UMLオブジェクトを拡張しており、ステレオタイプ「Project」を分類できることに注目しましょう。 モデル内で、Project要素に対するインスタンス指定が作成された場合(モデルブラウザからダイアグラムへとCtrlキーを押しながらドロップされた場合)、以下のようになります:
|
client/ source/ end[0].role/ informationSource |
モデル評価制約を設定して、ステレオタイプ化された接続のソース側の要素を制限します。
ここで挙げるプロファイルの例では、メタ制約の接続が、ステレオタイプ「FunctionControlFlow」から「FunctionAction」へ接続されています。制約は、接続のタグ付き値「umlRole」で、「source」と指定されています。 これは、FunctionControlFlowの接続が描かれた場合、ソース側の要素はFunctionActionでステレオタイプ化された要素でなければならないことを示しています。そうでない場合、Enterprise Architectは、モデルの評価の実行時に、エラーを表示します。 |
supplier/ target/ end[1].role/ informationTarget |
このモデル評価制約は、ステレオタイプ化された接続のターゲット側の要素を制限します。詳細は、ソース側の要素と同様です。 |
realizingConnector/ realizingActivityEdge/ realizingMessage |
この制約は、情報フローを実現できる接続を制限します。
ここで挙げるプロファイルの例では、メタ制約の接続が、ステレオタイプOperationalExchange(これはUML InformationFlow メタクラスを拡張するもの)からOperationConnectorへ接続されています。制約は、接続のタグ付き値「umlRole」で、「realizingConnector」と指定されています。 これは、OperationalConnectorの接続が描かれている場合、この接続で実現される情報フローは、OperationalExchangeでステレオタイプ化された接続となり得ることを示しています。 |
typedElement/ instanceSpecification |
この制約は、モデルブラウザから分類子をドロップする際、利用可能な種類を対象となるステレオタイプ要素に制限します。 |
owner/ class/ activity/ owningInstance |
この制約は、要素のコンテナ/所有者を対象となるステレオタイプ要素に制限します。 この制約は、クイックリンクの埋め込み要素のルールを作成し、モデルの評価の際には、ネスティングの検証を行います。
ここで挙げるプロファイルの例では、メタ制約の接続が、ステレオタイプDataElementからDataModelへ接続されています。制約は、接続のタグ付き値「umlRole」で、「owner」と指定されています。 これは、DataElementでステレオタイプ化された要素は、DataModelでステレオタイプ化された要素の子供となることができることを示しています。 言い換えれば、このモデルにおいては、DataModelだけがDataElementを含んだり/所有したりできる、ということです。 |
ownedElement/ ownedAttribute/ ownedOperation/ ownedParameter/ ownedPort |
この制約は、元ステレオタイプ要素が所有できる要素/属性/操作/パラメータ/ポートを制限します。 この制約は、モデルの評価の際、ネスティングの検証に使われるのが一般的です。
ここで挙げるプロファイルの例では、メタ制約の接続が、ステレオタイプProjectMilestoneからProjectThemeへ接続されています。制約は、接続のタグ付き値「umlRole」で、「ownedAttribute」と指定されています。 これは、ProjectMilestoneでステレオタイプ化された要素は、モデル内で「ProjectTheme」でステレオタイプ化された属性を含むことができることを示しています。 |
annotatedElement/ constrainedElement |
このモデル評価制約は、ノートリンクの対象を制限します。
ここで挙げるプロファイルの例では、メタ制約の接続が、ステレオタイプSecurityControlFamilyからSecurityControlへ接続されています。制約は、接続のタグ付き値「umlRole」で、「annotatedElement」と指定されています。
このプロファイルがモデルへ読み込まれた場合、SecurityControlFamilyでステレオタイプ化された要素から伸びるノートリンクの対象は、SecurityControlでステレオタイプ化された要素でなければなりません。 そうでない場合、Enterprise Architectは、モデルの評価の実行時に、エラーを表示します。 |
参照: