首页/开发/系统分析与架构设计速查/组合结构图(Composite Structure Diagram)
需求分析与建模61 条

组合结构图(Composite Structure Diagram)

展示类或组件内部由哪些部件构成、端口如何连接,把内部装配关系显式化,适合表达复杂组件的内聚结构。

组合结构图是什么

组合结构图展示类或组件内部由哪些部件构成、端口如何连接,把内部装配关系显式化。它聚焦单个类或组件的内部结构:部件表示内部组成元素并可标注多重性,端口表示内外交互的接入点,连接器表示部件之间或部件与端口之间的连接与委托。当类图上的关联线太多、看不清内部装配时,它能把视角收拢到一个类内部。

端口与连接器怎么用

端口是交互位置,由接口定义契约,外部请求经委托端口转给内部部件,从而保持封装边界;连接器分装配与委托两类,装配表示部件之间的连接,委托表示外部端口与内部部件之间的转发。评审重点是内部部件有没有被绕过端口直接暴露:一旦外部可以直连内部部件,封装就形同虚设,任何内部调整都会穿透到调用方。

基本信息

核心元素部件、端口、连接器与协作,用于描述内部装配关系
部件内部组成单元,可标注多重性与类型
端口内外交互的接入点,由接口定义契约内容
连接器装配表示部件间连接,委托表示内外之间的转发
与组件图分工组件图看系统级装配,组合结构图看单个组件内部

核心元素

元素说明示例
部件内部组成单元,可标注多重性订单部件多实例
端口交互接入点,由接口定义支付端口实现支付网关接口
连接器部件或端口之间的连接与委托装配与委托两类
协作可复用的协同角色集合结算协作

典型使用场景

  • 复杂组件的内部装配关系需要显式表达时
  • 类图关联线过于密集,需要聚焦单个类的内部结构
  • 说明对外端口与内部部件之间的委托关系
  • 评审封装是否被绕过,检查外部是否可直连内部部件
先定外部接口边界,再拆分内部部件与端口;端口按职责与契约命名而不是按实现命名,接口是契约内容,端口是交互位置。
内部部件被外部直接使用时封装即失效:此后任何内部结构调整都会穿透到调用方,维护成本成倍上升。

易错点

  • 与组件图混用同一批元素且表示不一致,读者不知道以哪张图为准
  • 内部部件暴露给外部使用,封装被绕过,内部调整引发外部改动
  • 端口按实现细节命名,实现一改端口名就失效,契约失去稳定性
  • 只画部件不画连接器,装配关系仍然需要口头解释才能说明白
  • 多重性未标注,实例数量与生命周期在评审中反复争论

数据来源与参考

  • OMG UML 2.5.1 规范
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌