現在、UMLの三項関連を理解するのに問題があります。バイナリのものを取得しますが、多重度がターナリでどのように機能するかわかりません。私は大学から取得した演習を行っています。現在の演習は次のようになります。
1つの部門が多くの製品を販売する場合がありますが、1つの市場にのみ販売されます。市場では、1つの製品を1つの部門でのみ販売できます。
多重度を理解しようとしていない2つのクラスのペアについてどのように考えるかについて、さまざまな情報源を読んだことがありますが、私の脳はそれを理解していません。ケノービをオーバーフローさせるのを手伝ってください、あなたは私の唯一の希望です。
三元関連の多重度の指定にはあいまいさがあります。も参照してください この論文
しかし、私はそれを次のように理解しています:
多重度は、リンクされたインスタンスの特定のタプルについて、インスタンスがこの関連付けに存在する可能性がある回数について何かを示します。
例として、次の(従来の)ファミリを考えてみましょう
私はそれを次のように理解します
どの家族にも、父親が1人、母親が1人、子供が0人以上いる必要があります。
それをあなたのケースに当てはめると、私は次のようなことになります。
特定のオファリングには、1つの市場、1つの部門、および1つ以上の製品が存在する必要があります
それは多かれ少なかれあなたの制約のすべてを満たすようです
防水性はないと思いますが、すでに述べたように、UMLには両端だけで防水設計を行うのに十分なツールがありません。したがって、適切な測定のために、制約もUML制約としてモデル化する必要があります。
免責事項:三元協会は学術的な議論には本当に適していますが、おそらく理解が非常に難しいため、(IT)業界では実際には使用されていません。
この不特定の三元関連は、あなたがどこに関係があるかを伝えるだけです
Market
コントロールDepartment
-Product
、Department
コントロールMarket
-Product
およびProduct
はDepartment
-Market
を制御します。単一のクラスが他の2つをどのように制御するかについての記述はありません。
UML仕様では、三項演算子を詳細に定義していません。したがって、その要素を使用することは、自己責任のようです。 OMGを使用したが、それ以上に定義していないことを非難することができます
すべてのアソシエーションは、各アソシエーションメンバーの実線がダイアモンドをエンドのタイプである分類子に接続するダイアモンド(線上のターミネータよりも大きい)として描画できます。 3つ以上の端を持つ関連付けは、この方法でのみ描画できます。
とpの写真の単一の例。 202。
単純な関連付けクラス
Product
がDepartment
とMarket
の間にあることを示します。ここで多重度は1
は、Market
に対してDepartment
が1つしかないことを示します。それはあなたの要件がどのように聞こえるかということです。
N.B. 「Product
なしでMarket
があるか」のように、要件に関してヘアを分割することはあまり意味がありません。これらは、モデルで修正する前にドメインスペシャリストと話し合う必要がある詳細です。
Geert Bellekensの回答のモデルは正しいですが、彼の説明は紛らわしいです。多重度(カーディナリティ制約)を伴う3値関連「提供」は、ステートメントでは説明できません
特定のオファリングには、1つの市場、1つの部門、および1つ以上の製品が存在する必要があります。
むしろそれを述べることによって
- 部門と製品の組み合わせは、正確に1つの市場にリンクされています
- 市場と製品の組み合わせは、正確に1つの部門にリンクされています
3項以上の関連は、表記で所有端が逆になっているISO標準に準拠してモデル化する必要があります。したがって、バイナリアソシエーションの場合は、エンドを所有するという通常の意味を使用します。
インテリジェントツールは、3項以上の関連付けに遭遇した場合、解析モードを切り替える必要があります。
N項群を多くのバイナリ関連に分割できることが証明されているため、通常、これらのN項群は避けます。