软件工程专题:UML部署图
关注BeTester,学习更多知识
让碎片成体系,让测试更专业
1、概述
部署图(Deploy Diagram),也叫拓扑图(Topology Diagram),主要用于显示软件产品中硬件和软件的物理架构图。从部署图中,我们可以了解到软件和硬件之间的物理拓扑、连接关系以及处理节点的分布情况。
2、部署图元素
2.1 部署元素
PlantUML中定义了很多关键字用于对不同类型节点的说明。
@startuml
actor 角色
agent 代理
artifact 物件或工件
boundary 边界
card 卡片
cloud 云端
component 组件
control 控制
database 数据库
entity 实体
file 文件
folder 文件夹
frame 框
interface 接口
node 节点
package 包
queue 队列
stack 堆栈
rectangle 矩形
storage 存储
@enduml
- 节点:表示系统的计算资源(如计算机、传感器、打印设备或服务器等)的模型元素。
- 工件:表示软件系统中的物理实体的模型元素,如可执行文件、库、文档、数据库等。
2.2 元素详细描述
通过 [] 可以增加元素的详细描述,并且通过 ==== / …. / —— 来进行分割文本描述。
@startuml
node 测试设备 [
第一行描述
----
第二行描述
....
第三行描述
====
第四行描述
]
@enduml
2.2 元素嵌套
通过 {} 来对父节点的内部进行定义,使得元素之间存在父子关系(即嵌套)。
@startuml
node 父节点 {
node 子节点1
node 子节点2
}
@enduml
2.3 链接关系
部署图中元素之间的关系存在一定的关系,这些关系与 类图 中的关系相似,请大家参考《 软件工程专题:UML类图》。
@startuml
node node1
node node2
node node3
node node4
node node5
node1 ..|> node2 : 实现
node1 ..> node3 : 使用
node1 --|> node4 : 继承
node1 <--> node5 : 关联
@enduml
3、部署图绘制步骤
- 找出系统关联的节点(包括软件和硬件)
- 逐个确定每个节点与其他阶段的关联关系
- 根据关联关系,连接两个节点
- 重复步骤2和3,直到所有节点都完成
部署图之间的难点在于如何找出系统的节点,建议:
- 找开发工程师了解被测对象的内部结构及上下游关系。
- 找资深测试工程师了解被测对象的整体架构图,涉及到的软硬件。
4、实例说明
4.1 CI概要部署图
@startuml
title CI概要部署图
actor 测试工程师 as auto
database 自动化测试数据库 as db
node 办公电脑 as pc
node CI主服务器 as ci_master
node CI从服务器 as ci_slave
node 日志服务器 as log_server
node 报告服务器 as report_server
cloud 办公网络 as public_cloud
cloud 自动化私有网络 as auto_cloud
node 测试设备 as dut
auto ..> pc
pc -> public_cloud : HTTP
public_cloud -> pc
public_cloud <--> auto_cloud : 跳板机
public_cloud -> log_server : FTP/SMB
log_server -> public_cloud
public_cloud -> report_server
report_server --> public_cloud
report_server --> db : tcp
ci_master -> auto_cloud
auto_cloud -> ci_master
ci_master -> db : tcp
db -> ci_master
ci_master --> ci_slave : ssh
ci_slave -> ci_master
ci_slave --> dut : usb
dut -> ci_slave
@enduml
4.2 简易部署流水线
@startuml
queue 部署流水线 {
node 代码服务器 as code
node 编译服务器 as comp
node 工件服务器 as air
node 测试执行机 as exec
node 报告服务器 as report
node 部署机器 as deploy
code -> comp
comp -> air
air -> exec
exec -> report
report -> deploy
}
@enduml
4、小结
部署图通常在产品的实现阶段前准备,作为详细分析的输入件。通过部署图,能够非常直观地了解系统的整体架构,能够对系统由浅入深地了解系统,对产品是非常重要的表现形式。
另外,由于部署图展示了各节点运行时状态,所以在部署图上也可以用来评定分布和资源分配。
—— 更多文章 ——
- 软件工程专题:UML状态图
- 软件工程专题:UML活动图
- 软件工程专题:UML通信图
- 软件工程专题:UML顺序图
- 软件工程专题:UML用例图
- 软件工程专题:UML类图
- 软件工程专题:Plant UML实践
- 软件工程专题:UML简介
如果有任何的疑问,也可以联系小小志