UML - 基本符号
UML 因其图表符号而广受欢迎。 我们都知道 UML 用于可视化、指定、构建和记录软件和非软件系统的组件。 因此,可视化是需要理解和记住的最重要的部分。
UML 符号是建模中最重要的元素。 有效且适当地使用符号对于制作完整且有意义的模型非常重要。 除非正确描述了其目的,否则该模型毫无用处。
因此,学习符号从一开始就应该强调。 事物和关系可以使用不同的符号。 UML 图是使用事物和关系的符号来制作的。 可扩展性是另一个重要的特性,它使 UML 更加强大和灵活。
本章详细描述了基本的 UML 符号。 这只是第二章中讨论的 UML 构建块部分的扩展。
结构性事物
结构事物中使用的图形符号在 UML 中使用最为广泛。 这些被视为 UML 模型的名词。 以下是结构性事物的列表。
- 类
- 对象
- 接口
- 协作
- 用例
- 活跃类
- 组件
- 节点
类表示法
UMLclass由下图表示。 该图分为四个部分。
- 顶部部分用于命名类。
- 第二个用于显示类的属性。
- 第三部分用于描述该类执行的操作。
- 第四部分是可选的,用于显示任何其他组件。

类用于表示对象。 对象可以是任何具有属性和责任的东西。
对象表示法
对象的表示方式与类相同。 唯一的区别是名称,它带有下划线,如下图所示。

由于对象是类的实际实现,因此称为类的实例。 因此,它与类具有相同的用法。
接口符号
界面用圆圈表示,如下图所示。 它有一个名称,通常写在圆圈下方。

接口用于描述功能而无需实现。 接口就像一个模板,您可以在其中定义不同的功能,而不是实现。 当一个类实现接口时,它也根据要求实现功能。
协作符号
协作由虚线蚀表示,如下图所示。 它有一个名字写在 eclipse 里面。

合作代表责任。 一般来说,职责是在一个组中的。
用例符号
用例表示为一个包含名称的 Eclipse。 它可能包含额外的责任。

用例用于捕获系统的高级功能。
参与者符号
参与者可以定义为与系统交互的一些内部或外部实体。

参与者在用例图中用于描述内部或外部实体。
初始状态表示法
初始状态被定义为显示进程的开始。 几乎所有图表中都使用这种表示法。

初始状态表示法的用途是显示进程的起点。
最终状态表示法
最终状态用于显示进程的结束。 几乎所有图表中也使用这种表示法来描述结尾。

最终状态表示法的用途是显示进程的终止点。
活动类表示法
活动类看起来类似于带有实线边框的类。 Active类一般用来描述系统的并发行为。

活动类用于表示系统中的并发性。
组件符号
UML中的组件如下图所示,里面有一个名称。 可以根据需要添加其他元素。

组件用于表示为其制作 UML 图的系统的任何部分。
节点符号
UML 中的节点由如下图所示的带有名称的方框表示。 节点代表系统的物理组件。

节点用于表示系统的物理部分,例如服务器、网络等
行为事物
动态部分是 UML 中最重要的元素之一。 UML有一套强大的 表示软件和非软件系统的动态部分的特征。 这些功能包括交互和状态机。
交互可以有两种类型 −
- 顺序(用序列图表示)
- 协作(以协作图表示)
交互符号
交互基本上是两个 UML 组件之间的消息交换。 下图表示交互中使用的不同符号。

交互用于表示系统组件之间的通信。
状态机表示法
状态机描述了组件在其生命周期中的不同状态。 符号如下图所示。

状态机用于描述系统组件的不同状态。 根据具体情况,状态可以是活动的、空闲的或任何其他状态。
对事物进行分组
组织 UML 模型是设计中最重要的方面之一。 在 UML 中,只有一个元素可用于分组,那就是包。
包符号
包符号如下图所示,用于包装系统的组件。

注释性事物
在任何图表中,对不同元素及其功能的解释都非常重要。 因此,UML 有 notes 表示法来支持这一要求。
注释符号
该表示法如下图所示。 这些符号用于提供系统必要的信息。

关系
除非正确描述了元素之间的关系,否则模型是不完整的。关系为 UML 模型提供了正确的含义。 以下是 UML 中可用的不同类型的关系。
- 依赖
- 协会
- 概括
- 可扩展性
依赖符号
依赖性是 UML 元素的一个重要方面。 它描述了依赖元素和依赖方向。
依赖关系用虚线箭头表示,如下图所示。 箭头头代表独立元素,另一端代表从属元素。

依赖关系用于表示系统中两个元素之间的依赖关系
关联符号
关联描述了 UML 图中的元素如何关联。 简而言之,它描述了有多少元素参与交互。
关联由两侧带(不带)箭头的虚线表示。 两端代表两个关联的元素,如下图所示。 末尾还提到了多重性(1、* 等),以显示有多少个对象关联。

关联用于表示系统中两个元素之间的关系。
泛化符号
泛化描述了面向对象世界的继承关系。 这是一种父子关系。
概括由带有空心箭头的箭头表示,如下图所示。 一端代表父元素,另一端代表子元素。

泛化用于描述系统中两个元素的父子关系。
可扩展性表示法
所有语言(编程或建模)都有一些机制来扩展其功能,例如语法、语义等。UML 还具有以下机制来提供可扩展性功能。
- 构造型(代表新元素)
- 标记值(代表新属性)
- 约束(代表边界)

可扩展性符号用于增强语言的功能。 它基本上是用于表示系统的一些额外行为的附加元素。 标准可用符号未涵盖这些额外行为。