Uml OOAD对多重性或基数的澄清
在设计类图时,我对基数/多样性感到困惑。 我的主要困惑是何时表示1---*关系。例如,对于乘客和座位类别,乘客将被分配到一个座位,因为座位可以在某个时间点分配给一名乘客,但在其存在的一段时间内,可以分配给许多乘客 那么,乘客座位是1-1还是1-*?让我们总结一下:Uml OOAD对多重性或基数的澄清,uml,ooad,Uml,Ooad,在设计类图时,我对基数/多样性感到困惑。 我的主要困惑是何时表示1---*关系。例如,对于乘客和座位类别,乘客将被分配到一个座位,因为座位可以在某个时间点分配给一名乘客,但在其存在的一段时间内,可以分配给许多乘客 那么,乘客座位是1-1还是1-*?让我们总结一下: 在某一时刻: 每个乘客将被分配到一个座位(1)。开放性问题:乘客在分配之前是否已经存在(即1或0..1) 每个座位都可以分配一个乘客,但它可能仍然是空的(因此0..1) 在他们的一生中: 每个乘客可以被分配到多个座位(每个航班
- 在某一时刻:
- 每个
将被分配到一个乘客
(1)。开放性问题:座位
在分配之前是否已经存在(即1或0..1)李>乘客
- 每个
都可以分配一个座位
,但它可能仍然是空的(因此0..1)乘客
- 每个
- 在他们的一生中:
- 每个
乘客可以被分配到多个座位(每个航班一个)
- 每个
可以分配许多座位
李>乘客
- 每个
座椅
和乘客
之间的关系是*-*
(多对多)让我们总结一下:
- 在某一时刻:
- 每个
将被分配到一个乘客
(1)。开放性问题:座位
在分配之前是否已经存在(即1或0..1)李>乘客
- 每个
都可以分配一个座位
,但它可能仍然是空的(因此0..1)乘客
- 每个
- 在他们的一生中:
- 每个
乘客可以被分配到多个座位(每个航班一个)
- 每个
可以分配许多座位
李>乘客
- 每个
结论:
座椅
和乘客
之间的关系是*-*
(多对多)这一切都取决于您的车型
- 如果我们对每次旅行的预订进行建模,它将是一个座位1---0..1
乘客 - 如果我们对每次旅行的预订进行建模,并且只有一些 每个班级的座位数(但未指定特定的座位) 为SeatClass 1--0..SeatClass.Availables乘客
- 如果我们对系统进行建模以分析乘客行为(例如。 为特定乘客提供最佳座位)这将是一个 乘客1---*座
- 如果我们对一个系统进行建模以分析座位利用率,它可以 坐1号座位---*乘客
所以我的结论是:没有简单的答案。这完全取决于你的模型
- 如果我们对每次旅行的预订进行建模,它将是一个座位1---0..1
乘客 - 如果我们对每次旅行的预订进行建模,并且只有一些 每个班级的座位数(但未指定特定的座位) 为SeatClass 1--0..SeatClass.Availables乘客
- 如果我们对系统进行建模以分析乘客行为(例如。 为特定乘客提供最佳座位)这将是一个 乘客1---*座
- 如果我们对一个系统进行建模以分析座位利用率,它可以 坐1号座位---*乘客
所以我的结论是:没有简单的答案。谢谢克里斯托弗。什么时候我们需要考虑是在一段时间内还是在一段时间内?这是一个我需要问客户的问题,您是在一段时间内还是在某个时间点寻找?还是应该考虑到每一个设计都要考虑一段时间?这取决于客户的需求。因此,你必须问他/她一些有助于你澄清的问题。不要急于从不同的角度提问。例如:他/她是否希望返回座位分配的历史记录?他/她是否希望提前分配座位(然后乘客可以为多次旅行预订座位)?是否有法律要求(在执法调查时找到座位)?等等现实生活中充满了多对多的关系。什么时候我们需要考虑是在一段时间内还是在一段时间内?这是一个我需要问客户的问题,您是在一段时间内还是在某个时间点寻找?还是应该考虑到每一个设计都要考虑一段时间?这取决于客户的需求。因此,你必须问他/她一些有助于你澄清的问题。不要急于从不同的角度提问。例如:他/她是否希望返回座位分配的历史记录?他/她是否希望提前分配座位(然后乘客可以为多次旅行预订座位)?是否有法律要求(在执法调查时找到座位)?等等现实生活中充满了多对多的关系