首页 > 解决方案 > 具有相互依赖的枚举的 UML 图

问题描述

目前我正在尝试为汽车建模 UML 图。我有一个问题,除了内燃机之外,还有电动汽车。

查看图表时,您可以看到 Golf 具有Fuel属性的数据类型consumes,而 e-Golf 具有数据类型EnergyType

你会如何调整这个图表?

UML 图

标签: umlsysml

解决方案


继承的含义不同。您已经consumes在抽象类中定义了一个枚举。现在在继承的那些中,您不会覆盖此属性,而只是分配固定值。另外,在这种情况下,您使用了错误的符号。它会是consumes: Energytype = electrical energy(等等)。无论如何,这种类型是多余的,因为您将在类类型本身中拥有它。一辆混凝土电动车就是你想要的那种。这样枚举将包含可能的具体类类型(如果需要的话)。现在您应该专注于不同的汽车类型。唯一常见的可能是抽象汽车中定义的底盘。


NB 认为这种汽车方式是恐龙实际上所做的,这就是为什么它们有这么多麻烦。电动汽车与经典汽车有很大不同。基本上,您需要回到抽象汽车内部的人类座位。


修正案 在此处输入图像描述

可能是一种表达汽车的方式(有很多很多方式来展示变体,并且需要数周和数月才能找到适合汽车的东西)。您会看到抽象汽车(用斜体字写成)没有属性,只有与角色名称的关联。一些是抽象类,一个是具体类(请注意,这只是作为示例)。抽象类只是具有关联并包含被同意为该事物所共有的属性。

现在,如果您正在构建一些具体的汽车配置,您将只有具体的类:

在此处输入图像描述

MySuperNewCar有一个带 4 个轮子和 2 个真皮座椅的电动驱动装置。我重复了这张图中的抽象类。但这不是必需的(因为您可能已经猜到了)。

所以,这是描述汽车的一种方式。还有更多方法需要长时间讨论。无论如何,您应该聘请一位能流利地谈论 UML 的顾问(换句话说,他擅长建模事物)。


推荐阅读