メインコンテンツまでスキップ

モデルの構造定義

概要

メタモデルを定義するときに、まず最初に行うのがモデルの構造定義です。 Next Design では、モデルの構造をUMLクラス図の形式で定義できます。 設計項目を表すエンティティやインタラクションとそれらの親子関係を、クラス図を使ってメタモデルに定義することで、モデルの構造を定義できます。

エンティティ とは、モデルの雛形です。オブジェクト指向設計に当てはめると、エンティティがクラスで、モデルがインスタンスに相当します。 インタラクション とは、モデル間の相互作用(振る舞い)を表すモデルの雛形です。UML のシーケンス図をインタラクションで表現できます。

以下では、クラス図でモデルの構造を定義する手順について、次の順で説明します。

  • 構造定義のためのクラス図を準備する
  • エンティティを追加する
  • エンティティを削除する
  • エンティティごとの設定を変更する
  • エンティティの階層構造を定義する
  • インタラクションを追加・削除する
  • パッケージごとに分類して定義する

クラス図によるモデルの構造定義のイメージ

クラス図によるモデルの構造定義


構造定義のためのクラス図を準備する

メタモデル編集画面に切り替える

メタモデルの定義を開始するには、まず最初にメタモデル編集画面に切り替えます。手順は次の通りです。

メタモデル編集画面に切り替え

操作手順
  1. ナビゲータ上部のセレクタで [プロファイルナビゲータ] に切り替えます。

メタモデルにクラス図を追加する

メタモデルにクラス図を追加するには、プロファイルナビゲータを使って次の手順で行います。

メタモデルにクラス図を追加

操作手順
  1. プロファイルナビゲータで先頭に表示されるルートノード、もしくは、プロファイル中に作成済みのパッケージを右クリックし、コンテキストメニューの [クラス図の追加] を実行します。
  2. 追加されたクラス図の名前を入力すると、追加されたクラス図が画面中央に表示され編集可能になります。
tip
  • メタモデルには複数のクラス図を作成できます。 モデルの種類ごとにクラス図を分けて定義したり、全体図と詳細図のように一部を切り出して詳細化したクラス図を定義したりできます。

エンティティを追加する

エンティティを追加するには、次の通り複数の方法があります。

  • 新しいエンティティをメタモデルに追加する
  • 既存のエンティティをクラス図に追加する(クラス図にないエンティティを再表示する)
  • モデリングしながら新しいエンティティを追加する(モデル編集画面でメタモデルを同時に変更する)

新しいエンティティをメタモデルに追加する

クラス図を使って新しいエンティティをメタモデルに追加するには、クラスツールボックスから [エンティティ] をドラッグ&ドロップして追加して、名前を入力します。

新しいエンティティをメタモデルに追加

既存のエンティティをクラス図に追加する

メタモデルにすでに定義されているエンティティをクラス図に追加して表示させるには、次の手順で行います。

既存のエンティティをクラス図に追加

操作手順
  1. プロファイルナビゲータ上に表示されている定義済みのエンティティを、クラス図にドラッグ&ドロップして追加します。

モデリングしながら新しいエンティティを追加する

モデル編集画面でモデリングをしながら、メタモデルに未定義のエンティティを逐次追加して、モデリングを進めることもできます。手順は次の通りです。

モデリングしながら新しいエンティティを追加

操作手順
  1. モデルナビゲータで親となるモデルを右クリックし、コンテキストメニューから [モデルの追加] > [新しいエンティティ] を実行します。
  2. [新しいエンティティ] ダイアログで必要事項を入力して、[OK] ボタンを押下します。
  3. 上記操作により、新しいエンティティがメタモデルに追加されると同時に、エンティティの表示名と同じ名前のモデルがモデルナビゲータ上にも追加されます。
note
  • メタモデルに追加された新しいエンティティはプロファイルナビゲータ上には表示されますが、クラス図には自動表示されません。必要に応じて、前述の「既存のエンティティをクラス図に追加する」に従って手動でクラス図に追加してください。

エンティティの階層構造を定義する

モデルの階層構造をメタモデルで規定するには、親子関係となるエンティティ間に所有関連を結びます。手順は次の通りです。

エンティティの階層構造を定義

操作手順
  1. クラス図で親となるエンティティにポインタを移動し、その四方向に表示される [▲] アイコンをドラッグして、子となるエンティティにドロップします。
  2. ドロップすると、関連の種類の選択肢がポップアップ表示されますので、それらの中から [所有] をクリックして選択します。
  3. これにより、エンティティ間の親子関係が定義され、モデリング時に親エンティティの構成要素として子エンティティを追加できるようになります。
info
  • 参照先として参照元と同じエンティティを指定すれば、入れ子構造を持つエンティティを定義できます。

エンティティごとの設定を変更する

エンティティのアイコンを変更したり、エンティティの扱いを抽象クラスに変更したりするには、対象のエンティティをクラス図もしくはプロファイルナビゲータで選択してから、インスペクタを使って変更します。

エンティティの設定を変更

リファレンス
カスタムアイコンの使用

エンティティを削除する

エンティティを削除するには、次の通り複数の方法があります。

  • エンティティをメタモデルから削除する
  • エンティティをクラス図から削除する(メタモデルから削除せずクラス図で非表示にする)

エンティティをメタモデルから削除する

クラス図を使ってエンティティをメタモデルから削除するには、次の手順で行います。

メタモデルから削除

操作手順
  1. クラス図で対象のエンティティを選択して、コンテキストメニューから [モデルから削除] を実行します。
  2. そのエンティティを参照しているモデルや関連している他のエンティティが存在する場合、警告メッセージが表示されます。 それらのモデルや関連も削除してよい場合は [一括で削除] を押下して進めます。
  3. これにより、対象のエンティティがクラス図から削除されると同時にメタモデルからも削除され、プロファイルナビゲータ上からも対象エンティティが削除されます。
注意
  • 対象のエンティティを選択して delete キーを押下した場合は、コンテキストメニューの [図から削除] と同様、そのクラス図から削除されるだけで、メタモデルからは削除されず、プロファイルナビゲータ上にも残ります。

次の手順でもエンティティをメタモデルから削除できます。

その他の操作手順
  1. プロファイルナビゲータで対象のエンティティを選択して、コンテキストメニューから [削除] を実行、もしくは、 delete キーを押下します。

エンティティをクラス図から削除する

エンティティをクラス図から削除して非表示とするには、次の手順で行います。

クラス図から削除

操作手順
  1. クラス図で対象エンティティを選択して、コンテキストメニューから [図から削除] を実行、もしくは、 delete キーを押下します。
  2. これにより、クラス図からは削除されますが、メタモデルからは削除されず、プロファイルナビゲータ上にも対象エンティティが残ります。 クラス図に再表示するには、前述の「既存のエンティティをクラス図に追加する」の手順に従って、手動でクラス図に追加します。

インタラクションを追加・削除する

新しいインタラクションをメタモデルに追加するには、エンティティの追加と同様に、クラスツールボックスから [インタラクション] をドラッグ&ドロップして追加し、名前を入力します。

参照
  • エンティティの追加については、前述の「エンティティを追加する」を参照してください。

インタラクションをメタモデルから削除するには、エンティティの削除と同様に、そのインタラクションを削除します。

参照
  • エンティティの削除については、前述の「エンティティを削除する」を参照してください。

パッケージごとに分類して定義する

メタモデルの定義をモデルの種類ごとに分類したり、設計プロセスに従って分類したりするには、メタモデルにパッケージを追加してメタモデルの構成要素を分類します。手順は次の通りです。

パッケージごとに分類して定義

操作手順
  1. プロファイルナビゲータで先頭に表示されるルートノード、もしくは、プロファイル中に作成済みのパッケージを右クリックし、コンテキストメニューの [追加] > [パッケージ] を実行します。
  2. 追加されたパッケージのコンテキストメニューから [名前の変更] を実行、もしくは、 f2 キーを押下して、パッケージの名前を入力します。
  3. パッケージを追加した後、プロファイルナビゲータ上で既存の構成要素をパッケージ内にドラッグ&ドロップして移動します。