エンティティ間の関連定義
概要
Next Design のメタモデルでは、親子関係を表す所有関連以外にもエンティティ間の関連を定義できます。
以下では、エンティティ間の関連を定義する手順を、次の順で説明します。
- 関連の種類
- 関連を追加する
- 関連を削除する
- 関連の設定を変更する
- 関連にフィールドを追加する
- 関連からフィールドを削除する
- クラス図から削除した関連を再表示する
エンティティ間の関連を含むメタモデルのイメージ
関連の種類
メタモデル定義で利用できる関連の種類は次の通りです。
種類 | 説明 |
---|---|
所有 | 親子関係や集約を表す関連 |
参照 | 利用や依存の関係を表す関連 |
導出 | 起源とのトレース関係を表す関連 |
継承 | 特性を継承することを表す関連 |
- 詳細については、リファレンス > 関連の種類と詳細 を参照してください。
関連を追加する
関連の種類ごとに関連の追加方法を説明します。
所有関連を追加する
エンティティ間の所有関連を追加・削除することは、モデルの構造を定義することと同義です。 所有関連の追加・削除方法については、 メタモデル定義 > モデルの構造定義 を参照してください。
参照関連を追加する
エンティティ間の参照関連を追加する方法には、次の通り複数の方法があります。おすすめは1つ目の方法です。
- クラス図で参照関連を追加する
- モデリングしながら新しい参照関連を追加する
- ERダイアグラムでモデリングしながら新しい参照関連を追加する
- フォームでモデリングしながら新しい参照関連を追加する
- ツリーグリッドでモデリングしながら新しい参照関連を追加する
以下では、上記方法ごとに操作手順を説明します。
クラス図で参照関連を追加
クラス図を使ってエンティティ間の参照関連を追加するには、次の手順で行います。
- 参照関連を結ぶ互いのエンティティが含まれているクラス図を表示します。 片方のエンティティが同じクラス図に含まれていない場合は、 メタモデル定義 > モデルの構造定義 > エンティティを追加する > 既存のエンティティをクラス図に追加する の手順に従って、エンティティをクラス図に追加します。
- 参照元のエンティティにポインタを移動し、その四方向に表示される [▲] アイコンをドラッグして、参照先となるエンティティにドロップします。
- ドロップすると、関連の種類を選択するポップアップが表示され、選択肢の中から [参照] を選択します。
- これにより、エンティティ間の参照関係が定義され、ER ダイアグラムのビュー定義に関連を表すコネクターを追加できるようになります。
ERダイアグラムでモデリングしながら新しい参照関連を追加
ERダイアグラムでモデリングしながら、新しい参照関連を追加するには、次の手順で行います。
- ERダイアグラム上に参照関連を結びたい2つのモデルを追加します。
- 参照元のエンティティを選択してから、 ctrl キーを押下しながら参照先のエンティティを選択します。
- 次のいずれかのコマンドをクリックします。(いずれも同じ動作です)
- リボンの [プロファイル] > [ダイアグラム] > [コネクタ] > [関連とコネクタを追加]
- リボンの [プロファイル] > [メタモデル] > [関連]
- リボンの [シェイプ] > [シェイプ] > [コネクタ] > [関連とコネクタを追加]
- コンテキストメニューの [関連を追加...]
- クリックすると、[新しいコネクタシェイプ] ダイアログが表示され、項目を設定してから [OK] ボタンを押下します。
- これにより、次の変更が一度に行われ、2つのモデル間に関連線が結ばれます。
- メタモデルにエンティティ間の参照関係を追加
- ERダイアグラムのビュー定義に関連を表すコネクターを定義
- モデル間に参照関係を追加
- メタモデルに追加された新しい関連は既存のクラス図に自動表示されません。必要に応じて後述の「クラス図から削除した関連を再表示する」に従ってクラス図に表示させてください。
フォームでモデリングしながら新しい参照関連を追加
フォームでモデリングしながら、新しい参照関連を追加するには、次の手順で行います。
- フォーム上で参照元となるモデルを選択します(グリッド表示されているモデル以外を選択してください)。
- 次のいずれかのコマンドをクリックすると、[新しいフィールド] ダイアログが表示されます。(いずれも同じ動作です)
- リボンの [プロファイル] > [メタモデル] > [フィールド]
- リボンの [プロファイル] > [フォーム] > [新しいフィールド]
- リボンの [フォーム] > [フォーム] > [新しいフィールド]
- コンテキストメニューの [新しいフィールドを追加...]
- 設定項目の [データ型] の右端にある [...] ボタンをクリックすると、参照先のエンティティを検索するファインダが開きます。
- ファインダ上の一覧から参照先のエンティティを検索してダブルクリックすると、[データ型] に参照先のエンティティが入力されます。
- 設定項目の [フィールドの種類] から [参照] を選択し、その他の項目を設定してから [OK] ボタンを押下します。
- これにより、次の変更が一度に行われ、フォーム上にフィールドが追加されます。
- メタモデルにエンティティ間の参照関係を追加
- フォームのビュー定義に参照先のモデルを表すフィールドを追加
ツリーグリッドでモデリングしながら新しい参照関連を追加
ツリーグリッドでモデリングしながら、新しい参照関連を追加するには、次の手順で行います。
- ツリーグリッド上で参照元となるモデルを選択します。
- 次のいずれかのコマンドをクリックすると、[新しいフィールド] ダイアログが表示されます。(いずれも同じ動作です)
- リボンの [プロファイル] > [メタモデル] > [フィールド]
- リボンの [プロファイル] > [フォーム] > [新しいフィールド]
- リボンの [フォーム] > [フォーム] > [新しいフィールド]
- コンテキストメニューの [新しいフィールドを追加...]
- 前述の「フォームでモデリングしながら新しい参照関連を追加」と同様に、[新しいフィールド] ダイアログで項目を設定してから [OK] ボタンを押下します。
- これにより、次の変更が一度に行われ、ツリーグリッド上で参照元モデルの下位に参照先モデルを追加できるようになります。
- メタモデルにエンティティ間の参照関係を追加
- ツリーグリッドのビュー定義で参照元モデルの下位に参照先モデルを表示可能なフィールドを追加
導出関連を追加する
クラス図を使って導出関連を追加するには、次の手順で行います。
- 導出関連を結ぶ互いのエンティティをクラス図に追加します。
- 導出されるエンティティにポインタを移動し、その四方向に表示される [▲] アイコンをドラッグして、導出元となるエンティティにドロップします。
- ドロップすると、関連の種類を選択するポップアップが表示され、選択肢の中から [導出] を選択します。
- これにより、エンティティ間の導出関係が定義され、モデリング時にモデル間での導出やトレース関係の追加ができるようになります。
- 導出関連を定義するときは、既存のクラス図とは別に、導出関連だけを定義するためのクラス図を新規追加することをおすすめします。 導出関連はメタモデルを横断して数多く定義するため、複数のクラス図で別々に定義するとメタモデル全体での導出関連の過不足を把握しづらくなります。
継承関連を追加する
エンティティ間の継承関連を追加するには、クラス図を使って次の手順で行います。
- 継承関連を結ぶ互いのエンティティをクラス図に追加します。
- 継承先のエンティティにポインタを移動し、その四方向に表示される [▲] アイコンをドラッグして、継承元となるエンティティにドロップします。
- ドロップすると、関連の種類を選択するポップアップが表示され、選択肢の中から [継承] を選択します。
- これにより、エンティティ間の継承関係が定義され、継承元エンティティのフィールドを継承先でも使用できるようになります。
関連を削除する
エンティティ間の関連を削除するには、次の通り複数の方法があります。
- 関連をメタモデルから削除
- 関連をクラス図から削除 (メタモデルから削除せずクラス図で非表示にする)
なお、関連の削除方法は関連の種類によらず同じです。
関連をメタモデルから削除する
クラス図で既存の関連をメタモデルから削除するには、次の手順で行います。
- モデルで使用されている関連を削除する場合は、モデルから該当する関連をあらかじめ削除します。
- クラス図でメタモデルから削除する関連を選択して、コンテキストメニューから [モデルから削除] を実行します。
次の手順でも関連をメタモデルから削除できます。
- プロファイルナビゲータで削除する関連を選択します。
- インスペクタで選択した関連の詳細を確認します。
- コンテキストメニューから [削除] を実行、もしくは、 delete キーを押下します。
- 所有関連と継承関連はプロファイルナビゲータに表示されないため、クラス図で削除します。
- 削除しようとする関連がクラス図に表示されていない場合は、後述の「クラス図から削除した関連を再表示する」に従って、非表示の関連を再表示させてから削除します。
関連をクラス図から削除する
一部の関連をクラス図から削除して非表示にするには、次の手順で行います。
- クラス図から削除する関連を選択して、コンテキストメニューから [図から削除] を実行、もしくは、 delete キーを押下します。
関連の設定を変更する
所有関連のデータ数を変更したり、参照関連を双方向参照に変更したりするには、インスペクタを使って次の手順で行います。
- リボンから [表示] > [ペイン] > [インスペクタ] をクリックして、画面の右側にインスペクタを表示します。
- 対象の関連をクラス図もしくはプロファイルナビゲータで選択します。
- インスペクター上部のタブで [メタモデル] を選択します。
- 所有関連のデータ数を変更して子に追加できるモデルの数に制約を設けるには、[フィールド] グループにある [データ数] を変更します。
- 参照関連を参照元のモデルだけから編集できるようにするには、[関連クラス] グループにある [双方向参照か] チェックボックスのチェックを外します。
- 関連を保持するフィールド名をクラス図で確認するには、リボンから [ホーム] > [クラス図] > [ラベルの表示] トグルボタンを ON にします。
- 関連線に表示された ラベルを編集すると、フィールドの [表示名] と [フィールド名] が変更されます。
- 関連に対する設定項目は関連の種類によって異なります。
- 詳細については、リファレンス > プロファイルの設定項目とモデリングの変化 を参照してください。
関連にフィールドを追加する
参照関連と導出関連にフィールドを追加するには、インスペクタを使って行います。
-
エンティティに対する次の操作手順と同様です。
関連からフィールドを削除する
参照関連と導出関連からフィールドを削除するには、追加する場合と同様に、インスペクタを使って行います。
- エンティティに対する次の操作手順と同様です。
クラス図から削除した関連を再表示する
クラス図から削除した関連を再表示したり、クラス図以外で追加した関連を表示したりするには、クラス図から次の手順で行います。
- クラス図で関連を持つエンティティを選択して、コンテキストメニューから [非表示の関連を表示] を実行します。