0%

什么是部署图

该篇文章是UML知识的扩充。

什么是部署图

源文链接:https://www.visual-paradigm.com/guide/uml-unified-modeling-language/what-is-deployment-diagram/

UML部署图是现实运行时处理节点的配置以及在它们上的组件的图。部署图是一种结构图,用于面向对象系统的物理方面进行建模。它们通常用于对系统的静态部署视图(硬件拓扑)进行建模。

img

一、何时使用部署图

  • 新添加的系统需要与哪些现有系统进行交互或集成?
  • 系统需要有多健壮(例如:系统故障时的冗余硬件)?
  • 谁将链接到系统或与系统交互,以及它们将如何做到这一点?
  • 系统将使用哪些中间件,包括操作系统和通信方法和协议?
  • 用户甲肮直接与哪些硬件和软件进行交互(PC、网络计算机、浏览器等)?
  • 部署后您将如何监控系统?
  • 系统需要有多安全(需要防火墙、物理安全硬件等)?

二、部署图的目的

  • 它们显示了运行时系统的结构
  • 它们捕获将用于实现系统的硬件以及不同硬件项之间的链接。
  • 它们对物理硬件元素和它们之间的通信路径进行建模。
  • 它们可用于规划系统的架构。
  • 它们对于记录软件组件或节点的部署也很有用。

三、部署图概览

部署图对于可视化、指定和记录嵌入式、客户端/服务器和分布式系统以及通过正向和逆向工程管理可执行系统非常重要。

部署图只是一种特殊的类图,它关注系统的节点。从图形上看,部署图时顶点和弧的集合。部署图通常包含一下几个部分:

3.1 节点

  • 3D框代表一个节点,无论是软件还是硬件。
  • 硬件节点可以用<<stereotype>>表示。
  • 节点之间的连接用一条线表示,可选<<stereotype>>
  • 节点可以驻留在节点内。

3.2 其他符号

  • 依赖关系
  • 关联关系
  • 也可能包含注释和约束

img

四、建模

4.1 为嵌入式系统建模的步骤

  1. 识别系统特有的设备和节点。
  2. 通过使用UML的可扩展性机制来定义具有适当图标的系统特定原型,提供视觉提示,特别是对于不寻常的设备。至少,您需要区分处理器(包含软件组件)和设备(在抽象级别,不直接包含软件)。
  3. 在部署图中对这些处理器和设备之间的关系进行建模。同样,指定系统部署图中的组件与系统部署图中的节点之间的关系。
  4. 如有必要,通过使用更详细的部署图对其结构进行建模来扩展任何只能设备。

img

4.2 为客户端/服务器系统建模的步骤

  1. 识别代表系统客户端和服务器处理器的节点。
  2. 突出显示与系统行为密切相关的那些设备。例如,您需要对特殊设备(例如信用卡阅读器、标记阅读器和显示器以外的显示设备)进行建模。因为它们在系统硬件拓扑中的位置可能在体系结构上很重要。
  3. 通过固定格式为这些处理器和设备提供视觉提示。
  4. 在部署图中对这些节点的拓扑进行建模。同样,指定系统部署图中的组件与系统部署图中的节点之间的关系。

该示例显示了人力资源系统的拓扑结构,该系统遵循经典的客户端/服务器架构。

img

TCP/IP 客户端/服务器示例

img

4.3 为分布式系统建模

  1. 识别系统的设备和处理器,就像更简单的客户端/服务器系统一样。
  2. 如果您需要推理系统网络的性能或网络更改的影响,请务必将这些通信设备建模到足以进行这些评估的详细程度。
  3. 密切注意节点的逻辑分组,你可以使用包指定。
  4. 使用部署图对这些设备和处理器进行建模。在可能的情况下,使用通过遍历系统网络来发现系统拓扑的工具。
  5. 如果您需要关注系统的动态,请引入用例图来指定您感兴趣的行为类型,并使用交互图扩展这些用例。
  6. 在对完全分布式系统进行建模时,通常会将网络本身具体化为节点。即Internet、LAN、WAN作为节点。

该示例显示了一个完全分布式系统的拓扑。

img

4.4 企业分布式系统

img

4.5 部署规划清单

当您为您的公司起草部署计划时,您可能会发现您不知道从哪里开始或应该关注什么。以下清单可能会为您提供一些有关规划部署的想法:

  • 您的系统将如何安装?
    1. 谁来安装它?安装需要多长时间?
    2. 哪里安装可能失败?
    3. 如果安装失败如何退出?需要多长时间才能退出?
    4. 您的安装窗口期是多少(您可以在什么时间段内安装系统)?
    5. 安装前需要哪些备份?
    6. 您需要进行数据转换吗?
    7. 您怎么知道安装成功了?
  • 如果不同版本的系统将同时投入生产,您将如何解决差异?
  • 您需要以什么顺序部署到哪些物理站点?
    1. 您将如何培训您的维护和运营人员?
    2. 您是否需要部署生产测试系统,以便维护人员使用自己的环境来模拟问题?
  • 您将如何培训您的用户?
    1. 您的用户、维护和操作人员需要哪些文档、格式和语言?
    2. 如何部署文档更新?
-------- The End Thanks For Reading --------