関連付け可能なモデルの絞り込み
メタモデルでエンティティ間の参照関連を定義することで、参照先として関連付け可能なモデルの種類(メタモデルのクラス)を指定します。 その場合、参照先のモデルを追加しようとすると、プロジェクト内のすべてのモデルの中から、モデルの種類を条件に関連付け可能な候補が絞り込まれて一覧表示されます。
これに対して、特定範囲のモデルの中から、関連付け可能な候補が絞り込まれるように制約をかけられます。
例えば、次のメタモデル構造の場合について説明します。
- サブシステムとコンポーネントは関数を所有しています。・・・ 図の (2) と (4)
- モジュールは関数を利用します。・・・ 図の (5)
このメタモデル構造に従うと、モジュールで利用可能な関数の候補はサブシステムの関数とコンポーネントの関数の両方となります。 これに対して、モジュールでは、サブシステムの関数(図の (2))のみを利用でき、コンポーネントの関数(図の (4))は利用できないという、設計上の制約があるとします。
Next Design では、そのような制約を参照関連(図の(5))にかけることができます。
参照関連に制約をかけるには、メタモデルで定義されている参照関連に制約を追加します。 その制約では、メタモデル構造に基づいて、参照元エンティティから関連付け可能な参照先エンティティへのパス(以下、パス制約と記します)を指定します。 上記例では、参照元のモジュールを起点に参照先の関数へ至る図の(1)-(2)のパスを、次のように指定します。
$Parent.公開関数
パス制約をかけたら、そのパス制約が正しく機能することを検証しつつ、プロジェクト内でそのパス制約に違反する箇所がないか検証します。 これにより、既存のプロジェクトに後からパス制約を追加した場合や、パス制約を変更した場合にも、制約違反箇所を検出して対処できます。
以下では、エンティティ間の参照関連に対するパス制約について、次の順で説明します。
- パス制約を追加・変更する
- パス制約に従ってモデル編集する
- パス制約を検証する