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

10.4.2 UML概念

UML 的基本组成可以概括为三类:事物、关系、图。

这句话看似抽象,但它对应着建模的完整语法:事物是模型里的“名词”,关系是事物之间的“连接”,图则是把事物和关系组织成可读视图。

UML由什么构成

组成可以理解为典型内容考试关注点
事物模型中的基本元素类、接口、协作、用例、活动类、构件、节点、包、注释看到“类、接口、节点”等词,要知道它们是 UML 元素
关系元素之间的联系依赖、关联、泛化、实现、聚合、组合、包含、扩展重点考关系含义、方向和图形符号
一个角度下的系统视图类图、用例图、顺序图、状态图、活动图、部署图等最常考“识图”和“图的用途”

UML 的图不是随便画出来的。它是“事物 + 关系”的组合。例如类图里有类、接口、属性、方法,以及这些类之间的关联、泛化、实现等关系。

UML中的事物

课程把事物分成几类理解即可:

事物类型含义例子
结构事物系统静态结构中的元素类、接口、协作、用例、活动类、构件、节点
行为事物系统运行过程中的动态行为交互、状态机
分组事物用来组织模型元素
注释事物对模型进行解释说明注释

这里最容易出现在题目里的,是“节点”。节点通常属于部署图语境,表示具有计算资源的物理或执行环境,如服务器、客户端、设备等。

常见UML图的准确含义

类图与对象图

类图描述一组类、接口、协作及其关系,是面向对象建模中最常用的静态视图。

对象图与类图结构相似,但关注某一时刻的对象实例。对象图里常出现 对象名:类名 的形式,它表达的是“这个对象属于哪个类”。

mermaid
classDiagram
  class Course {
    +title
    +price
    +publish()
  }
  class Student {
    +name
    +study()
  }
  Student "0..*" --> "0..*" Course : enrolls

如果把上面的 CourseStudent 换成 javaCourse:Coursezhangsan:Student 这样的实例,就更接近对象图。对象图不是类设计的总蓝图,而是某一时刻系统对象关系的快照。

用例图

用例图包含参与者、用例以及它们之间的关系。它从外部用户的视角描述“系统提供哪些功能”,不负责描述功能内部如何一步步执行。

考试中看到小人和椭圆,通常就在用例图范围内思考。小人是参与者,椭圆是用例。

顺序图与通信图

顺序图和通信图都属于交互图,都描述对象之间通过消息协作。

对比项顺序图/序列图通信图/协作图
关注点消息发生的时间顺序对象之间的组织结构和连接关系
典型线索生命线、从上到下的消息对象连接、消息编号
适合回答先调用谁,再调用谁哪些对象参与协作,它们怎样连接

如果题干同时出现“交互”和“时间顺序”,优先选顺序图;如果强调“组织结构”“通信关系”,优先选通信图。

状态图与活动图

状态图描述状态机:对象处在某个状态,受到事件触发后迁移到另一个状态。它适合描述订单、设备、线程、连接等有明显生命周期的对象。

活动图更像增强版流程图:它描述活动之间的控制流,可以表达分支、循环、并发。课程中特别强调,活动图能够表达并行行为。

对比项状态图活动图
核心元素状态、迁移、事件活动、控制流、分支、并发
关注对象某个对象的生命周期某个业务或算法过程
题干线索“状态变化”“状态机”“事件触发”“流程”“活动”“并行分支”

构件图、部署图、包图

构件图描述一组构件及其依赖关系。构件可以理解为比类更大的软件单元,例如模块、库、服务、可部署组件。

部署图描述软件和硬件之间的映射。它会出现节点、服务器、PC、设备等物理或执行环境,是 UML 图中最典型地涉及物理部署的一类图。

包图描述如何把类或其他模型元素组织成包,并体现包之间的依赖关系。它解决的是模型组织问题,而不是业务流程问题。

图的识别规则

看到的画面或文字判断方向
矩形分三层,上层类名,中间属性,下层方法类图
对象名:类名,强调某一时刻对象图
小人、椭圆、include、extend用例图
竖直生命线、横向消息、时间从上到下顺序图
对象之间连线,消息带编号通信图
圆角矩形活动、菱形分支、粗横线并发活动图
状态节点、事件触发、迁移箭头状态图
组件/构件、接口、依赖构件图
服务器、PC、节点、硬件、物理映射部署图
文件夹形状、包之间依赖包图

为什么同一系统需要多种图

因为软件系统有多个“投影”。类图像结构图,告诉你系统由哪些概念组成;顺序图像调用剧本,告诉你一次业务如何发生;部署图像安装图,告诉你软件跑在哪里。只用一种图会丢失大量信息。

在下午题中,题目经常先给需求叙述,再让你补类图或用例图。此时不要只找名词,还要判断需求里的动词、条件、生命周期和角色边界分别应该落在哪一种 UML 元素上。

例题

单选
UML 通常指:
单选
关于类图和对象图,下列说法正确的是:

自查要点

  1. UML 中“事物、关系、图”分别对应什么?
  2. 对象图为什么被称为某一时刻的快照?
  3. 顺序图和通信图都描述交互,为什么考试仍要区分?
  4. 部署图与构件图的关键差异是什么?