UML – 基本记号
UML因其图解符号而流行。我们都知道,UML是用于可视化,指定,构建和记录软件和非软件系统的组件。因此,可视化是最重要的部分,需要被理解和记住。
UML符号是建模中最重要的元素。有效和适当地使用符号对建立一个完整和有意义的模型非常重要。除非它的目的被正确地描述出来,否则模型是无用的。
因此,学习符号应该从一开始就被强调。不同的符号可用于事物和关系。UML图是使用事物和关系的符号制作的。可扩展性是另一个重要特征,它使UML更加强大和灵活。
本章详细介绍了基本的UML符号。这只是第二章中讨论的UML构件部分的延伸。
结构性事物
结构性事物中使用的图形符号在UML中使用最广泛。这些被认为是UML模型的名词。以下是结构性事物的列表。
- 类
- 对象
- 接口
- 协作
- 使用案例
- 活动类
- 组件
- 节点
类的记号
UML 类 由下图表示。该图被分为四个部分。
- 最上面的部分用来命名该类。
- 第二部分用来显示该类的属性。
- 第三部分用来描述该类所执行的操作。
- 第四部分是可选的,用来显示任何额外的组件。
类是用来表示对象的。对象可以是任何具有属性和责任的东西。
对象记号
对象 的表示方法与类的表示方法相同。唯一的区别是 名称 ,如下图所示, 名称 是下划线。
由于对象是一个类的实际实现,它被称为一个类的实例。因此,它与类有相同的用法。
接口符号
接口是由一个圆圈表示的,如下图所示。它有一个名称,一般写在圆圈的下面。
接口是用来描述没有实现的功能的。接口就像一个模板,你在这里定义不同的功能,而不是实现。当一个类实现了接口时,它也按照要求实现了功能。
协作记号
如下图所示,协作是由一个点状的日食表示的。它的名字写在食指内。
协作代表责任。一般来说,责任是在一个组中。
用例记号
用例被表示为一个带有名称的日蚀。它可能包含额外的责任。
用例被用来捕捉系统的高层次功能。
行为者符号
一个角色可以被定义为与系统交互的一些内部或外部实体。
在用例图中,角色被用来描述内部或外部实体。
初始状态记号
初始状态被定义为显示一个过程的开始。这个符号几乎在所有的图中都被使用。
初始状态符号的用法是显示一个过程的起点。
最终状态符号
最终状态用于显示一个过程的结束。这个符号也被用于几乎所有的图中来描述结束。
最终状态符号的用法是显示一个进程的终止点。
活跃类符号
主动类看起来类似于一个有实体边框的类。主动类一般用于描述系统的并发行为。
主动类用于表示系统中的并发性。
组件符号
UML中的一个组件如下图所示,里面有一个名称。在需要的地方可以添加额外的元素。
组件用来表示一个系统的任何部分,UML图是为其制作的。
节点符号
在UML中,一个节点由一个方块表示,如下图所示,有一个名称。一个节点代表系统的物理组件。
节点用来表示系统的物理部分,如服务器、网络等。
行为上的东西
动态部分是UML中最重要的元素之一。UML有一套强大的功能来表示软件和非软件系统的动态部分。这些功能包括 交互 和 状态机。
交互可以有两种类型
- 顺序性的 (用顺序图表示)
- 协作式(用协作图表示)。
交互符号
交互基本上是两个UML组件之间的消息交换。下图表示在一个交互中使用的不同符号。
交互是用来表示系统中各组件之间的通信。
状态机符号
状态机描述了一个组件在其生命周期中的不同状态。这些符号在下图中有所描述。
状态机被用来描述系统组件的不同状态。状态可以是活动的,空闲的,或任何其他的,取决于情况。
分组的事情
组织UML模型是设计中最重要的方面之一。在UML中,只有一个元素可用于分组,那就是包。
包的符号
包符号如下图所示,用于包装系统的组件。
注释性的东西
在任何图中,对不同元素和它们的功能的解释是非常重要的。因此,UML有 注释 符号来支持这一要求。
注释符号
这个符号显示在下图中。这些符号用来提供一个系统的必要信息。
关系
除非正确描述元素之间的关系,否则一个模型是不完整的。 关系 给了UML模型一个正确的含义。以下是UML中可用的不同类型的关系。
- 依赖关系
- 关联
- 泛化
- 可扩展性
依赖关系符号
依赖性是UML元素的一个重要方面。它描述了依赖性元素和依赖性的方向。
如下图所示,依赖关系用一个虚线箭头表示。箭头的头部代表独立元素,另一端代表依赖元素。
依赖关系用于表示系统中两个元素之间的依赖关系
关联符号
关联描述了UML图中的元素如何被关联。简单地说,它描述了有多少元素参与了一个交互。
关联用一条虚线表示,两边都有(没有)箭头。两端代表两个关联元素,如下图所示。在两端还提到了倍数(1、*等),以显示有多少个对象被关联。
关联是用来表示一个系统中两个元素之间的关系。
泛化符号
泛化描述了面向对象世界的继承关系。它是一种父与子的关系。
如下图所示,泛化是由一个箭头表示的,箭头的头部是空心的。一端代表父元素,另一端代表子元素。
概括用于描述一个系统中两个元素的父子关系。
可扩展性记号
所有的语言(编程或建模)都有一些机制来扩展其能力,如语法、语义等。UML也有以下机制来提供可扩展性功能。
- 定型 (Represents new elements)
- 标签值 (代表新的属性)
- 约束 (Represents the boundaries)
可扩展性符号被用来增强语言的力量。它基本上是用来表示系统的一些额外行为的附加元素。这些额外的行为并没有被标准的可用符号所涵盖。