2016-03-19 8 views
1

UMLの関連付けを説明する例が1つあります。集約または合成または単純な関連付け?

人は会社で働く。会社には複数のオフィスがあります。

しかし、Person、Company、Officeクラスの関係を理解できません。私の理解では、次のとおりです。

  1. 会社は、従業員として多くの人で構成されていますが、これらのクラスは、それが0とシンプルな関連があるように、独立して存在する.. * Personクラス末端上の多重度は
  2. 会社は、多くのオフィスおよびそれらのオフィスを構えています会社がない場合は存在しないので、会社を親クラスとし、構成クラスは分岐クラスの終わりに0。*多重度を持つ。

しかし、2番目のポイントはわかりません。私が間違っていれば私を修正してください。

ありがとうございます。

+0

問題のドメインまたはソリューションドメインをモデリングしていますか?それは非常に重要です。 –

+0

どのように重要ですか?そして、私は与えられたステートメントに対する解決策を実装しています。 – RashiR

+0

問題のドメインモデルは現実の世界を表しています。現実世界では、会社が廃業すると、オフィスは存在しなくなります。ソリューションドメインをモデリングしているので、特定のアプリケーションに対して特定のショートカットを自由に使用できます。ただし、要件が「変更」されていることを後悔する可能性があります。 (問題のドメインは実際には変更されませんが、アプリケーションの許可されたショートカットのみです。問題のあるドメインの方が現実的であれば、後でもっと幸せになれます) –

答えて

1

なぜこのような状況で合成または集約を使用するのですか? UMLの仕様は、集約の意味をモデラーに任せます。それはあなたの聴衆に何を意味するのですか?そして、このような状況では構成の意味が強すぎるかもしれません。したがって、なぜここでそれを使用するのですか?私は単純な関連付けを使用することをお勧めします。

私があなただったら、私は問題のドメインにもっと真面目に滞在します。私が知っている世界では、会社が廃業したときに、オフィスは存在しなくなります。むしろ、会社は、限られた期間、いくつかの数のオフィスを占有しています。会社が廃業した場合、そのオフィスは他の会社に売却またはリースされます。オフィスは地面に焼かれていません。

アプリケーションで問題のドメインに該当しない場合は、顧客がそのアプリケーションの要件を変更すると、実行するショートカットが無効になります。問題のドメインは実際にはあまり変わらず、あなたが取ることが許可されているショートカットだけです。問題のドメインと整列していない方法で要件を満たすショートカットを使用すると、アプリケーションを調整するコストがかかります。あなたの顧客は不幸になり、あなたは残業を余儀なくされます。あなたと誰もがトラブルを救ってください!

1

ジムの答えは正しいが、追加情報を追加したい。最初のケースで集約

  • メモリ管理
  • データベース管理

ための2つの主な用途がありますが、それは長いオブジェクトが生きる方法のヒントを提供します。これはメモリ使用量に直接関連しています。ターゲット言語が(最近の言語のように)ガベージコレクタを使用する言語の場合は、このモデル情報を単純に無視できます。

2番目のケースでは、部分的にメモリの問題です。データベース内の複合アグリゲーションは、アグリゲートされた要素をアグリゲーション要素とともに削除する必要があることを示します。これはメモリではなく、ほとんどの場合セキュリティ上の問題です。だからここで二度考えなければなりません。

しかし、共有集約はすべてのケースで非常に難解な意味を持ちます。