组件图和部署图是统一建模语言(UML)中用于建模软件系统不同方面的两种图表。它们具有不同的用途,并关注系统设计与实现的不同方面。
-
组件图
- 目的:组件图主要用于以组件及其关系的形式表示软件系统的高层结构。它们关注软件系统的组织结构和模块化。
- 元素:组件图包括组件、接口、连接器和依赖关系。
- 组件:这些代表系统的主构建块或模块。它们可以是物理或逻辑实体,如类、包,甚至整个子系统。
- 接口:这些定义了组件之间交互时所暴露的契约或API。
- 连接器:连接器展示组件之间如何交互或通信。示例包括关联、依赖关系和聚合。
- 用例:组件图在设计阶段用于展示系统的架构、组件之间的关系及其接口。它们有助于理解系统的结构及其组织方式。

部署图
-
- 目的:部署图关注软件组件的物理部署及其与硬件和其他软件元素的关系。它们用于建模系统的部署架构,包括服务器、节点和通信路径。
- 元素:部署图包括节点、工件和关联关系。
- 节点:这些代表硬件或软件处理单元,如服务器、工作站,甚至路由器或打印机等设备。
- 工件:工件是实际部署在节点上的软件组件或文件,如可执行文件、库或数据库。
- 关联关系:关联关系展示节点与工件之间的关系,表明哪些组件被部署在哪些节点上。
- 用例:部署图通常在实施阶段和系统部署阶段使用。它们有助于规划和可视化软件组件在物理基础设施(包括服务器、网络和其他资源)上的分布情况。

组件图与部署图
下表突出了UML中组件图与部署图的关键差异及其用途。组件图关注软件组件的逻辑结构与组织,而部署图则关注这些组件在硬件节点上的物理部署。
| 方面 | 组件图 | 部署图 |
|---|---|---|
| 目的 | 表示软件系统的高层结构 | 建模软件组件的物理部署 |
| 重点 | 组件的逻辑组织和关系 | 在硬件和节点上的物理部署 |
| 主要元素 | – 组件(例如:类、包、子系统) | – 节点(例如:服务器、工作站) |
| – 接口(例如:合约、API) | – 工件(例如:文件、数据库) | |
| – 连接器(例如:关联、依赖) | – 关联(表示部署关系) | |
| 用例 | – 设计阶段:系统架构与结构 | – 实施阶段:部署规划 |
| – 描述组件之间的关系和接口 | – 可视化组件在硬件上的分布 | |
| 抽象层次 | 高层次抽象 | 低层次抽象 |
| 符号表示 | 组件、接口、连接器 | 节点、工件、关联 |
| 表示的关系 | 依赖、关联、聚合等 | 部署关联,组件到节点的映射 |
| 示例场景 | 表示软件模块及其 | 可视化网络服务器软件 |
| 在银行应用程序中的交互 | 组件在物理服务器上的部署 |
总结
组件图关注系统内软件组件的高层结构和组织,而部署图则关注这些组件如何在硬件或节点上进行物理部署。这两种图在软件开发的不同阶段都具有价值,并为系统设计和架构提供了不同的视角。











