在软件设计与建模领域,统一建模语言(UML)是一种强大的工具,用于可视化和记录系统的结构与行为。UML中的一个关键概念是多重性,它定义了参与关联的对象数量的约束。本文深入探讨了多重性的概念、其重要性以及它在UML图中的应用方式。
什么是多重性?
UML中的多重性是一种约束,用于指定参与关联一端的对象数量。它回答诸如“一个人可以拥有多少辆汽车?”或“一辆车可以由多少人驾驶?”之类的问题。通过定义多重性,您可以设定类中对象之间关系的规则,从而以清晰简洁的方式表达这些关系。
表达多重性
多重性通常以一个范围来表示,该范围定义了关联中允许的对象的最小和最大数量。表达多重性的格式如下:
- 确切数量:一个单一数字,表示对象的确切数量。
- 范围:两个由两个点(..)分隔的数字,表示最小和最大数量。
- 星号(*):表示对象数量无限制。
例如:
1:恰好一个对象。0..1:零个或一个对象。1..*:至少一个对象,无上限。*:任意数量的对象,包括零。

在关联中应用多重性
在对类之间的关联进行建模时,多重性被分配到关联的每一端。例如,考虑“人”类与“汽车”类之间的关联:
- 问题1: 一个人最多可以拥有多少辆汽车?
- 问题2: 一辆给定的汽车可以由多少人驾驶?
这些问题的答案会放在关联中相应类的旁边。如果一个人可以拥有零辆到多辆汽车,那么靠近“汽车”类的多重性将是0..*。相反,如果一辆汽车可以由一人到多人驾驶,那么靠近“人”类的多重性将是1..*.
示例:运输和产品
为了说明,考虑一种情况:一个运输必须至少包含一个产品,但可以包含所需数量的多个产品。关联的产品端的多重性将是1..*,表示一个运输必须至少包含一个产品,但可以包含多个。
符号与表示法
在UML图中,多重性使用特定的符号表示:
- 星号(*):表示对象的数量无限制。
- 范围(
最小值..最大值): 指定对象的最小和最大数量。 - 精确数量: 表示对象的精确数量。
这些符号有助于清晰地定义类之间关系的约束和规则。
示例 1:人员与汽车
在此示例中,一个人员可以拥有零个到多个汽车,并且一本汽车可以由一个到多个人员.

示例 2:运输与产品
在此示例中,一个运输必须至少包含一个产品但可以包含所需数量的多个产品。

示例 3:图书馆与书籍
在此示例中,一个图书馆可以拥有多个书籍,并且一本书籍可以存在于一个图书馆.

示例 4:教师和学生
在此示例中,一个教师可以教授许多学生,并且一个学生可以由一位教师.

示例 5:订单和项目
在此示例中,一个订单可以包含一个或多个项目,并且一名项目可以属于零个或多个订单.

示例 6:公司和员工
在此示例中,一个公司可以拥有许多员工,并且一名员工为一家公司.

这些示例说明了如何使用多重性来定义参与关联的对象数量,提供了一种清晰简洁的方式来表达之间的关系UML中的类图。
结论
多重性是UML中的一个基本概念,它提供了一种结构化的方式来定义参与关联的对象数量。通过指定多重性,设计人员可以确保类之间的关系被明确定义并被理解,从而实现更健壮和可维护的系统设计。无论您是在建模简单的关联还是复杂的关联,理解和应用多重性对于有效的UML建模都是必不可少的。
资源
- 在Visual Paradigm中绘制实体关系图
- Visual Paradigm.(无日期)在Visual Paradigm中绘制实体关系图 4.
- 实体关系图——多重性
- Stack Overflow.(无日期)实体关系图——多重性 5.
- 实体关系图
- 在UML形状上指定多重性
- Microsoft Support.(无日期)在UML形状上指定多重性 7.
- 什么是实体关系图(ERD)?
- Visual Paradigm.(无日期)什么是实体关系图(ERD)? 8.
- Visual Paradigm ER图添加表
- Stack Overflow. (无日期). Visual Paradigm ER图添加表 9.
- 如何在 Visual Paradigm 中为类图添加多重性?
- TheNewsIndependent. (2020年12月29日). 如何在 Visual Paradigm 中为类图添加多重性? 10.
- 实体关系(ER)图入门指南
- Visual Paradigm 博客. (2023年9月21日). 实体关系(ER)图入门指南 11.
- 多重性与基数