我正在做一个在线网上商店。这是一个简单的网上商店,我必须为该类创建域UML图并显示多重性。我对我想出的多样性有点困惑。我不知道如何区分组成、聚合和关联。下面是我想出的图表。有人能告诉我我是否走在正确的轨道上吗?
https://i.stack.imgur.com/XB4QN.jpg
还不错。除非在数据库设计中需要处理内存管理或外键约束,否则您不应该为聚合而烦恼。就把它们放开吧。
您应该进行的一项重要更改是关联的角色名称。 例如,不要shippingAddress:Address
声明为属性,而是使用一个角色shippingAddress
出现在来自User
的Address
的关联附近(其他角色等(。
由于Address
是一个常见的地方并且到处都在使用,因此您可以将类排除在此图之外,并创建一个单独的图,其中Address
位于中间,所有其他使用它的人都围绕着它。
我同意托马斯的观点,但我会展示其他观点,以便您调整图表。请不要认为是破坏性的。我只是相信这些提示可以帮到你。
- 显示每个连接的多重性
- 不要使用吸气剂和二传手 *
- 不要使用 ID 的属性 * 订单
- 与用户进行组合(与与之相关的用户进行订单是没有意义的,OrderLine 与订单进行组合;
- 产品与订单行进行聚合,审查与产品进行组合;
- 制造商与产品进行聚合。(取决于您的系统,它可以是一个组合,但它更可能是聚合(。
记住(部分(用(整体(做一些东西
- 如果您与该类有连接,则不需要在类中创建属性,除非您有它的列表(例如 1:属性 CreditPayment in Payment 和 Class CreditPayment (;
- 您可以按顺序列出产品清单。在此之后,您可以删除订单行类。
*如果您不会从模型生成代码。