热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

软件工程类图_软件工程专题:UML部署图

关注BeTester,学习更多知识让碎片成体系,让测试更专业1、概述部署图(DeployDiagram),也叫
c08fe899e8a0a6adb7653eef811e5418.png

关注BeTester,学习更多知识

让碎片成体系,让测试更专业

7a60aec8abe2afa28ad16d49d3355789.png

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

3ea0ab1606d7c5e7f76ef629d663a08c.png
  1. 节点:表示系统的计算资源(如计算机、传感器、打印设备或服务器等)的模型元素。
  2. 工件:表示软件系统中的物理实体的模型元素,如可执行文件、库、文档、数据库等。

2.2 元素详细描述

通过 [] 可以增加元素的详细描述,并且通过 ==== / …. / —— 来进行分割文本描述。

@startuml
node 测试设备 [第一行描述----第二行描述....第三行描述====第四行描述
]
@enduml

c3205527ca93f343ac6ff4adcb892322.png

2.2 元素嵌套

通过 {} 来对父节点的内部进行定义,使得元素之间存在父子关系(即嵌套)。

@startuml
node 父节点 {node 子节点1node 子节点2
}
@enduml

e0b704d1ac94ab5546561ff24f735dd7.png

2.3 链接关系

部署图中元素之间的关系存在一定的关系,这些关系与 类图 中的关系相似,请大家参考《软件工程专题:UML类图》。

@startuml
node node1
node node2
node node3
node node4
node node5
node1 ..|> node2 : 实现
node1 ..> node3 : 使用
node1 --|> node4 : 继承
node1 <--> node5 : 关联
&#64;enduml

c9c139918d1f85ccd112f058ea901338.png

3、部署图绘制步骤

  1. 找出系统关联的节点&#xff08;包括软件和硬件&#xff09;
  2. 逐个确定每个节点与其他阶段的关联关系
  3. 根据关联关系&#xff0c;连接两个节点
  4. 重复步骤2和3&#xff0c;直到所有节点都完成
部署图之间的难点在于如何找出系统的节点&#xff0c;建议&#xff1a;
  1. 开发工程师了解被测对象的内部结构及上下游关系。
  2. 资深测试工程师了解被测对象的整体架构图&#xff0c;涉及到的软硬件。

4、实例说明

4.1 CI概要部署图

&#64;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_servercloud 办公网络 as public_cloud
cloud 自动化私有网络 as auto_cloudnode 测试设备 as dutauto ..> pcpc -> public_cloud : HTTP
public_cloud -> pcpublic_cloud <--> auto_cloud : 跳板机public_cloud -> log_server : FTP/SMB
log_server -> public_cloudpublic_cloud -> report_server
report_server --> public_cloudreport_server --> db : tcpci_master -> auto_cloud
auto_cloud -> ci_masterci_master -> db : tcp
db -> ci_masterci_master --> ci_slave : ssh
ci_slave -> ci_masterci_slave --> dut : usb
dut -> ci_slave&#64;enduml

82d585c14903b230feb01de577d25289.png

4.2 简易部署流水线

&#64;startuml
queue 部署流水线 {node 代码服务器 as codenode 编译服务器 as compnode 工件服务器 as airnode 测试执行机 as exec node 报告服务器 as reportnode 部署机器 as deploycode -> compcomp -> airair -> execexec -> reportreport -> deploy
}
&#64;enduml

d2a9a4f621904cf0a953f983b4973964.png

4、小结

部署图通常在产品的实现阶段前准备&#xff0c;作为详细分析的输入件。通过部署图&#xff0c;能够非常直观地了解系统的整体架构&#xff0c;能够对系统由浅入深地了解系统&#xff0c;对产品是非常重要的表现形式。

另外&#xff0c;由于部署图展示了各节点运行时状态&#xff0c;所以在部署图上也可以用来评定分布和资源分配。

—— 更多文章 ——

  • 软件工程专题&#xff1a;UML状态图
  • 软件工程专题&#xff1a;UML活动图
  • 软件工程专题&#xff1a;UML通信图
  • 软件工程专题&#xff1a;UML顺序图
  • 软件工程专题&#xff1a;UML用例图
  • 软件工程专题&#xff1a;UML类图
  • 软件工程专题&#xff1a;Plant UML实践
  • 软件工程专题&#xff1a;UML简介
0ba95be8bb15e35103fd3c89baad3c4c.png

如果有任何的疑问&#xff0c;也可以联系小小志

1137bcc0c982894cab3f803fe25c76fb.png



推荐阅读
  • 本文详细介绍了SQL日志收缩的方法,包括截断日志和删除不需要的旧日志记录。通过备份日志和使用DBCC SHRINKFILE命令可以实现日志的收缩。同时,还介绍了截断日志的原理和注意事项,包括不能截断事务日志的活动部分和MinLSN的确定方法。通过本文的方法,可以有效减小逻辑日志的大小,提高数据库的性能。 ... [详细]
  • 关于我们EMQ是一家全球领先的开源物联网基础设施软件供应商,服务新产业周期的IoT&5G、边缘计算与云计算市场,交付全球领先的开源物联网消息服务器和流处理数据 ... [详细]
  • 如何在服务器主机上实现文件共享的方法和工具
    本文介绍了在服务器主机上实现文件共享的方法和工具,包括Linux主机和Windows主机的文件传输方式,Web运维和FTP/SFTP客户端运维两种方式,以及使用WinSCP工具将文件上传至Linux云服务器的操作方法。此外,还介绍了在迁移过程中需要安装迁移Agent并输入目的端服务器所在华为云的AK/SK,以及主机迁移服务会收集的源端服务器信息。 ... [详细]
  • WhenIusepythontoapplythepymysqlmoduletoaddafieldtoatableinthemysqldatabase,itdo ... [详细]
  • PDO MySQL
    PDOMySQL如果文章有成千上万篇,该怎样保存?数据保存有多种方式,比如单机文件、单机数据库(SQLite)、网络数据库(MySQL、MariaDB)等等。根据项目来选择,做We ... [详细]
  • 在Oracle11g以前版本中的的DataGuard物理备用数据库,可以以只读的方式打开数据库,但此时MediaRecovery利用日志进行数据同步的过 ... [详细]
  • 本文介绍了在RHEL 7中的系统日志管理和网络管理。系统日志管理包括rsyslog和systemd-journal两种日志服务,分别介绍了它们的特点、配置文件和日志查询方式。网络管理主要介绍了使用nmcli命令查看和配置网络接口的方法,包括查看网卡信息、添加、修改和删除配置文件等操作。 ... [详细]
  • Python脚本编写创建输出数据库并添加模型和场数据的方法
    本文介绍了使用Python脚本编写创建输出数据库并添加模型数据和场数据的方法。首先导入相应模块,然后创建输出数据库并添加材料属性、截面、部件实例、分析步和帧、节点和单元等对象。接着向输出数据库中添加场数据和历程数据,本例中只添加了节点位移。最后保存数据库文件并关闭文件。文章还提供了部分代码和Abaqus操作步骤。另外,作者还建立了关于Abaqus的学习交流群,欢迎加入并提问。 ... [详细]
  • 本文介绍了如何使用MATLAB调用摄像头进行人脸检测和识别。首先需要安装扩展工具,并下载安装OS Generic Video Interface。然后使用MATLAB的机器视觉工具箱中的VJ算法进行人脸检测,可以直接调用CascadeObjectDetector函数进行检测。同时还介绍了如何调用摄像头进行人脸识别,并对每一帧图像进行识别。最后,给出了一些相关的参考资料和实例。 ... [详细]
  • STM32 IO口模拟串口通讯
    转自:http:ziye334.blog.163.comblogstatic224306191201452833850647前阵子,调项目时需要用到低波 ... [详细]
  • zuul 路由不生效_Zuul网关到底有何牛逼之处?竟然这么多人在用~
    作者:kosamino来源:cnblogs.comjing99p11696192.html哈喽,各位新来的小伙伴们,大家好& ... [详细]
  • 本文介绍了数据库的存储结构及其重要性,强调了关系数据库范例中将逻辑存储与物理存储分开的必要性。通过逻辑结构和物理结构的分离,可以实现对物理存储的重新组织和数据库的迁移,而应用程序不会察觉到任何更改。文章还展示了Oracle数据库的逻辑结构和物理结构,并介绍了表空间的概念和作用。 ... [详细]
  • 拥抱Android Design Support Library新变化(导航视图、悬浮ActionBar)
    转载请注明明桑AndroidAndroid5.0Loollipop作为Android最重要的版本之一,为我们带来了全新的界面风格和设计语言。看起来很受欢迎࿰ ... [详细]
  • 解决nginx启动报错epoll_wait() reported that client prematurely closed connection的方法
    本文介绍了解决nginx启动报错epoll_wait() reported that client prematurely closed connection的方法,包括检查location配置是否正确、pass_proxy是否需要加“/”等。同时,还介绍了修改nginx的error.log日志级别为debug,以便查看详细日志信息。 ... [详细]
  •    实现了uboot对非linuxkernel的引导。虽然有一个IH_TYPE_STANDALONE,但是没有实现。nnd.只能自己想办法。实现详细见 ... [详细]
author-avatar
全仕介个
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有