在产品中,可以使用多种 UML 关系来定义模型元素之间的结构。这些关系的示例包括:关联、依赖关系、泛化关系、实现和转换。
| 关系 | 描述 |
|---|---|
| 抽象 | 抽象关系就是在不同抽象级别或者从不同视点来表示同一概念的模型元素之间的依赖关系。可以在多个图(包括用例图、类图和组件图)中对模型添加抽象关系。 |
| 聚集 | 聚集关系描述一个类元是另一个类元的一部分或者从属于另一个类元。 |
| 关联 | 关联关系是两个模型元素之间的一种结构关系,它表示一个类元(参与者、用例、类、接口、节点或组件)的对象连接至另一个类元的对象,并且可浏览至这些对象。即使在双向关系中,关联也将连接两个类元,一个是主类元(供应者),另一个是辅助类元(客户)。 |
| 绑定 | 绑定关系是一种为模板参数指定值并从模板生成新的模型元素的依赖关系。 |
| 通信路径 | 通信路径是部署图中的节点之间的一种关联类型,它说明节点之间如何交换消息和信号。 |
| 组合 | 组合关系是一种表示整体与部分的关系的聚集。组合关系指定部分类元的生存期取决于完整类元的生存期。 |
| 控制流 | 控制流是一种活动边,它对一个活动节点与另一个活动节点之间的控制活动进行建模。 |
| 依赖关系 | 依赖关系表示更改一个模型元素(供应者或独立模型元素)会导致更改另一个模型元素(客户或从属模型元素)。供应者模型元素是独立的,这是因为更改客户并不会影响该模型元素。客户模型元素依赖于供应者模型元素,这是因为更改供应者将影响客户。 |
| 部署 | 部署关系显示单个节点的实例使用的特定组件。在 UML 模型中,部署关系通常出现在部署图中。 |
| 有向关联 | 有向关联关系是一种只能朝一个方向浏览的关联。在这种关联中,控制流从一个类元流向另一个类元,例如,从参与者流向用例。只有一个关联关系端指定了可导航性。 |
| 扩展 | 用例之间的扩展关系表示一个用例(已扩展的用例)可以扩展另一个用例(基本用例)。扩展关系可以选择使用已扩展的用例。 |
| 泛化关系 | 泛化关系表示私有模型元素(子代)基于通用模型元素(父代)。尽管父模型元素可以具有一个或多个子模型元素,且任何子模型元素可以具有一个或多个父模型元素,但是单个父模型元素通常具有多个子模型元素。在 UML 2.0 中,多个类可以组成另一个类的泛化关系集合。泛化关系出现在类图、组件图和用例图中。 |
| 实现 | 实现关系是类元与提供的接口之间的私有类型的实现关系。实现关系指定在实现类元时必须遵守提供的接口指定的合同。 |
| 包含 | 用例之间的包含关系指定包含用例(或基本用例)需要另一个用例(被包含的用例)的行为。在包含关系中,一个用例必须使用被包含的用例。 |
| 表现 | 表现关系表示在一个工件中表现了的模型元素,例如,组件或类。该工件表现或包含一个或多个物理软件组件的功能部件的特定实现。 |
| 注解连接 | 注解连接关系将一个注解或文本框连接至一个连接器或形状。注解连接表示注解或文本框中包含与所连接的连接器或形状相关的信息。 |
| 对象流 | 对象流是一种活动边,它对一个活动节点与另一个活动节点之间的对象流和数据流进行建模。 |
| 实现 | 如果一个模型元素必须实现另一个模型元素指定的行为,那么这两个模型元素之间就存在实现关系。指定行为的模型元素就是供应者,而实现行为的模型元素就是客户。在 UML 2.0 中,此关系通常用来指定将实现一个组件的行为的那些模型元素。 |
| 使用 | 使用关系是一种依赖关系。如果一个模型元素需要存在另一个模型元素(或一组模型元素)才能完全实现或操作,那么这两个模型元素之间就存在使用关系。需要存在另一个模型元素的模型元素就是客户,而需要存在的模型元素就是供应者。尽管使用关系指示当前的需求,但是它还指示两个模型元素之间的连接并不是始终有意义或存在。 |