例で説明されたUMLクラス図の関係

公開: 2012-03-01

クラス図はオブジェクト指向モデリングの主要な構成要素であるため、さまざまなクラス図の関係と、それらがソリューションにどのように影響するかを理解することが重要です。 それらを例とともに以下にリストしました。

コンテキストに基づいて論理的な関係を示すことにより、クラス図の作成を作成的に簡素化します。

クラス図を作成する>>

クラス図の関係

クラスは特定の方法で相互に関連しています。 特に、クラス図の関係には、さまざまなタイプの論理接続が含まれます。 以下は、UMLで可能な論理接続のタイプです。

  • 協会
  • 有向協会
  • 反射関係
  • 多重度
  • 集約
  • 構成
  • 継承/一般化
  • 実現
クラス図の関係(UML)
UMLクラス図の関係

協会

アソシエーション-クラス図の関係で最も一般的なものの1つ
協会

は、クラス間のほぼすべての論理的な接続または関係を含む広い用語です。 たとえば、乗客と航空会社は上記のようにリンクされている場合があります。

有向協会

UMLクラス図における有向関連関係
有向協会

矢印の付いた線で表される方向関係を指します。 矢印は、コンテナを含む方向性のあるフローを示しています。

反射関係

UMLクラス図における反射関係
反射関係

これは、クラスに複数の機能または責任がある場合に発生します。 たとえば、空港で働くスタッフは、パイロット、航空エンジニア、チケットディスパッチャー、警備員、またはメンテナンスクルーのメンバーである可能性があります。 メンテナンスクルーのメンバーが航空エンジニアによって管理されている場合、同じクラスの2つのインスタンスで関係によって管理されている可能性があります。

多重度

UMLクラス図の多重度関係
多重度

別のクラスとの関係でクラスのカーディナリティーが示されているときのアクティブな論理アソシエーションです。 たとえば、1つのフリートに複数の飛行機が含まれる場合がありますが、1つの商用飛行機には0人から多数の乗客が含まれる場合があります。 図の0..*という表記は、「ゼロから多数」を意味します。

集約

集約関係
集約

1つのクラスが集合として集約または構築された結果として、特定のクラスが形成されることを指します。 たとえば、クラス「ライブラリ」は、他の資料の中でも特に1冊以上の本で構成されています。 集約では、含まれるクラスはコンテナのライフサイクルに強く依存しません。 同じ例では、図書館が解散しても本はそのまま残ります。 図に集計を表示するには、親クラスから子クラスに、親クラスの近くにひし形の線を引きます。

図に集計を表示するには、親クラスから子クラスに、親クラスの近くにひし形の線を引きます。

構成

クラス図の構成関係
構成

構成関係は、集約関係と非常によく似ています。 唯一の違いは、含まれているクラスのコンテナクラスのライフサイクルへの依存を強調するという主な目的です。 つまり、コンテナクラスが破棄されると、含まれているクラスは消去されます。 たとえば、ショルダーバッグが破壊されると、ショルダーバッグのサイドポケットもなくなります。

UMLダイアグラムで構成の関係を示すには、2つのクラスを結ぶ方向線を使用します。コンテナクラスに隣接する塗りつぶされたひし形と、含まれるクラスへの方向矢印を使用します。

継承/一般化

UMLクラス図の継承関係
継承

親クラスと同じ機能を想定することにより、関連する1つのクラスが別のクラスの子であるタイプの関係を指します。 つまり、子クラスは親クラスの特定のタイプです。 UMLダイアグラムで継承を示すために、子クラスから親クラスへの実線は、塗りつぶされていない矢印を使用して描画されます。

実現

UMLクラス図での実現関係
実現

あるクラスで別のクラスによって定義された機能の実装を示します。 UMLでの関係を示すために、関数を実装するクラスの機能を定義するクラスから、塗りつぶされていない実線の矢印の付いた破線が描画されます。 この例では、プリンター設定インターフェイスを使用して設定された印刷設定がプリンターによって実装されています。

Createlyを使用したクラス図の描画

クラスダイアグラム作成ツールを構築するとき、私たちは人間関係について多くのことを考えてきました。 コネクタはコンテキストに合わせて調整され、クラスを接続するときに最も論理的な関係のみを表示します。 これにより、間違いを犯す可能性が大幅に減少しました。

クラス図を作成する>>

ゼロから描画するのは面倒です。 専門的に設計されたクラス図を使用して、すぐに開始できます。 クラス図の例を参照して、システムに密接に関連しているものを選択してください。

クラス図とは何ですか?

クラス図は、オブジェクト指向モデリングの主要な構成要素です。 これらは、システム内のさまざまなオブジェクト、それらの属性、それらの操作、およびそれらの間の関係を示すために使用されます。

次の図は、単純なクラスの例です。

単純なクラス図
属性と操作を含む単純なクラス図

この例では、「ローン口座」と呼ばれるクラスが示されています。 クラス図のクラスは、次の3つに分割されたボックスで表されます。

  1. 一番上のパーティションには、クラスの名前が含まれています。
  2. 中央の部分には、クラスの属性が含まれています。
  3. 下のパーティションには、クラスに関連付けられている可能な操作が表示されます。

この例は、クラスが特定のオブジェクトのすべての関連データを非常に体系的かつ明確な方法でカプセル化する方法を示しています。 クラス図は、上記と同様のクラスのコレクションです。

クラス図の関係について他に質問がありますか?

クラス図間のさまざまな関係を明確に説明できたと思います。 それらはあなたが思うほど複雑ではなく、いくつかの練習で習得することができます。 また、ツールを使用することで、クラス図を作成するのに問題はありません。 他にご不明な点がございましたら、コメントセクションでお気軽にお問い合わせください。 また、詳細については、例付きのUMLダイアグラムタイプに関するこのガイドを確認してください。

参照:

1. UMLの基本:クラス図DonaldBellによるUML2の構造図の概要

2.ウィキペディアのWebサイトで公開されているクラス図

3.Webサイトdeveloper.comで公開されているUMLクラス図パート1

4. Visual Caseツールのクラス図–VisualCaseのWebサイトで公開されているUMLチュートリアル

5.SybaseWebサイトで公開されているアソシエーション