2016-03-30 9 views
1

クラス図を設計する際に、カーディナリティ/多重度について混乱します。 私の主な混乱は、1 --- *の関係を表すときです。乗客と座席のクラスの場合には、乗客は1つの座席に割り当てられ、1つの座席に同時に座席を割り当てることができるが、その存在期間中に多くの乗客に割り当てることができる。OOAD多重度またはカーディナリティの明確化

座席--->乗客は1-1または1- *になるはずですか?

答えて

1

はのは、まとめてみましょう:

  • 時間内の1つの正確な瞬間:
    • Passengerは正確に一つのSeat(1)に割り当てられます。未解決の質問:Passengerは既に割り当て前に存在しますか(つまり1か0..1)?
    • 一生かけて(そう0..1)
  • をそれぞれSeat一つはPassengerが割り当てられていることができますが、それを空のまま可能性があります
    • Passengerは(多くの議席への飛行ごとに1つずつ割り当てられていることができます)
    • Seatには、多くの場合、Passengerが割り当てられている可能性があります。

結論:SeatPassengerとの関係が*-*である(多くの多くの)

+0

ありがとうCHristopher。私たちはいつそれをある期間または一度に検討する必要がありますか?それは私が彼らにあなたがある期間またはある時点で探していることを尋ねる必要があるように顧客に質問ですか?または、常に一定の期間にわたりすべてのデザインを検討する必要があるのでしょうか? – avatar

+0

お客様のニーズに応じて異なります。だからあなたは明確にするのに役立つ質問をする必要があります。さまざまな角度で質問をするために暴力を振りかざしてはいけません。たとえば、座席割り当ての履歴を検索したいのですか?その座席は事前に割り当てられることを期待しています(旅客はいくつかの旅行のために座席を予約することができます)か?法的要件がありますか(法執行捜査の場合に席を取り戻す)?など...実生活は多種多様な関係でいっぱいです – Christophe

+0

ありがとうChristopher – avatar

-1

それはすべてあなたのモデルを依存しています。私たちは片道予約をモデル化している場合

  • それはシート1 --- 0..1
    旅客になります。
  • 旅行ごとに予約をモデリングしていて、各クラスごとに の座席数がある場合(特定の座席は割り当てられていません)、 座席クラス1 --- 0..SeatClass.availableSeatsの乗客が可能です。
  • 乗客の行動を分析するシステムをモデル化している場合(たとえば、 )、 Passenger 1 <> --- *シートになります。
  • シートの利用状況を分析するシステムをモデル化すると、 座席1になる可能性があります。<> ---乗客。など

私は他の可能性の多くを想像することができます。

あなたは特定のシステムをモデル化し、特定のビジネスニーズを表す必要があります。多重度はそれに依存します。経験則として、ある時点の状況に興味があります(最後の2つの例では、ある時点での座席割り当ての履歴を扱っています)。

私の結論は次のとおりです。単純な答えはありません。