Skip to content

第11章 UML建模

📚 本章课程

课程内容
11.3.1 例题1:用例图与类图 (3课时)
11.3.2 例题2:状态图与类图 (3课时)
11.3.3 例题3:通信图与类图 (3课时)

📚 章节概述

UML建模是软考中级软件设计师考试的重要应用题内容,主要考查面向对象分析设计方法的应用。本章将通过典型案例学习UML各种图的绘制方法和建模技巧。

🎯 学习目标

通过本章学习,你将掌握:

  • UML建模的基本方法和技巧
  • 各种UML图的绘制和应用
  • 面向对象分析设计的实践
  • UML建模题的解题策略
  • 典型建模问题的分析方法

📖 课程安排

11.1 UML建模概述 (1课时)

  • UML建模的重要性 - 面向对象开发的核心工具
  • 建模过程 - 需求分析、设计建模、实现
  • UML图的分类 - 结构图、行为图、交互图
  • 建模工具 - 常用的UML建模软件

11.2 UML考查形式介绍 (1课时)

  • 考试题型分析 - 应用题的常见形式
  • 解题步骤 - 分析需求、选择图形、绘制模型
  • 评分标准 - 图形规范、逻辑正确、完整性
  • 时间分配 - 合理安排答题时间

11.3 典型例题分析 (9课时)

11.3.1 例题1:用例图与类图 (3课时)

  • 问题背景 - 在线购物系统的需求分析

  • 用例图绘制

    • 识别参与者:顾客、管理员、支付系统
    • 确定用例:浏览商品、下订单、支付、管理库存
    • 建立关系:包含、扩展、泛化关系
    • 系统边界的确定
  • 类图设计

    • 识别核心类:商品、订单、顾客、购物车
    • 确定属性:各类的关键属性
    • 定义方法:类的主要操作
    • 建立关联:类之间的关系和多重性

11.3.2 例题2:状态图与类图 (3课时)

  • 问题背景 - 自动售货机系统的状态分析

  • 状态图绘制

    • 识别对象状态:待机、选择商品、投币、出货
    • 确定状态转换:触发事件和条件
    • 定义动作:进入、退出、内部动作
    • 复合状态的处理
  • 类图完善

    • 状态相关的属性设计
    • 状态转换的方法实现
    • 状态模式的应用
    • 类的职责分配

11.3.3 例题3:通信图与类图 (3课时)

  • 问题背景 - 图书馆管理系统的交互分析

  • 通信图绘制

    • 识别参与对象:读者、图书、借阅记录
    • 确定消息传递:借书、还书、查询流程
    • 编号消息序列:时间顺序和嵌套调用
    • 对象生命周期管理
  • 类图设计

    • 基于交互的类设计
    • 方法的参数和返回值
    • 类之间的依赖关系
    • 接口的抽象设计

⏰ 学习时间安排

  • 总学习时间:11课时
  • 建议学习周期:1-2周
  • 每日学习时间:1-2课时
  • 重点练习:典型例题的反复建模

🔍 重点难点

重点内容

  1. 用例图建模 - 准确识别参与者和用例
  2. 类图设计 - 合理设计类的结构和关系
  3. 状态图绘制 - 正确表示对象的状态变化
  4. 交互图应用 - 清晰描述对象间的交互
  5. 图形规范 - 使用标准的UML符号

难点突破

  1. 用例关系 - 区分包含、扩展、泛化关系
  2. 类关联设计 - 确定正确的关联类型和多重性
  3. 状态转换 - 理解触发事件和守护条件
  4. 消息序列 - 正确编号和嵌套消息

📝 考试要点

应用题考点

  • 用例图建模 (8-12分)
  • 类图设计 (10-15分)
  • 状态图绘制 (8-12分)
  • 交互图应用 (8-12分)

评分要点

  1. 图形规范 - 使用正确的UML符号
  2. 逻辑正确 - 模型符合业务逻辑
  3. 完整性 - 包含所有必要元素
  4. 一致性 - 不同图之间保持一致

🎨 UML图形规范

用例图符号

参与者 (Actor)
符号:人形图标或矩形框
表示:与系统交互的外部实体

用例 (Use Case)
符号:椭圆形
表示:系统提供的功能

关系类型:
- 关联:参与者与用例之间的直线
- 包含:<<include>>,必须执行的子用例
- 扩展:<<extend>>,可选执行的子用例
- 泛化:空心三角箭头,继承关系

类图符号

类 (Class)
符号:三层矩形框
内容:类名、属性、方法

关联类型:
- 关联:直线,表示类之间的联系
- 聚合:空心菱形,整体-部分关系
- 组合:实心菱形,强聚合关系
- 依赖:虚线箭头,使用关系
- 泛化:空心三角箭头,继承关系
- 实现:虚线空心三角箭头,接口实现

多重性:
1:一个
0..1:零个或一个
*:零个或多个
1..*:一个或多个

📊 建模技巧

用例建模步骤

  1. 识别参与者 - 找出与系统交互的外部实体
  2. 确定用例 - 识别系统提供的主要功能
  3. 建立关联 - 连接参与者和相关用例
  4. 细化关系 - 添加包含、扩展、泛化关系
  5. 验证完整性 - 检查是否遗漏重要功能

类图设计原则

  1. 单一职责 - 每个类只负责一个职责
  2. 高内聚 - 类内部元素紧密相关
  3. 低耦合 - 类之间依赖关系最小
  4. 开闭原则 - 对扩展开放,对修改封闭

状态建模要点

  1. 状态识别 - 找出对象的所有重要状态
  2. 事件确定 - 识别引起状态变化的事件
  3. 条件设置 - 添加状态转换的守护条件
  4. 动作定义 - 指定状态转换时的动作

🔄 建模过程

需求分析阶段

1. 业务建模
   - 用例图:系统功能概览
   - 活动图:业务流程分析

2. 需求建模
   - 用例图细化:详细用例描述
   - 概念类图:领域模型

设计阶段

1. 静态建模
   - 类图:系统结构设计
   - 对象图:实例关系

2. 动态建模
   - 状态图:对象状态变化
   - 序列图:时间顺序交互
   - 通信图:对象协作关系

实现阶段

1. 实现建模
   - 构件图:物理组件结构
   - 部署图:系统部署架构

💡 解题策略

解题步骤

  1. 仔细阅读题目 - 理解业务背景和需求
  2. 分析建模要求 - 确定需要绘制的图形类型
  3. 识别关键元素 - 找出参与者、类、状态等
  4. 建立元素关系 - 确定元素之间的关联
  5. 绘制标准图形 - 使用规范的UML符号
  6. 检查完整性 - 验证模型的正确性

常见错误

  1. 符号使用错误 - 不符合UML标准
  2. 关系类型错误 - 混淆不同类型的关系
  3. 逻辑不一致 - 模型与需求不符
  4. 遗漏重要元素 - 缺少关键的类或关系

预计完成时间:11课时 | 难度等级:★★★★★

🎯 本章课程总览

课程内容时长
11.3.1 例题1:用例图与类图 (3课时)案例训练:从业务需求到用例图、类图的双图协同建模。45分钟
11.3.2 例题2:状态图与类图 (3课时)案例训练:通过状态图刻画对象生命周期并回归类图校验。45分钟
11.3.3 例题3:通信图与类图 (3课时)案例训练:通过通信图分析对象协作并验证类图职责划分。45分钟

🧭 本章定位(命题老师视角)

  • 本章以“概念辨析 + 计算/推理”混合题为主,强调关键词与方法匹配。
  • 命题常把相近概念放在同题干干扰,需要先判边界再下结论。

🧱 命题主线

  • 主线1:核心概念定义、边界与场景映射。
  • 主线2:典型机制/流程的步骤化理解与应用。
  • 主线3:高频易错点识别与反向排除。

⏱️ 复习优先级(时间不足时)

  1. 先做本章高频计算题与判定题。
  2. 再做章节概述与回顾中的综合题。
  3. 最后复盘错题并补齐概念盲区。

📝 一页速记

模块快速记忆
核心概念先记定义,再记边界,再记反例
常用方法先识别题型,再调用方法模板
易错点关注关键词、单位、约束条件
作答步骤条件提取 -> 过程推导 -> 结果校验

⚠️ 高频坑位

  • 概念名词相近但边界不同,容易“看着像就选”。
  • 计算题忘记统一单位、位宽或默认条件。
  • 过程题跳步骤,导致中间量错而全题失分。

🧪 作答模板(客观题/综合题)

  • 第一步:识别题型(概念、流程、计算、综合)。
  • 第二步:提取关键词(对象、条件、约束、目标)。
  • 第三步:调用方法并写出关键中间步骤。
  • 第四步:检查边界(符号、范围、单位、合理性)。

🛣️ 学习路线建议

  • 第一轮:按课程顺序建立知识骨架。
  • 第二轮:按题型专题训练并沉淀模板。
  • 第三轮:只看错题与速记表做考前冲刺。