当前位置: 首页 > news >正文

UML建模图文详解教程08——部署图


版权声明

  • 本文原创作者:谷哥的小弟
  • 作者博客地址:http://blog.csdn.net/lfdfhl
  • 本文参考资料:《UML面向对象分析、建模与设计(第2版)》吕云翔,赵天宇 著

在这里插入图片描述

部署图概述

部署图(deployment diagram)也被译作配置图或实施图,是一种展示运行时进行处理的节点和在节点上存在的制品的配置的图。部署图阐述了在实际应用中软件及其运行环境(这里主要指运行该软件的硬件环境)的关系,并且描述了软件部署在硬件上的具体方式部署图与组件图都是用来对系统的物理方面进行建模。部署图侧重于系统安装、部署的拓扑结构。

在部署图中,我们忽略掉软件内部的各个联系使用节点和连接这两种事物来表达运行系统的硬件部署结构。这种结构主要描述物理系统的组成部分是如何组织在一起的。在实际应用中我们使用部署图来提示如何配置系统时部署效率较高,或哪些硬件配置可能对相应位置的组件带来效率瓶颈。

例如,在C/S架构的系统的简易部署图中包含三个节点,分别代表客户端(客户端)、服务器(服务器)和数据库服务器 (数据库服务器)其中,客户端和服务器之间通过协议通信,而服务器和数据库服务器之间通过协议进行通信。

在这里插入图片描述

部署图核心知识

请务必熟悉并掌握以下核心知识点。

节点

节点(node)是运行时的物理对象,代表一个计算资源。所谓计算资源,即在运行过程中进行大量的操作和运算并且需要一定的存储空间。在设计软件时我们考虑那些对计算有用的硬件资源,它们通常就是节点。

UML 图中的节点被表示为一个长方体并包含节点的名字。

在这里插入图片描述

连接

部署图的节点之间使用关联关系来表示节点之间的通信路径,称为连接(connection)在连接节点时,一般对关联关系不进行命名而是使用构造型来区分不同类型的通信路径或通信的实现方式。通常情况下采用<< Ethernet>><< TCP/IP>>和<< HTTP>等能表明通信协议或网络类型的内容。

例如,节点之间的关联关系就可以表示在主机(Host)与客户机(Client)之间使用TCP/IP 协议进行通信。

在这里插入图片描述

航空购票系统部署图

在此,介绍航空购票系统的部署图。

添加节点

根据系统情境可以分析出该系统应该包括四个节点,它们分别是客户端、管理员端、服务器端以及数据库服务器端。

与创建用例图类似,请在Model中创建部署图;图示如下:

在这里插入图片描述

点击确定后,图示如下:

在这里插入图片描述

选中部署图图,右键单击选择添加图,再选择UML Structural和Deployment;图示如下:

在这里插入图片描述
点击确定后,图示如下:

在这里插入图片描述

请将工具箱中的Node拖动至绘图区并设置其名称为客户端;图示如下:

在这里插入图片描述
点击确定后,图示如下:

在这里插入图片描述
类似地,在绘图去添加另外三个节点Web服务器端、数据库服务器端、管理员端;图示如下:

在这里插入图片描述

添加连接

在确定好系统的节点之后,我们将需要通信的节点连接起来。在此系统中,用户端与管理员端都直接与服务器端通信以执行系统逻辑,程序系统服务器与数据库管理系统之间进行通信以进行数据库的查询与更新操作。此外,对每个连接附上合适的构造型来表示通信方式。

首先,利用工具箱中Deployment Relationships中的Associate连接客户端与Web服务器端;图示如下:

在这里插入图片描述

双击连接线,在构造型中填入HTTP;图示如下:

在这里插入图片描述

点击确定后,图示如下:

在这里插入图片描述

类似地,添加管理员端与Web服务器端的连接;图示如下:

在这里插入图片描述

类似地,添加Web服务器端与数据库服务器端的的连接,该连接的构造型为ADO(ActiveX data Object);图示如下:

在这里插入图片描述
至此,我们完成了航空购票系统部署图的绘制。

相关文章:

UML建模图文详解教程08——部署图

版权声明 本文原创作者&#xff1a;谷哥的小弟作者博客地址&#xff1a;http://blog.csdn.net/lfdfhl本文参考资料&#xff1a;《UML面向对象分析、建模与设计&#xff08;第2版&#xff09;》吕云翔&#xff0c;赵天宇 著 部署图概述 部署图(deployment diagram)也被译作配置…...

发布鸿蒙的第一个java应用

1.下载和安装华为自己的app开发软件DevEco Studio HUAWEI DevEco Studio和SDK下载和升级 | HarmonyOS开发者 2.打开IDE新建工程&#xff08;当前用的IDEA 3.1.1 Release&#xff09; 选择第一个&#xff0c;其他的默认只能用(API9)版本&#xff0c;搞了半天才发现8&#xff…...

【C++干货铺】优先队列 | 仿函数

个人主页点击直达&#xff1a;小白不是程序媛 C系列专栏&#xff1a;C干货铺 代码仓库&#xff1a;Gitee 目录 优先队列&#xff08;priority_queue &#xff09;的介绍和使用 priority_queue的介绍 priority_queue的使用 大堆 小堆 priority_queue的模拟实现 仿…...

突破技术障碍:软件工程师如何应对项目中的难题?

在软件开发项目中&#xff0c;工程师常常会遇到各种技术难题。这些难题可能涉及到复杂的算法、不兼容的系统、难以预见的软件行为&#xff0c;或者其他许多方面。 以下是一些策略和方法&#xff0c;可以帮助软件工程师有效地应对这些挑战&#xff1a; 1、理解问题&#xff1a;…...

Linux(7):Vim 程序编辑器

vi 基本上 vi 共分为三种模式&#xff0c;分别是【一般指令模式】、【编辑模式】与【指令列命令模式】。 这三种模式的作用分别是&#xff1a; 一般指令模式(command mode) 以 vi 打开一个文件就直接进入一般指令模式了(这是默认的模式&#xff0c;也简称为一般模式)。在这个模…...

windows搭建gitlab教程

1.安装gitlab 说明&#xff1a;由于公司都是windows服务器&#xff0c;这里安装以windows为例&#xff0c;先安装一个虚拟机&#xff0c;然后安装一个docker&#xff08;前提条件&#xff09; 1.1搜索镜像 docker search gitlab #搜索所有的docker search gitlab-ce-zh #搜索…...

力扣:单调栈算法思路题

单调栈分为单调递增栈和单调递减栈&#xff0c;通过使用单调栈我们可以访问到最近一个比它大&#xff08;小&#xff09;的元素。 &#x1f34a; 单调递增栈&#xff1a;单调递增栈就是从栈底到栈顶数据是依次递增&#xff0c;通常是寻找某方向第一个比它小的元素。 &#x1f…...

11 月 25 日 ROS 学习笔记——3D 建模与仿真

文章目录 前言一、在 ROS 中自定义机器人的3D模型1. 在 rviz 里查看3D模型2. xacro 二、Gazebo1. urdf 集成 gazebo2. 综合应用1). 运动控制及里程计2). 雷达仿真3). 摄像头信息仿真4). kinect 深度相机仿真5). 点云 前言 本文为11 月 25 日 ROS 学习笔记——3D 建模与仿真&am…...

MidJourney笔记(3)-Prompts

MidJourney的Prompts介绍 MidJourney的Prompts是MidJourney的核心之一,这也是我们后续使用MidJourney过程中最重要的工作内容,根据生成的图片,不断的优化我们的Prompts内容。 那Prompts的中文意思是提示的意思。 Prompts的提示语有很多,最基础的用法就是: /imagine prompt…...

贪心 D. Least Cost Bracket Sequence

Problem - D - Codeforces 题目大意&#xff1a;给一个只包含(&#xff0c;)&#xff0c;?三个字符的字符串。每个?可以转为(或者)&#xff0c;对于第 i i i个?转为(需要花费 a i a_i ai​&#xff0c;转为)需要花费 b i b_i bi​。现在问能否让该字符串转为合法的括号匹配…...

iOS APP包分析工具 | 京东云技术团队

介绍 分享一款用于分析iOSipa包的脚本工具&#xff0c;使用此工具可以自动扫描发现可修复的包体积问题&#xff0c;同时可以生成包体积数据用于查看。这块工具我们团队内部已经使用很长一段时间&#xff0c;希望可以帮助到更多的开发同学更加效率的优化包体积问题。 工具下载…...

在 VSCode 中使用 GDB 进行 C/C++ 程序调试(图文版)

(꒪ꇴ꒪ )&#xff0c;Hello我是祐言QAQ我的博客主页&#xff1a;C/C语言&#xff0c;数据结构&#xff0c;Linux基础&#xff0c;ARM开发板&#xff0c;网络编程等领域UP&#x1f30d;快上&#x1f698;&#xff0c;一起学习&#xff0c;让我们成为一个强大的攻城狮&#xff0…...

任意文件读取漏洞理解

任意文件读取漏洞理解 1. 漏洞描述&#xff1a; 任意文件读取漏洞是指攻击者可以利用漏洞读取系统上的任意文件&#xff0c;包括敏感信息的配置文件、用户数据甚至系统文件&#xff0c;从而获取未经授权的访问权限。 2. 漏洞原理&#xff1a; 这种漏洞通常是由程序处理用户输入…...

linux 安装yum

问题1&#xff1a;File "/usr/libexec/urlgrabber-ext-down", line 28 except OSError, e: ^ 问题2&#xff1a;yum File "/usr/bin/yum", line 30 except KeyboardInterrupt, e: ^ vim /usr/…...

数学启发式

学习资料&#xff1a; 优化求解器 | Gurobi 数学启发式算法&#xff1a;参数类型与案例实现 数学启发式算法 | 可行性泵 (Feasibility Pump)算法精讲&#xff1a;一份让您满意的【理论介绍编程实现数值实验】学习笔记(PythonGurobi实现) 大佬到底是大佬&#xff01;这些资料太…...

Win10/Win11 使用Wsl的Ubuntu 子系统搭建CGO环境,相当于Ubuntu下开发。GO环境CGO搭建,支持交叉编译

背景&#xff1a; 之前是使用Mac 开发&#xff0c;最近切换到win11下面。发现使用cgo编译有问题。 下面记载了我的使用方法。 环境&#xff1a; win11&#xff08;win10理论一样&#xff09; win11 安装了wsl2的环境&#xff0c;并且安装了ubuntu系统。 在win11 上面安装了g…...

CSS新特性(2-2)

CSS新特性&#xff08;2-2&#xff09; 前言box相关box-shadow background背景rgba颜色与透明度transform:rotate(Xdeg) 2D旋转transform:tranlate 平移 前言 本文继续讲解CSS3其他的新特性&#xff0c;想看之前新特性点击这里&#xff0c;那么好本文正式开始。 box相关 box…...

为什么,word文件在只读模式下,仍然能编辑?

Word文档设置了只读模式&#xff0c;是可以编辑的&#xff0c;但是当我们进行保存的时候就会发现&#xff0c;word提示需要重命名并选择新路径才能够保存。 这种操作&#xff0c;即使可以编辑文字&#xff0c;但是原文件是不会受到影响的&#xff0c;编辑之后的word文件会保存到…...

29 - 装饰器模式:如何优化电商系统中复杂的商品价格策略?

开始今天的学习之前&#xff0c;我想先请你思考一个问题。假设现在有这样一个需求&#xff0c;让你设计一个装修功能&#xff0c;用户可以动态选择不同的装修功能来装饰自己的房子。例如&#xff0c;水电装修、天花板以及粉刷墙等属于基本功能&#xff0c;而设计窗帘装饰窗户、…...

逆矩阵相关性质与例题

1.方阵的行列式&#xff1a;就是将方阵中的每一个元素转换至行列式中。 1.性质一&#xff1a;转置方阵的行列式等于转置前的行列式。&#xff08;对标性质&#xff1a;行列式与它的转置行列式相等&#xff09; 2.性质二&#xff1a;|ka||a|*k的n次方&#xff0c;n为方阵阶数。 …...

电磁波极化类型快速识别指南:从线极化到圆极化的实战判断技巧

电磁波极化类型快速识别指南&#xff1a;从线极化到圆极化的实战判断技巧 在无线通信和雷达系统的调试现场&#xff0c;工程师们常会遇到这样的困境&#xff1a;手持频谱仪却难以判断天线发射的究竟是水平极化波还是右旋圆极化波。去年参与某卫星地面站项目时&#xff0c;我们就…...

FanControl终极指南:5分钟掌握Windows风扇控制软件,打造静音高效电脑系统

FanControl终极指南&#xff1a;5分钟掌握Windows风扇控制软件&#xff0c;打造静音高效电脑系统 【免费下载链接】FanControl.Releases This is the release repository for Fan Control, a highly customizable fan controlling software for Windows. 项目地址: https://g…...

告别转译 拥抱丝滑:M1/M2 Mac原生安装MATLAB 2022b实战指南

1. 为什么你需要原生版MATLAB 2022b&#xff1f; 如果你正在使用M1/M2芯片的MacBook&#xff0c;却还在忍受转译版MATLAB的卡顿&#xff0c;那这篇文章就是为你准备的。我亲身经历过从Intel转译版切换到原生版的整个过程&#xff0c;那种从"幻灯片"到"德芙般丝…...

Keil5库文件打包避坑指南:为什么你的Lib文件宏定义无法修改?

Keil5库文件打包避坑指南&#xff1a;为什么你的Lib文件宏定义无法修改&#xff1f; 当你花费数小时将精心编写的代码打包成Keil5库文件&#xff08;.lib&#xff09;&#xff0c;却发现头文件中的宏定义修改完全无效时&#xff0c;那种挫败感每个嵌入式开发者都深有体会。这看…...

FPGA图像处理入门:手把手教你用FIFO实现3x3滑动窗口(附Verilog代码)

FPGA图像处理实战&#xff1a;从串行像素到3x3滑动窗口的工程化实现 第一次接触FPGA图像处理时&#xff0c;最让我困惑的不是算法本身&#xff0c;而是如何把"一个时钟一个像素"的串行数据流&#xff0c;变成算法需要的3x3并行数据窗口。这就像试图用吸管喝汤——明明…...

Qt6实战:用setGeometry和事件过滤器,实现一个可拖拽调整大小的自定义控件(附完整源码)

Qt6实战&#xff1a;打造可拖拽调整大小的Photoshop风格浮动面板 在图形界面开发中&#xff0c;能够自由拖拽和调整大小的浮动面板是专业级应用的标配功能。就像Photoshop的工具箱那样&#xff0c;用户可以随心所欲地摆放工作区组件。本文将带你用Qt6实现这样一个工业级交互控件…...

别再乱选路由策略了!XXL-Job 2.3.0实战:从FIRST到分片广播,手把手教你根据业务场景选对策略

XXL-Job路由策略深度指南&#xff1a;如何根据业务场景做出最优选择 在分布式任务调度领域&#xff0c;路由策略的选择往往决定了系统的可靠性和效率。XXL-Job作为业界广泛采用的分布式任务调度平台&#xff0c;提供了多达10种路由策略&#xff0c;但这也让许多开发者陷入了&qu…...

避坑指南:LabVIEW 2020 Modbus TCP通信中那些让人头疼的‘超时’与‘断线重连’问题

LabVIEW 2020 Modbus TCP工业级通信稳定性实战&#xff1a;从超时处理到断线自愈的完整方案 在工业自动化领域&#xff0c;Modbus TCP协议因其简单可靠的特点被广泛应用。然而当LabVIEW开发的客户端程序从实验室走向真实工业现场时&#xff0c;网络波动、设备重启等意外情况常常…...

3步解密B站抢票神器:为什么别人总比你快0.1秒?

3步解密B站抢票神器&#xff1a;为什么别人总比你快0.1秒&#xff1f; 【免费下载链接】biliTickerBuy b站会员购购票辅助工具 项目地址: https://gitcode.com/GitHub_Trending/bi/biliTickerBuy 你是否曾经在B站会员购抢票时&#xff0c;眼睁睁看着心仪的演唱会门票在几…...

别再只盯着CPU和显卡了!聊聊主板上的“大管家”Super I/O芯片

别再只盯着CPU和显卡了&#xff01;聊聊主板上的“大管家”Super I/O芯片 当你兴奋地拆开新买的CPU和显卡&#xff0c;准备组装一台性能怪兽时&#xff0c;是否曾注意到主板上那个不起眼的小芯片&#xff1f;它可能只有指甲盖大小&#xff0c;却默默掌控着键盘鼠标响应、风扇转…...