ペット、猫、尾、飼い主というオブジェクトのクラス間の相違点と類似点を考えてみましょう。

次のような関係があります。

  • 飼い主はペットを飼っています、ペットは飼い主を紹介しています(協会)
  • 尾は犬と猫の両方の一部です(集合/構成)
  • 猫はペットの一種です(継承/一般化)

次の図は、関連、集約、および構成という3種類の関連コネクタを示しています。このUMLガイドでそれらを詳しく説明します。

UMLアソシエーション

UMLの集約

UMLの構成

下の図は一般化を示しています。これについては、このUMLガイドで後で説明します。

UMLの一般化

無料のUMLツールでUMLを学ぶ

あなたはより早く、より簡単にそしてより早くUMLを学ぶための無料のUMLツールを探していますか?Visual Paradigm Community Editionは、すべてのUML図タイプをサポートするUMLソフトウェアです。それは国際的な賞を受賞したUMLモデラーですが、それでも使いやすく直感的で完全に無料です。

協会

モデル内の2つのクラスが互いに通信する必要がある場合は、それらの間にリンクがなければならず、それは関連(コネクタ)で表すことができます。関連は、ナビゲーションの方向を示す矢印付きのこれらのクラス間の線で表すことができます。矢印が両側にある場合、関連付けは双方向の関連付けを持ちます。

連想を表す行に多重度の装飾を追加することによって、連想の多重度を示すことができます。この例は、生徒に1人以上の講師がいることを示しています。

一人の生徒が複数の教師と付き合うことができます。

関連多重度の例1

この例は、すべての講師が1人以上の生徒を持つことを示しています。

関連多重度の例2

また、ロール名を使用して、関連付けにおけるオブジェクトの動作(つまり、オブジェクトのロール)を示すこともできます。

関連多重度の例3

アソシエーションとアグリゲーションとコンポジション

「関連、集約、構成の違いは何ですか」という質問が最近頻繁に寄せられています。実際には、AggregationCompositionは関連のサブセットであり、それらは特定の関連の場合です。あるクラスの集約オブジェクトと合成オブジェクトの両方で、別のクラスのオブジェクトを「所有」します。しかし微妙な違いがあります。

  • 集約は、子が親から独立して存在できる関係を意味します。例:クラス(親)と学生(子供)クラスを削除しても、生徒はまだ存在します。
  • 構成は、子が親から独立して存在できない関係を意味します。例:家(親)と部屋(子)部屋は家とは別に存在しません。

構成例:

クラスAとクラスBの部分的な関係に加えて、両者の間に強いライフサイクル依存性がある場合は、より具体的にコンポジションリンクを使用する必要があります。つまり、クラスAが削除されるとクラスBも削除されます。結果として

UMLの構成例

集計の例

これは、ことに注意することが重要です集約リンクは、クラスA、クラスBを所有しているいずれかの方法で状態もしない親子関係があること(親が削除されたすべての子の結果として削除されている)は、2つの間。実のところ、まったく反対です。集約リンクは通常、クラスAインスタンスがクラスBインスタンスの排他的コンテナではないという点を強調するために使用されます。実際、同じクラスBインスタンスには別のコンテナがあります。

UML集計の例

まとめると -

まとめると、関連はクラス上で別のクラスによって提供される機能を使用したときを表すために使用される非常に一般的な用語です。ある親クラスオブジェクトが別の子クラスオブジェクトを所有していて、その子クラスオブジェクトが親クラスオブジェクトなしでは意味を成して存在できない場合、それはコンポジションと呼ばれます。可能であれば、それは集約と呼ばれます。

汎化と特殊化

汎化は、類似したクラスのオブジェクトを単一のより一般的なクラスに結合するためのメカニズムです。汎化は、エンティティのセット間の共通点を識別します。共通性は、属性、振る舞い、またはその両方の場合があります。つまり、スーパークラスはサブクラスと共有される可能性がある最も一般的な属性、操作、および関係を持ちます。サブクラスはより特殊な属性と操作を持つことができます。

特殊化は一般化の逆のプロセスで、既存のクラスから新しいサブクラスを作成します。

たとえば、銀行口座には、普通預金口座とクレジットカード口座の2種類があります。普通預金口座とクレジットカード口座は、銀行口座から口座番号、口座残高などの一般的な/一般化された特性を継承し、また未払いの支払いなどのような独自の専門特性も持っています。

UMLの一般化と特化

一般化と継承

一般化とは、UMLで共通プロパティを基本クラスに抽象化することを表すために使用される用語です。UMLのダイアグラムの汎化協会としても知られている継承。我々がプログラミング言語で一般化を実装するとき、それはしばしば継承と呼ばれます。一般化と継承は基本的に同じで、用語はそれが使用されている文脈によって異なるだけです。

UMLを学びましょう。UMLを描きます。

UMLをより早く、より効果的に学ぶのに役立つUMLツールが必要ですか。Visual Paradigm Community Editionは、すべてのUML図タイプをサポートする無料のUMLソフトウェアです。そのUMLモデラーは受賞歴があり、使いやすく直感的です。

関連リンク

視覚的パラダイムオンライン

コメント

コメントフォーム
記事の評価
  • リセット
  • リセット