Skip to content
难度基础(★)
建议时长45分钟

10.4.9 构件图

构件图描述软件系统的实现结构:系统由哪些构件组成,构件提供哪些接口、需要哪些接口,构件之间如何依赖。

课程里提醒:构件可以理解为比类更大的软件单元。类是较细粒度的设计元素,构件更接近模块、库、服务、可部署单元。

构件图表达什么

关注点说明
构件系统中相对独立、可替换、可部署的软件组成部分
接口构件向外提供或向外要求的服务边界
依赖构件之间的使用关系
静态实现结构系统实现层面的组成和连接方式

构件图不是业务流程图,也不是物理部署图。它回答的是:“软件由哪些可组装部件构成,这些部件之间怎样协作?”

构件的两种画法

课程提到两种常见标记:

画法特点识图方式
大图标画法构件主体外带两个小矩形标识看到矩形旁的小构件标记
小图标画法在矩形内部标注构件图标看到矩形角落或内部的构件符号

考试多数不要求你画得很标准,但要求你看到构件标记能认出“这是构件图/组件图”。

供接口与需接口

构件之间通过接口连接。接口常分为供接口和需接口。

接口含义图形记忆语义
供接口构件对外提供的服务凸出的圆形接口“我能提供这个能力”
需接口构件需要别人提供的服务凹入的半圆接口“我需要这个能力”

可以把供接口想成“钥匙”,需接口想成“锁孔”:钥匙提供能力,锁孔需要能力。

mermaid
flowchart LR
  Order["订单构件"]
  Pay["支付构件"]
  Stock["库存构件"]
  Order -- "需接口: 支付服务" --> Pay
  Order -- "需接口: 库存服务" --> Stock

真实 UML 图里供接口和需接口会用棒棒糖/插口符号表示,文本笔记中重点掌握它们的语义:谁提供,谁需要。

构件图与类图、部署图的区别

对比项类图构件图部署图
粒度类、接口、属性、方法构件、接口、依赖节点、构件、通信路径
关注层次逻辑设计结构软件实现组成物理部署结构
关键词类、属性、方法、继承构件、供接口、需接口、依赖服务器、PC、节点、TCP/IP
是否涉及硬件不强调不强调强调

真题常把“构件之间的组织和依赖关系”作为构件图定义;把“面向对象系统的物理模型”作为部署图定义。

考试识图提示

  • 看到构件小图标、供接口、需接口,判断构件图。
  • “组件图”和“构件图”通常是翻译差异,可视为同一类考点。
  • 看到节点、服务器、PC、物理部署,不要选构件图,要选部署图。
  • 看到“一组对象、接口、协作及其关系”,是类图。

例题

单选
描述软件构件及其接口依赖关系,适合使用:
单选
用于展示组件之间的组织和依赖关系的 UML 图是:

自查要点

  1. 为什么说构件通常比类粒度更大?
  2. 供接口和需接口分别表示什么?
  3. 构件图和部署图为什么容易混淆?
  4. 真题中看到“组件之间的组织和依赖关系”应选什么图?