部署图是用来对面向对象系统的物理方面建模的图。部署图展示运行时进行处理的节点(Node)和在节点上运行的制品(Artifact)的配置。“节点”是一组运行的资源,如计算机、设备或存储器。“制品”是软件开发或部署及使用产生的软件文件,如可执行程序、数据库表、文档等。简单说部署图就是描述了系统中软件在硬件上的配置关系。如果开发的系统所有软件都运行在一台计算机上,就不需要部署图。部署图应用于以下几种情况:
(1)嵌入式系统建模:嵌入式系统是软件密集的硬件集合,硬件和系统之外的物理世界相互作用。嵌入式系统包括控制设备(如电动机、传动装置和显示器等)的软件,又包括接收外部信号(如传感器输入、运行和温度的变化)的控制软件。可以用部署图对组成嵌入式系统的设备和嵌入式软件进行建模。
(2)客户机/服务器系统建模:客户机/服务器系统是一种常用的架构,它注重将系统的用户界面(在客户机上)和系统的持久化数据(在服务器上)清晰的分离开。客户机/服务器系统是分布式系统的一个极端,它要求对客户/服务器之间的网络连接以及系统中的软件制品在节点上的物理分布做出决策。可以用部署图对这种客户机/服务器系统的拓扑结构建模。
(3)对全分布式系统建模:分布式系统的另外一个极端是广泛的分布式系统。它通常由多级服务器组成。这种系统中一般存在着多种版本的软件制品,其中一些版本的软件制品甚至还可以在节点间迁移。精心构造这样的系统,需要对系统拓扑结构的不断变化做出决策。可以用部署图可视化系统的当前拓扑结构及制品的分布情况,并推断拓扑结构变化的影响。