部署图:UML 教程与示例

什么是部署图?

部署图是一种指定软件系统执行的物理硬件的图。它还确定软件如何在底层硬件上部署。它将系统的软件组件映射到将要执行它的设备。

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

软件系统通过各种 **制品(artifacts)** 来体现,然后将它们映射到将要执行软件的执行环境,例如 **节点(nodes)**。部署图涉及许多节点;因此,它们之间的关系通过通信路径来表示。

部署图有两种形式。

  • 描述符形式
  • 它包含节点、节点之间的关系以及制品。
  • 实例形式
  • 它包含节点实例、节点实例之间的关系以及制品实例。
  • 带下划线的名称表示节点实例。

部署图的目的

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

部署图符号和表示法

Deployment Diagram Notations
部署图表示法

部署图包含以下表示法

  1. 节点
  2. 组件
  3. 构件
  4. 接口

什么是制品?

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

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

制品被部署在节点上。它可以为任何 UML 元素提供物理体现。通常,它们体现组件。制品用 **<>** 风格(stereotype)标记,并且它可能在右上角有一个制品图标。

每个制品在其规范中都有一个文件名,指示该制品的物理位置。一个制品可以包含另一个制品。它们可能相互依赖。

制品有其属性和操纵它们的行为。

通常,制品在统一建模语言中的表示如下:

Artifact
制品

制品实例

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

通常,制品实例在统一建模语言中的表示如下:

Artifact Instance
制品实例

什么是节点?

节点是制品为执行而部署的计算资源。节点是能够执行一个或多个制品的物理事物。节点的尺寸可能根据项目的大小而变化。

节点是描述代码执行和系统各实体之间通信的重要 UML 元素。它由一个内部写有节点名称的 3D 方框表示。节点有助于传达用于部署软件的硬件。

节点之间的关联代表通信路径,信息可以通过该路径在任何方向上交换。

通常,节点有两种风格,如下所示:

  • << device >>它是一个代表能够执行计算的物理机的节点。设备可以是路由器或服务器 PC。它使用带有 <<device>> 风格的节点表示。

    在 UML 模型中,您也可以将一个或多个设备嵌套在一起。

  • 以下是在 UML 中表示设备的图示:

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

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

Execution Environment Node
执行环境节点

如何绘制部署图?

部署图可视化了整个系统的拓扑视图。它代表了系统的部署。

部署图由节点组成,这些节点描述了系统中使用的物理设备。在这些节点上部署了制品。我们还可以有节点实例,制品实例将在其上实现。

系统的节点和制品参与系统的最终执行。

部署图在管理过程中起着关键作用,并且必须满足以下参数:

  • 高性能
  • 可维护性
  • 可扩展性
  • 可移植性
  • 易于理解

节点和制品是部署的关键要素。在实际绘制部署图之前,必须识别所有节点以及系统中每个节点之间的关系。

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

如果已知所有节点、关系和制品,那么开发部署图就很容易了。

部署图示例

以下部署图代表了浏览器中 HTML5 视频播放器的运行情况

Deployment Diagram
部署图

何时使用部署图?

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

为了使软件高效、快速地运行,硬件也必须质量好。它必须设计得高效,以便软件能够正常运行并及时产生准确的结果。

部署图可用于:

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

摘要

  • 部署图将设计中创建的软件架构映射到执行它的物理系统架构。
  • 它将系统的软件组件映射到将要执行它们的硬件。
  • 部署图可视化了整个系统的拓扑视图。
  • 节点和制品是部署的关键要素。
  • 系统的节点和制品参与系统的最终执行。