Skip to content

第11章 UML建模

📚 章节概述

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课时 | 难度等级:★★★★★