これらの質問に答えるには、なぜこのクラス図が描かれているかを知ることが重要です。著者だけが知っている、しかし多分それはgliffyの能力のデモンストレーションですか?そうでなければ、このモデルのクラスは、JavaやC#のようなオブジェクト指向言語で書かれたソースコードのクラスに対応していて、これらのクラス間の関係についての洞察を与えることを目的としています。
カスタマーオーダーとカスタマークレジットカードは、なぜ顧客アドレスのような集約ではなく関連していますか?
明らかに、著者は、これらの関係を「部分的な」関係とみなしません。たぶんお客様は、ソースコード内の注文書またはクレジットカードへの参照を持っていない可能性があります。たぶん、住所情報は顧客クラスの責任に属しますが、注文およびクレジットカード情報は責任を負いません。
注文なしでItemOrderが存在しないとした場合、なぜOrder-ItemOrderは合成されないのですか?
おそらく、作者はUMLのサブセットのみを使用し、慣例によって構成を使用しないことがあります。おそらく、著者は、この図の目的のために集約と構成の違いを伝えることは重要ではないと考えているかもしれません。
なぜItemOrder-Itemが集計ではないのですか?
明らかに、著者は、この関係を部分的な関係とはみなしません。多分、作者は、ある特定のプログラミング言語構造を表現するために集約タイプの関係を予約しているかもしれません。この場合、ソースコードでは使用されません。たぶん、作者は、あるインタフェースを他のクラスに集約することはできないとの意見があります。
ところで、ItemOrderとShoppingCartの間の集計は明らかに間違っています。私はダイヤモンドが関係の反対側にあるべきだと思う。