クラス図で矢印は何を意味していますか?


8

UMLクラス図の矢印の意味、特にこの複合図の意味を理解するために助けが必要です。単純な線(クラスから別の線)と矢印(継承矢印ではなく、黒い線を指す)の違いは何ですか?

UMLクラス図

回答:


13

画像についてより詳しく説明するために、画像に番号を付けました。うまくいけば、これは私の文章をより明確にするのに役立ちます。

注釈付きクラス図

ここで実際に使用されている行には、関連(1)、構成(4-> 2)、継承(3)の3つのタイプがあります。

2つのクラスを結ぶ実線は、間Clientや間など、BookComponent単なる関連関係です。これは多くの場合、クラスが知っている(おそらくメソッドの引数として受け取るのと同じように)か、別のクラス(たとえばインスタンス変数のように)を持っていることを示すために使用されます。装飾がない場合、または両端に矢印がある場合、関係は双方向です。2つのクラスは関係を共有し、互いを認識しています。図の1行目など、場合によっては、関係に方向性があります。Clientクラスは知っているBookComponentが、反対はと本当ではないBookComponent持っているかを知りませんClient。多重度やクラスの役割など、関連関係に表示できる他の注釈もあることに注意してください。

次の行はに接続BookCompositeする行ですBookComponent。これはClient、との間の境界線によく似た関連付けBookComponentです。ただし、2と4のラベルを付けたポイントの注釈は、関係に関する追加情報を追加します。ポイント1の線、ポイント2の矢印は同じことを意味します。インスタンスBookCompositeは認識していBookComponentますが、逆はありません(方向関係)。ポイント4の注釈は、集約関係を示します- BookCompositeのコレクションですBookComponent。凝集があることを示しているのでしかし、それは、強力な関係(強い組成の関係のように)ではありませんBookComponent外の場所で示すことができますBookComposite(あなたが必要としないBookComposite持っていますBookComponent)。

注意すべき点は、方向の関連付けを示すために使用される矢印は、通常、この画像に示すように黒一色の矢印ではないことです。私は通常v、画像に表示されているものよりもに近い白抜きの矢印として表示されます。

最後に、3というラベルの付いた点は、質問で述べた継承関係です。

UMLモデリングの詳細に興味がある場合は、UML Distilledの購入をお勧めします。Martin Fowlerによる優れた本であり、クラス、シーケンス、オブジェクト、パッケージ、デプロイメント、ユースケース、ステートマシン、アクティビティ、コミュニケーション、複合構造、コンポーネント、コラボレーション、相互作用の概要、およびタイミング図をカバーしています。


@ThomasOwensクライアントがブックコンポーネントについて知っているとはどういう意味ですか?AはいつBを知っていますか?矢印をどの方向に描画すればよいのか本当に理解できません...
user1534664

@ user1534664 AがBについて知っている場合、それはAが何らかの方法でBのメソッドを呼び出すことができることを意味します。通常、これはBがAのプロパティであるか、BがBのメソッドに引数として渡されることを意味します。矢印の方向はインターフェイスの方向を示します呼び出すことができます。AからBを指す矢印は、AがBのインターフェースを使用できることを意味します(AはBについて知っています)。
Thomas Owens

3

あなたの写真はいくつかの異なる関係を示しています。

ClientクラスとBookComponentクラス間の関係は、包含関係です。つまり、クライアントにはBookComponentのインスタンスが含まれています。

BookCompositeとBookComponentには2つの関係があり、開いた矢印は汎化関係です(つまり、BookComponentはBookCompositeを一般化します。または、BookCompositeはBookComponentを特殊化/派生します)。テールにダイヤモンドが付いたクローズドアロヘッドは集合体です。つまり、BookCompositeにはBookComponentのコレクションが含まれています。ダイヤモンドが満たされていないという事実も重要です。これは、含まれているBookComponentsのライフサイクルが、含まれているBookCompositeのライフサイクルに関連付けられていないことを意味します。Aggregationの代わりに入力された場合は、Compositionであり、BookCompositeが破棄された場合は、BookComponentsも同様です

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.