热门标签 | 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



推荐阅读
  • 关于我们EMQ是一家全球领先的开源物联网基础设施软件供应商,服务新产业周期的IoT&5G、边缘计算与云计算市场,交付全球领先的开源物联网消息服务器和流处理数据 ... [详细]
  • 本文详细介绍了SQL日志收缩的方法,包括截断日志和删除不需要的旧日志记录。通过备份日志和使用DBCC SHRINKFILE命令可以实现日志的收缩。同时,还介绍了截断日志的原理和注意事项,包括不能截断事务日志的活动部分和MinLSN的确定方法。通过本文的方法,可以有效减小逻辑日志的大小,提高数据库的性能。 ... [详细]
  • 本文详细介绍了MysqlDump和mysqldump进行全库备份的相关知识,包括备份命令的使用方法、my.cnf配置文件的设置、binlog日志的位置指定、增量恢复的方式以及适用于innodb引擎和myisam引擎的备份方法。对于需要进行数据库备份的用户来说,本文提供了一些有价值的参考内容。 ... [详细]
  • 图解redis的持久化存储机制RDB和AOF的原理和优缺点
    本文通过图解的方式介绍了redis的持久化存储机制RDB和AOF的原理和优缺点。RDB是将redis内存中的数据保存为快照文件,恢复速度较快但不支持拉链式快照。AOF是将操作日志保存到磁盘,实时存储数据但恢复速度较慢。文章详细分析了两种机制的优缺点,帮助读者更好地理解redis的持久化存储策略。 ... [详细]
  • Tomcat/Jetty为何选择扩展线程池而不是使用JDK原生线程池?
    本文探讨了Tomcat和Jetty选择扩展线程池而不是使用JDK原生线程池的原因。通过比较IO密集型任务和CPU密集型任务的特点,解释了为何Tomcat和Jetty需要扩展线程池来提高并发度和任务处理速度。同时,介绍了JDK原生线程池的工作流程。 ... [详细]
  • 本文讨论了在数据库打开和关闭状态下,重新命名或移动数据文件和日志文件的情况。针对性能和维护原因,需要将数据库文件移动到不同的磁盘上或重新分配到新的磁盘上的情况,以及在操作系统级别移动或重命名数据文件但未在数据库层进行重命名导致报错的情况。通过三个方面进行讨论。 ... [详细]
  • r2dbc配置多数据源
    R2dbc配置多数据源问题根据官网配置r2dbc连接mysql多数据源所遇到的问题pom配置可以参考官网,不过我这样配置会报错我并没有这样配置将以下内容添加到pom.xml文件d ... [详细]
  • 在Oracle11g以前版本中的的DataGuard物理备用数据库,可以以只读的方式打开数据库,但此时MediaRecovery利用日志进行数据同步的过 ... [详细]
  • 先看一段错误日志:###Errorqueryingdatabase.Cause:com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransie ... [详细]
  • 从Oracle安全移植到国产达梦数据库的DBA实践与攻略
    随着我国对信息安全和自主可控技术的重视,国产数据库在党政机关、军队和大型央企等行业中得到了快速应用。本文介绍了如何降低从Oracle到国产达梦数据库的技术门槛,保障用户现有业务系统投资。具体包括分析待移植系统、确定移植对象、数据迁移、PL/SQL移植、校验移植结果以及应用系统的测试和优化等步骤。同时提供了移植攻略,包括待移植系统分析和准备移植环境的方法。通过本文的实践与攻略,DBA可以更好地完成Oracle安全移植到国产达梦数据库的工作。 ... [详细]
  • 篇首语:本文由编程笔记#小编为大家整理,主要介绍了软件测试知识点之数据库压力测试方法小结相关的知识,希望对你有一定的参考价值。 ... [详细]
  • 一次上线事故,30岁+的程序员踩坑经验之谈
    本文主要介绍了一位30岁+的程序员在一次上线事故中踩坑的经验之谈。文章提到了在双十一活动期间,作为一个在线医疗项目,他们进行了优惠折扣活动的升级改造。然而,在上线前的最后一天,由于大量数据请求,导致部分接口出现问题。作者通过部署两台opentsdb来解决问题,但读数据的opentsdb仍然经常假死。作者只能查询最近24小时的数据。这次事故给他带来了很多教训和经验。 ... [详细]
  • 本文介绍了使用数据库管理员用户执行onstat -l命令来监控GBase8s数据库的物理日志和逻辑日志的使用情况,并强调了对已使用的逻辑日志是否及时备份的重要性。同时提供了监控方法和注意事项。 ... [详细]
  • 本文介绍了关系型数据库和NoSQL数据库的概念和特点,列举了主流的关系型数据库和NoSQL数据库,同时描述了它们在新闻、电商抢购信息和微博热点信息等场景中的应用。此外,还提供了MySQL配置文件的相关内容。 ... [详细]
  • {moduleinfo:{card_count:[{count_phone:1,count:1}],search_count:[{count_phone:4 ... [详细]
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社区 版权所有