与当前时刻或系统生命周期相关的UML类关系

与当前时刻或系统生命周期相关的UML类关系,uml,class-design,software-design,class-diagram,class-relationship,Uml,Class Design,Software Design,Class Diagram,Class Relationship,我有一个关于下图的问题 我的问题是司机-汽车和乘客-汽车之间的关系 1-驾驶员端的*表示一辆车可以由多个驾驶员驾驶,这是系统生命周期内两个级别之间的关系 2-在另一种情况下,轿厢和乘客之间的关系是实时关系,最多只能有0-7名乘客在同一轿厢内 我做错什么了吗? 我应该如何看待这些关系,是对象之间的实时关系还是车辆生命周期中的关系实际上看起来像胡说八道:-) 这意味着驾驶员操作一辆或多辆汽车。多任务可能是人类的一些新能力(我对此表示怀疑)。因此,同时驾驶两辆车会很困难,但接下来是*车吗 这样的类图

我有一个关于下图的问题

我的问题是司机-汽车和乘客-汽车之间的关系

1-驾驶员端的*表示一辆车可以由多个驾驶员驾驶,这是系统生命周期内两个级别之间的关系

2-在另一种情况下,轿厢和乘客之间的关系是实时关系,最多只能有0-7名乘客在同一轿厢内

我做错什么了吗?
我应该如何看待这些关系,是对象之间的实时关系还是车辆生命周期中的关系实际上看起来像胡说八道:-)

这意味着
驾驶员
操作一辆或多辆
汽车
。多任务可能是人类的一些新能力(我对此表示怀疑)。因此,同时驾驶两辆车会很困难,但接下来是
*
车吗


这样的类图的缺点是,您看不到什么样的关系。我假设
运行
,但这很可能意味着
拥有
。角色名称可以澄清这种模糊性。

两个当前的关系都可以用关联来表示

对于
Driver
当前驾驶员和曾经驾驶过汽车的每个人,可以使用两种不同的关联来表示

一辆
汽车
只能有一名
当前驾驶员
,一名
驾驶员
一次只能驾驶一辆
汽车
,但可能会有许多
历史驾驶员
随着时间的推移驾驶过许多不同的
汽车


您将
引擎
轮子
建模为聚合的事实让我有些惊讶。聚合实际上是一种共享的聚合类型,我从未见过
引擎或
车轮同时成为两辆车的一部分。我真的看不出你为什么不在这里使用合成物。

另外,添加备胎也很有趣。关于聚合关系,消息人士说,因为它可以被其他引擎替换,所以它不是合成物关系,同一来源将汽车和车身之间的关系建模为组成,因为车身是不可替代的,这根本不正确。UML2.5对复合AggregationKind做了如下说明:
NOTE。在删除复合对象之前,可以(在其他允许的情况下)从复合对象中删除部分对象,因此不能作为复合对象的一部分删除。
因此,即使使用合成,您也可以从一辆车上拆下一个发动机并将其添加到另一辆车上。我总是发现,对于现实世界的示例,这种差异非常微妙。一个轮子可以独立使用,可以在不同的汽车上使用(马达相同,但不容易更换)。但由成分组成的菜单位置是由成分组成的,并且不会独立存在(在计算机环境中;但事实上仍然可以)。因此,这更像是一个内存管理提示,对象一旦失去联系,就可能/应该被销毁。感谢您对驾驶员和汽车之间关系的关注,我假设它声明允许一个驾驶员驾驶一辆或多辆汽车,并且每辆汽车可以由多个驾驶员驾驶,不幸的是,参考文献提到了上图,没有提供任何细节,如果你可以推荐一些资源,我可以了解更多关于类图和设计决策的信息,这将是一个很大的帮助。很难推荐任何东西。我想UML对于傻瓜来说仍然是一个不错的选择。您需要在
Car
侧添加角色名
permittedCar
。这将澄清该协会的用途。在
司机
附近应该有一个
司机
角色。你真的应该接受一个答案,以奖励Geert或Thomas花时间回答你的问题。两者都是很好的答案,所以选择很难。