1 简介

主要:UML图表简介、UML符号、关系、类图、对象图、用例图、状态机图、组件图、部署图和UML工具。

1.2 什么是UML?

UML是统一建模语言(Unified Modeling Language)的缩写。它是一种标准,主要用于为现实世界中的任何软件系统创建面向对象、有意义的文档模型。它为我们提供了一种开发丰富模型的方法,可以描述任何软件/硬件系统的工作。

UML图是统一建模语言的输出。它是类、对象和它们之间关系的图形表示。UML图是描述系统一部分的模型。它用于定义系统的功能或设计。图表必须简洁明了,以便浏览者容易理解。

1.3 UML图表的类型

下面是 UML 图表的主要类型:

  • 结构图:
  • 类图
  • 对象图
  • 包图
  • 组件图
  • 部署图
  • 行为图:
  • 活动图
  • 用例图
  • 状态机图
  • 交互图:
  • 时序图
  • 顺序图
  • 协作图

2 UML图实例2.1 什么是模型?

模型是对某一事物的抽象,它  省略了不重要的细节,因此比原始实体更容易操作。

模型是对现实的简化。

模型可以提供

  • 系统蓝图
  • 系统的组织
  • 系统的动态
    内容表:

2.2 UML构件(Block)

UML 是统一建模语言(Unified Modeling Language)的缩写。构件是开发完整的UML模型图所需的东西。它是每个UML图表的重要组成部分。以下是 UML 的基本构件:

  • 事物(Thing)
  • 关系

2.3 事物

事物可以描述为现实世界中的任何实体或对象。在UML中,事物分为以下几类、

  • 结构性事物(Structural things)
  • 行为事物(Behavioral things)
  • 分组事物(Grouping things)
  • 注释性事物(Annotational things)

2.3.1 结构事物

结构事物用于描述模型的静态部分。它用来表示人眼可见的事物。UML中的结构事物都是关于系统的物理部分。它是UML模型的名词,如类、对象、接口、协作、用例、组件和节点。

让我们来解释一下 UML 中的结构体:

  • 类:

类用于表示各种对象。它用来定义对象的属性和操作。在UML中,我们还可以表示抽象类。功能未定义的类称为抽象类。任何UML类图符号一般用下面的 UML 类图示例来表示、

对象是用来描述系统行为和功能的实体。类和对象有相同的符号。唯一不同的是,对象名称在UML中总是以下划线表示。

  • 接口(Collaboration)

接口类似于没有实现细节的模板,用圆圈符号表示它。当类实现了接口,它的功能也就实现了。

  • 协作(Collaboration)

用虚线椭圆表示,椭圆内写有名称。

  • Use-case

Use-case是面向对象建模的核心概念之一。它们用于表示高级功能和用户如何处理系统。

  • 角色(Actor)

用在用例图中。Actor 符号用来表示与系统交互的实体。用户就是角色的最好例子。UML 中的角色符号如下。

  • 组件(Component)

组件符号用来表示系统的一部分。UML 中的表示方法如下、

  • 节点(Node):

节点用于描述系统的物理部分。节点可用来表示网络、服务器、路由器等。其符号如下。

  • 部署图(Deployment diagram)

它表示安装系统的物理硬件。部署图表示系统的物理视图。它表示系统各部分之间的通信和交互。

部署图由以下符号组成:节点、组件、artifact、接口

2.3.2 行为事物

  • 状态机(State machine:)

用于描述单个组件在整个软件开发生命周期中的各种状态。它用于捕捉系统组件的不同状态。

  • 活动图(Activity diagram)

活动图用于表示系统不同组件开展的各种活动。其表示方法与状态机图相同。

活动图主要包含初始状态、最终状态、决策框和动作符号。

  • 交互图

交互图用于直观显示系统各组件之间的信息流。

序列图显示一条或多条生命线之间的实时交互。

参考资料

  • 软件测试精品书籍文档下载持续更新 https://github.com/china-testing/python-testing-examples 请点赞,谢谢!
  • 本文涉及的python测试开发库 谢谢点赞! https://github.com/china-testing/python_cn_resouce
  • python精品书籍下载 https://github.com/china-testing/python_cn_resouce/blob/main/python_good_books.md
  • Linux精品书籍下载 https://www.cnblogs.com/testing-/p/17438558.html

2.3.3 分组事务

包用于将语义相关的建模元素组合成一个有凝聚力的单元。包是 UML 中唯一可用的分组方式。

2.3.4 注释

它就像一张便条,可以写在模型上以捕捉一些重要信息。它类似于黄色便条。

2.4关系

两个或多个事物之间的关系。UML中的关系能让你捕捉事物之间有意义的联系。它显示每个元素如何相互关联,以及这种关联如何描述应用程序的功能。

UML 中的关系分类如下、

  • 关联关系
  • 依赖关系
  • 泛化关系(Generalization relationship)
  • 实现关系

2.4.1 关联关系

这是一组连接UML模型元素的链接。它还定义了有多少对象参与该关系。它说明了有多少元素参与了特定的交互。

它表示为一条虚线,两边都有箭头。两边都包含一个描述关系的元素。我们引入了新术语 “多重性”(multiplicity),它告诉我们有多少个特定元素的对象被关联起来。

2.4.2 依赖关系

在这种关系中,源元素依赖于目标元素,并可能受到目标元素变化的影响。它是UML最重要的符号之一。它定义了从一个对象到另一个对象的依赖方向。

它用一条虚线表示,虚线一侧有一个箭头。

2.4.3 泛化关系

也称为父子关系。它是一般事物和更具体的事物之间的关系。这种关系用来表示继承概念。

它用一条一侧带有空心箭头的直线来表示。

2.4.4 实现关系

在这种关系中,一个元素描述了一些没有实现的责任,其他元素实现了第一个元素提到的功能。实现关系在表示接口时被广泛使用。

它以虚线表示,一端带有空心箭头。

2.5 图

UML 图分为三个不同的类别,如

  • 结构图
  • 行为图
  • 交互图

2.5.1 结构图

结构图用于表示系统的静态视图。它表示构成系统结构的系统部分。结构图显示了系统中的各种对象。

以下是 UML 中的各种结构图:

  • 类图
  • 对象图
  • 包图
  • 组件图
  • 部署图

2.5.2 行为图

现实世界中的任何系统都可以用静态或动态两种方式表示。如果一个系统既可以用静态方式表示,也可以用动态方式表示,那么这个系统就是完整的。行为图表示系统的功能。

涉及系统静态部分的 UML 图称为结构图。涉及系统运动或动态部分的 UML 图称为行为图。

以下是 UML 中的各种行为图:

  • 活动图
  • 用例图(Use case diagram)
  • 状态机图

2.5.3 交互图

交互图只是行为图的一个子集。它用于可视化系统中各种用例元素之间的流程。交互图用于显示两个实体之间的交互以及数据如何在其中流动。

以下是 UML 中的各种交互图:

  • 时序图(Timing diagram)
  • 顺序图(Sequence diagram)
  • 协作图

2.6 小结

  • 模型是一个系统的抽象,它隐藏了实现的细节。
  • 模型提供了系统的蓝图和结构。
  • UML符号帮助我们定义系统的结构和行为方面。
  • 事物、关系和图是 UML 语法的三个组成部分。
  • 事物是现实世界中的任何实体。
  • 关系用于描述一个或多个事物之间的联系。
  • 各种UML符号图用于表示单个系统的不同方面。

钉钉或微信号: pythontesting 微信公众号:pythontesting