web-dev-qa-db-ja.com

三元協会VS協会クラス

疑問に思っていたのですが、これらの2つのクラス図は、図Aで学生が学習プログラムを持っている必要がないという事実を除いて、同等ですか?
私の見方-たとえば、図Bの学習プログラムには多くの学生がいる可能性があり、それぞれに登録が作成されます。図Aは、ペア(学習プログラム、登録)ごとに1人の学生が存在することを示しています。これは、学習プログラムに多くの学生が存在し、それぞれに登録が存在するという考えを伝えることもできます。
これらのケースの違いは、図Aでは学生が単独で存在する可能性があるのに対し、図Bでは少なくとも1つの学習プログラム(およびその結果として登録)が必要な場合があります。
私のロジックはここで正しいですか?

A)

enter image description here

B)

enter image description here

2
erap129

あなたの仮定は正しいです。

UML 2.5仕様からの引用:

N個のmemberEndsを持つアソシエーションの場合、任意のN-1個のエンドを選択します。選択したN-1の端の分類子がoepのコンテキストになるように、もう一方の端を構成するプロパティをoepと呼びます。特定のインスタンスをコンテキストの終了に関連付けます。次に、これらの特定のインスタンスを参照するAssociationのリンクのコレクションは、oepでインスタンスのセットを識別します。 oepで表される値は、このセットから次のように計算されたコレクションです。セット内のすべてのインスタンスはコレクション内で発生し、それ以外は発生しません。このコレクションの基数はそのサイズです。 oepの多重度は、このカーディナリティーを制約します。

次の引用は、例にとって特に興味深いものです。

1(またはそれ以上)のn-aryアソシエーションの端の多重度が低いほど、他の端のすべての可能な値の組み合わせに対して1つのリンク(またはそれ以上)が存在する必要があります。

したがって、3項関連付けは次のビジネスルールを定義します。

  • 学習プログラムと学生のすべての組み合わせに対して、登録は1つだけです。
  • 学習プログラムと登録のすべての組み合わせに対して、学生は1人だけです。
  • 学生と登録のすべての組み合わせに対して、厳密に1つの学習プログラムがあります。

これらのビジネスルールはすべてダイアグラムBにも適用されます。ただし、ダイアグラムBは追加のルールを定義します。すべての生徒は少なくとも1つの学習プログラム(1 .. *)に関連付けられます。

1