6.5 UML 建模

2026-11-03 11:15:00上一篇 / 下一篇

本篇定位:UML(统一建模语言)是软工建模考点——9 年直接命中 4 题(2019 多89、2020 单27、2022 单26、2024 单32),2027 预测点名(类图/序列图/用例图)。考点:静态图(类/对象/包)vs 动态图(用例/序列/活动/状态)、用例视图=需求分析最重要模型、序列图=复杂交互。核心能力:静态动态分家 + 三张经典图(用例/序列/类)用途。 数据依据:01-真题/真题文本/ + 01-真题/考点汇总/ + 05-笔记/软件工程-模块总纲.md;答案以专业判断为准。 阅读提示:用例图衔接 6.4 需求分析;序列图表达交互(与 2.4 面向对象、8.3 建模思想呼应)。


一、考点定位(本章真题统计)

考点真题锚点频次考法
静态 vs 动态图2019 多891 年类/对象/包=静态;活动图=动态
用例视图2020 单271 年需求分析最重要模型
序列图2024 单321 年精确表达复杂交互
MVC2022 单26、2024 多832 年视图=用户界面;模型/视图/控制

命题规律:UML 题少但每年 1 题稳定,考"图↔用途"匹配。2027 预测 1 题:静态/动态图分类或序列图。核心能力:静态四兄弟(类/对象/包/组件)、动态五兄弟(用例/序列/活动/状态/协作)分家。


二、知识框架(先搭骨架)

UML(统一建模语言)= 标准化的建模语言(图形化描述系统)
├── 静态图(描述系统结构/静态特征,2019 多89)
│   ├── 类图:类及其关系(最核心)——属性/方法/关联/继承
│   ├── 对象图:某一时刻对象的快照
│   ├── 包图:包的层次结构
│   └── 组件图/部署图:物理组件/硬件部署
├── 动态图(描述系统行为/交互)
│   ├── 用例图:用户与系统的交互(从用户角度描述功能)
│   ├── 序列图(顺序图):对象间消息的时间顺序(2024 单32)
│   ├── 活动图:业务流程/算法流程
│   ├── 状态图:对象状态转换
│   └── 协作图:对象间交互的组织
├── 经典用途
│   ├── 用例视图=需求分析最重要模型(2020 单27)
│   ├── 序列图=精确表达复杂交互(2024 单32)
│   └── 类图=设计阶段核心(描述系统结构)
└── MVC(2022 单26、2024 多83)
    ├── Model 模型:业务数据与逻辑
    ├── View 视图:用户界面(2022 单26)
    └── Controller 控制:调度

一句话记忆:静态管结构(类/对象/包/组件)、动态管行为(用例/序列/活动/状态);需求分析看用例、复杂交互看序列、系统结构看类图。


三、考点详解

3.1 静态图 vs 动态图(2019 多89,必考)

2019 多89(选 ABD):下列属于 UML 静态图的是——类图、对象图、包图(选 A/B/D);活动图是动态图(C 错)。

类型图用途
静态图(结构)类图、对象图、包图、组件图、部署图描述系统结构(有哪些类/对象/组件)
动态图(行为)用例图、序列图、活动图、状态图、协作图描述系统行为(怎么交互/怎么流转)

口诀:类对包=静态;用序活状=动态。

3.2 用例图(2020 单27)

精确定义:用例图 = 从用户角度描述系统功能的图——参与者(Actor)+ 用例(Use Case)+ 关系。

2020 单27(选用例视图):UML 中最重要/最基本的需求分析模型是用例视图。

口诀:需求分析看用例(用户能做什么)。(6.4 章已详,此处衔接。)

3.3 序列图(2024 单32)

精确定义:序列图(顺序图)= 描述对象之间消息传递的时间顺序的图——展示"谁在什么时间调用了谁"。

2024 单32(选序列图):精确表达用户与系统的复杂交互 → 序列图。

辨析:序列图=强调时间顺序;协作图=强调组织关系;活动图=强调流程;状态图=强调状态转换。

3.4 类图(设计阶段核心)

精确定义:类图 = 描述类、类的属性/方法、类之间关系(关联/聚合/组合/继承/依赖)的图——设计阶段最核心的图。

注意:类图是静态图、是设计阶段核心(不是需求分析核心——需求分析核心是用例图)。

3.5 MVC(2022 单26、2024 多83)

精确定义:MVC = 一种软件设计模式(模型-视图-控制):

  • Model(模型):业务数据与业务逻辑(2020 单33 考过:业务数据与逻辑由模型负责);
  • View(视图):用户界面(2022 单26 选视图);
  • Controller(控制):接收输入、调度模型与视图。

2024 多83(选 ABD):MVC 设计模式概念=模型、视图、控制("集合"不是)。

3.7 MVC 家族、SOLID 与 GoF 模式(补强)

模式分工特点
MVCModel 数据/业务、View 展示、Controller 接收请求并调度Controller 不承载业务逻辑、View 不处理数据;适合请求-响应式 Web
MVPPresenter 作中介,View 与 Model 完全解耦View 被动(接口化),便于单元测试
MVVMViewModel 双向绑定前端框架常用,减少样板代码
  • 三层架构 vs MVC:三层是部署/逻辑分层(表示—业务—数据),MVC 是表示层内部的职责分离——两者维度不同、可以组合(三层里的一层用 MVC 实现)。

SOLID 五原则:S 单一职责、O 开闭(对扩展开放、对修改关闭)、L 里氏替换(子类可替换父类)、I 接口隔离、D 依赖倒置(依赖抽象而非实现)。

GoF 23 模式(三类):

  • 创建型 5:单例、工厂方法、抽象工厂、建造者、原型;
  • 结构型 7:适配器、桥接、组合、装饰、外观、享元、代理;
  • 行为型 11:观察者、策略、模板方法、责任链、命令、迭代器、中介者、备忘录、状态、访问者、解释器。
  • 常考对应:单例=全局唯一实例;工厂=解耦对象创建;观察者=发布-订阅;适配器=接口转换;代理=控制访问(远程/虚拟/保护)。

四、易错坑汇总(命题人惯用陷阱)

  1. 活动图是动态图(2019 多89)——"活动图是静态图"错误;静态=类/对象/包、动态=用例/序列/活动/状态。
  2. 用例图=需求分析最重要(2020 单27)——"类图是需求分析最重要模型"错误(类图是设计阶段核心)。
  3. 序列图=复杂交互(2024 单32)——"序列图描述静态结构"错误(序列图是动态图、表达消息时序)。
  4. 类图=静态——"类图是动态图"错误。
  5. 状态图 vs 活动图——状态图=对象状态转换;活动图=业务流程;"状态图描述业务流程"错误。
  6. MVC 三件套(2024 多83)——模型/视图/控制;"MVC 包含集合"错误。
  7. 视图=界面(2022 单26)——"视图是业务逻辑"错误(业务逻辑在模型)。
  8. UML 是建模语言不是编程语言——"UML 可以直接运行"错误(UML 是设计表达,不是代码)。

五、横向扩展(防漏网:本章边界内、真题尚未考但可能补考的点)

说明:横向扩展覆盖"大纲范围内但 9 年真题未考过"的知识,标注【新增概率】供取舍。

  1. 类图关系类型【中】:关联/聚合/组合/继承/依赖——"聚合 vs 组合"辨析(整体-部分关系)。
  2. 用例图元素【高】:参与者/用例/系统边界——"用例图包含哪些元素"题。
  3. 状态图与状态机【低】:状态/事件/转换——名词题。
  4. 部署图/组件图【低】:物理部署——名词题。
  5. UML 的 4+1 视图【低】:用例视图/逻辑视图/进程视图/实现视图/部署视图——名词题。
  6. 活动图 vs 流程图的区别【中】:活动图支持并发(泳道/分叉)——辨析题。
  7. 时序图(UML 2.0)【低】:新版本图——名词题。
  8. UML 与 OOAD 的关系【中】:UML 是 OOA/OOD 的表达工具——与 6.4 衔接。

六、真题演练(代表性真题 + 解析)

例 1(2019 多89) 下列属于 UML 静态图的有(口径已核)。 A. 类图 B. 对象图 C. 包图 D. 活动图

答案:ABC。类图/对象图/包图=静态图(描述结构);活动图=动态图(D 错)。口诀:类对包静、活状动。

例 2(2020 单27) 在需求分析中,UML 最重要/最基本的需求分析模型是(口径已核)。 A. 类图 B. 序列图 C. 状态图 D. 用例视图

答案:D。用例视图=需求分析最重要模型(从用户角度描述功能)。口诀:需求分析看用例。

例 3(2024 单32) 精确表达用户与系统之间复杂交互的 UML 图是(口径已核)。 A. 类图 B. 序列图 C. 包图 D. 部署图

答案:B。序列图=表达复杂交互(消息时序);类图/包图静态、部署图管硬件。口诀:复杂交互找序列。

例 4(2022 单26) MVC 模式中,(口径已核)主要表现用户界面。 A. 视图 B. 模型 C. 控制 D. 数据

答案:A。View(视图)=用户界面;Model=业务数据逻辑、Controller=调度。口诀:视图管界面、模型管业务、控制管调度。

例 5(2024 多83) 软件开发中,属于 MVC 设计模式概念的有(口径已核)。 A. 模型 B. 视图 C. 集合 D. 控制

答案:ABD。MVC=模型、视图、控制;"集合"是干扰项。口诀:MVC 三件套=模型视图控制。


七、本章小结

  • 一条主线:静态图(类/对象/包/组件)vs 动态图(用例/序列/活动/状态)→ 用例图=需求分析 → 序列图=复杂交互 → 类图=设计核心 → MVC。
  • 必背判定:类对包=静态、活动=动态(2019 多89);用例视图最重要(2020 单27);序列图=复杂交互(2024 单32);MVC=模型视图控制(2024 多83)。
  • 衔接预告:用例图→6.4 需求分析;MVC→2.4 程序设计(Java Web);部署图→8.2 云计算。