UML部署图示例

⚡ 智能摘要

部署图是一种 UML 图,它描述了软件系统运行所依赖的物理硬件,并将软件组件映射到相应的节点。它解释了部署图的用途、符号、组件、节点、绘制步骤以及一个实际示例。

  • 🖥️ 定义: 部署图将软件系统的各个组件映射到执行它们的物理硬件上。
  • 📦 伪像: 工件是部署到节点上的具体文件——可执行文件、DLL、脚本或文档。
  • 🔲 节点: 节点是一种计算资源,以 3D 方框表示,具有设备或执行环境构造型。
  • 🔗 沟通路径: 节点之间的关联代表信息交换的路径。
  • 🎯 用例: 管理员使用它来对网络拓扑、分布式系统以及正向/逆向工程进行建模。

部署图:UML教程及示例

什么是部署图?

部署图是一种用于指定软件系统运行所在物理硬件的图表。它还确定了软件如何在底层硬件上部署,并将系统的各个软件组件映射到将要运行它们的设备上。

部署图将设计时创建的软件架构映射到执行该软件的物理系统架构。在分布式系统中,它模拟了软件在物理节点上的分布。

软件系统通过各种方式体现 文物然后,它们会被映射到将要执行软件的执行环境,例如: 节点部署图中涉及许多节点;因此,它们之间的关系用通信路径来表示。

部署图有两种形式:

  • Descript或形式 – 它包含节点,以及节点与工件之间的关系。
  • 实例表单 它包含节点实例,以及节点实例和工件实例之间的关系。带下划线的名称表示节点实例。

部署图的目的

部署图的唯一目的是描述软件如何部署到硬件系统中。它可视化地展示了软件如何与硬件交互以执行完整的功能。它用于描述软件与硬件之间的交互,反之亦然。

部署图符号和符号

部署图符号

部署图符号

部署图由以下符号组成:

  1. 一个节点
  2. 组件
  3. 一件神器
  4. 一个接口

什么是工件?

工件代表与软件开发相关的具体现实世界实体的规范。您可以使用工件来描述软件开发过程中使用的框架或可执行文件。工件部署在节点上。最常见的工件如下:

  1. 源文件
  2. 可执行文件
  3. 数据库表
  4. 脚本
  5. DLL文件
  6. 用户手册或文档
  7. 输出文件

工件部署在节点上。它们可以为任何 UML 元素提供物理体现。通常,它们体现组件。工件使用构造型进行标记。 < >而且,它们的右上角可能有一个文物图标。

每个工件的规范中都有一个文件名,用于指示工件的物理位置。一个工件可以包含另一个工件。它们之间可能存在依赖关系。

人造物具有其自身的属性和行为,可以通过操纵这些属性和行为来改变它们。

一般来说,工件在统一建模语言中表示如下。

资讯

神器

工件实例

工件实例代表特定工件的一个实例。工件实例使用与工件相同的符号表示,只是名称带有下划线。 UML图 这样就能区分原始工件和实例。每个物理副本或文件都是一个唯一工件的实例。

一般来说,工件实例在统一建模语言中表示如下。

工件实例

工件实例

什么是节点?

节点是一种计算资源,工件部署在其上进行执行。节点是一个物理实体,可以执行一个或多个工件。节点的大小可能因项目规模而异。

节点是 UML 中的一个重要元素,它描述代码的执行以及系统中各个实体之间的通信。节点用一个三维方框表示,方框内写有节点名称。节点有助于描述用于部署软件的硬件。

节点之间的关联表示一条可向任意方向交换信息的通信路径。

一般来说,一个节点有如下两种构造型:

  • << 设备 >> – 这是一个代表能够执行计算的物理机器的节点。设备可以是路由器或服务器。它使用具有构造型 < 的节点表示。在 UML 模型中,您还可以将一个或多个设备相互嵌套。

以下是 UML 中设备的表示:

设备节点

设备节点

  • <<执行环境>> 它是一个代表软件运行环境的节点。例如: Java 应用程序在……中执行 Java 虚拟机(JVM)JVM 被认为是一种执行环境,用于…… Java 应用程序。我们可以将执行环境嵌套到设备节点中。您可以在单个设备节点中嵌套多个执行环境。

以下是 UML 中执行环境的表示:

执行环境节点

执行环境节点

如何画部署图?

部署图以可视化的方式展现整个系统的拓扑结构,它表示系统的部署方式。

部署图由描述系统内部使用的物理设备的节点组成。工件部署在这些节点上。我们还可以拥有要在其上实现工件实例的节点实例。

系统的节点和构件参与系统的最终执行。

部署图在管理过程中起着至关重要的作用,它必须满足以下参数:

  • 高效能
  • 可维护性
  • 可扩展性
  • 便携性
  • 容易理解

节点和工件是部署的基本元素。在实际绘制部署图之前,必须确定系统的所有节点以及每个节点之间的关系。

您必须了解系统的架构,无论应用程序是 Web 应用程序、云应用程序、桌面应用程序还是移动应用程序。所有这些都至关重要,并在部署图的开发过程中发挥着关键作用。

如果知道所有节点、关系和工件,那么开发部署图就变得很容易。

部署图示例

以下部署图展示了浏览器中 HTML5 视频播放器的工作原理:

部署图

部署图

何时使用部署图?

部署图主要由系统管理员、网络工程师等使用。这些图的唯一目的是描述软件如何部署到硬件系统中。它直观地展示了软件如何与硬件交互以执行完整的功能。

为了使软件高效、快速地运行,硬件也必须质量优良。硬件必须经过高效设计,才能使软件正常运行,并在短时间内产生准确的结果。

部署图可用于:

  1. 对系统的网络拓扑进行建模。
  2. 建模分布式系统和网络。
  3. 正向和逆向工程过程。

常见问题

是的。人工智能工具可以将服务器、环境和工件的纯文本描述转换为部署草图或图即代码。 Rev查看生成的节点和通信路径,因为人工智能可能会放错组件或遗漏约束。

人工智能可以扫描部署图,查找单点故障、冗余缺失或可扩展性不足等问题,并提出改进建议。这可以作为一种有益的辅助意见,但架构师仍应根据实际的性能和安全需求验证这些建议。

组件图展示了软件组件及其依赖关系,而部署图则展示了物理硬件节点以及工件如何部署到这些节点上。组件图侧重于结构;部署图侧重于物理布局。

流行的工具包括 Lucidchartdraw.io, Microsoft Visio, StarUML和 PlantUML类似文本工具 PlantUML 允许您将图表版本化为代码,而可视化编辑器提供拖放节点和工件形状,以便更快地创建草稿。

总结一下这篇文章: