ステップ2: Javaクラスのモデル化

Previous topic
前へ
Next topic
次へ

このステップでは、クラス図でJavaクラス、インタフェースおよび関連をモデル化する際に必要な手順を説明します。

Javaクラスをモデル化するには、次のようにします。

  1. コンポーネント・パレットで、ドロップダウン・リストから「Java」を選択します。
  2. クラス図でインタフェースをモデル化します。コンポーネント・パレットで「Interface」アイコン(Interface icon)をクリックして選択し、次にクラス図上をクリックします。ダイアグラム要素を作成すると、デフォルトのサイズで表示されます。このサイズを変更するには、オブジェクトをクリックし、ハンドルの1つをドラッグします。別の位置に移動するには、選択された要素をクリックし、別の位置にドラッグします。
  3. インタフェースの名前にOrderObservableと入力し、[Enter]を押します。

    UMLダイアグラムでは、クラスなどのダイアグラム要素に省略記号(...)が表示されていることがあります。これは、要素のサイズが小さいために表示されていない情報があることを示します。表示されていない情報を見るには、その要素のサイズを大きくします。

  4. 次は、このインタフェースに対する操作を作成します。インタフェースの操作コンパートメント(2番目の線の下)にカーソルを置き、クリックします。ハイライト表示されているところでobserveOrderと入力し、[Enter]を押します。
  5. 「Java Class」アイコン(Java Class icon)をクリックし、クラス図上をクリックしてJavaクラスをダイアグラム上にモデル化します。クラス名にOrderと入力し、属性コンパートメント(一番上の線の下)に属性orderRefおよびcustomerContactを、操作コンパートメント(2番目の線の下)に操作doInvoiceおよびdoShipを追加します。
  6. OrderOrderObservableの間の実現をモデル化します。「Realization」アイコン(Realization icon)をクリックし、「Order」クラスをクリックしてから「OrderObservable」インタフェースをクリックします。
  7. 前のクラスをモデル化したときと同じ方法で、JavaクラスMyOrderおよび操作overrideMethodをモデル化します。
    クラスをダブルクリックし、「属性」タブに属性を、「操作」タブに操作を入力しても、モデル化されたJavaクラスに属性および操作を追加できます。慣れるためにこの方法を試し、ダイアログが表示されたら、このダイアログで入力、変更できるその他のプロパティを見てください。
  8. OrderMyOrderの間の汎化をモデル化します。「Generalization」アイコン(Generalization icon)をクリックし、MyOrderをクリックしてからOrderをクリックします。
  9. ナビゲータで「OrderEntry」プロジェクトを右クリックし、「新規クラス」を選択します。Javaクラス名にOrderEntrySystem、パッケージ名にorderEntryと入力します。「デフォルトのコンストラクタを生成」および「mainメソッドの生成」が選択されていないことを確認します。

    「OK」をクリックすると、ナビゲータにJavaクラスが表示され、クラスのテキストがエディタ・ウィンドウに表示されます。コード・エディタでクラスを編集し、Order型のフィールドcurrentOrderおよび戻り型がOrderのメソッドgetCurrentOrderを追加します。

  10. 次に、このJavaクラスをクラス図に追加します。ドキュメント・バーの「OEClassDiagram」ボタンをクリックしてダイアグラムを表示し、ナビゲータでOrderEntrySystemをクリックしてダイアグラム上にドラッグします。
  11. OrderEntrySystemOrderに関連付けます。「Directed Association 1 to 1」アイコン(Directed Association 1 to 1 icon)をクリックし、OrderEntrySystemをクリックしてからOrderをクリックします。
  12. JavaインタフェースOrderListenerをモデル化し、このインタフェースに属性orderChangedを作成します。
  13. OrderOrderListenerの間の弱い集約関連をモデル化します。「Directed Association 1 to 1」アイコン(Directed Association 1 to 1 icon)をクリックし、OrderをクリックしてからOrderListenerをクリックします。関連をハイライト表示し、[Enter]を押して「プロパティ」ダイアログを表示します。「関連の終端」タブを選択し、「集約」ドロップダウン・ボックスから「集約(弱い)」を選択します。次に、「OK」をクリックします。これで、関連元の終端が弱い集約に定義されました。

    ポップアップ・メニューから「プロパティ」を選択しても、ダイアグラム要素の「プロパティ」ダイアログを表示できます。

  14. 操作OrderEntryを持つJavaインタフェースOrderFactoryをモデル化します。
  15. JavaクラスHomeOrderFactoryおよびBusinessOrderFactoryをモデル化します。
  16. HomeOrderFactoryOrderFactoryの間、およびBusinessOrderFactoryOrderFactoryの間の実現をモデル化します。
  17. OrderEntrySystemOrderFactoryの間の関連をモデル化します。
  18. JavaクラスClearedPackedShippedおよびInvoicedをモデル化します。
  19. クラスOrderStateをモデル化し、ClearedPackedShippedおよびInvoicedOrderStateの内部クラスにします。ClearedOrderStateの内部クラスにするには、Clearedをダブルクリックし、「プロパティ」ダイアログを表示します。「ネームスペース」フィールドの隣のSelectボタンをクリックして、「要素の選択」ダイアログを表示します。

    親クラスである「OrderState」が表示されるまで「モデル要素」ノードを開き、「OrderState」を選択します。

    これで、ClearedのネームスペースがorderEntry::OrderStateと表示され、ClearedOrderStateの内部クラス・コンパートメントに表示されます。

    PackedShippedおよびInvoicedについてもこの操作を繰り返します。

  20. 「Directed Strong Aggregation」アイコン(Directed Strong Association)をクリックし、OrderをクリックしてからOrderStateをクリックして、強い関連をモデル化します。ダイアグラムで関連の終端OrderStateにある*をクリックし、1に変更します。
  21. 「Dependency」アイコン(Dependency icon)を使用して、OrderFactoryMyOrderの間の依存性をモデル化します。
  22. OrderFactoryMyOrderを作成することを示すノートを作成し、依存性に添付します。ノートを添付するには、「Attachment」アイコン(Attach icon)をクリックし、ノート、依存性の順にクリックします。

必要に応じて、クラス図にさらに時間をかけて、属性および操作を追加できます。たとえば、操作「isCleared」をJavaクラス「Order」に追加できます。また、クラス図のデフォルトの「void」を編集して、戻り型を「boolean」に変更できます。

これでクラス図が作成でき、次の「ステップ3: クラス・モデルからのJavaソース・コードの生成」へ進む準備ができました。ここでは、作成したクラス図からJavaソース・コードを生成する方法を説明します。