11.2统一建模语言UML-事务关系图

一、统一建模语言UML 00:02
1. 事物 02:46
  • 四种基本类型:结构事物(类、接口、用例等)、行为事物(交互、活动等)、分组事物(包)、注释事物(解释性符号)
  • 结构事物特点:模型的静态部分,如类图中使用的类符号、用例图中的用例符号
  • 行为事物特点:模型的动态部分,如状态图中的状态转换、活动图中的动作
  • 分组事物作用:模型的组织单元,如包图用于将相关元素分组管理
  • 注释事物特性:非必要元素,可附加在任何元素上提供解释说明
2. 关系 05:31
1)关系的四大类 05:56
  • 分类依据:根据语义强度和图形表示分为依赖、关联(含组合/聚合)、泛化、实现四大类
  • 考试重点:主要考察关系类型的判断和图形符号识别,而非单纯记忆分类
2)依赖关系 06:06
  • 定义特征:一个事物的变化会引起另一个事物的变化,如人类依赖空气和水生存
  • 图形表示:虚线箭头(虚线+实心箭头)
  • 典型场景:临时性的、较弱的关系,如方法参数传递
3)关联关系 06:43
  • 基本特征:表示两个事物间存在某种联系,是最普遍的关系类型
  • 图形表示:实线连接(可带多重度数字)
  • 实例说明:医生与病人、教师与学生之间的关系都属于广义关联
4)组合与聚合关系 07:37
  • 共同点:都是特殊的关联关系,表示部分与整体的关系
  • 组合关系:
    • 特点:强关系,具有共同生命周期(如人和大脑)
    • 图形:实线+实心菱形(整体端)
  • 聚合关系:
    • 特点:弱关系,部分可独立存在(如雁群和大雁)
    • 图形:实线+空心菱形(整体端)
5)泛化关系 09:52
  • 本质:一般与特殊的关系,即继承关系
  • 图形表示:实线+空心箭头(子类指向父类)
  • 实例说明:学生与研究生、图书与科技书之间的关系
6)实现关系 10:19
  • 应用场景:主要用于接口实现,如Java中的implements
  • 图形表示:虚线+空心箭头
  • 考试频率:较少直接考察,更多出现在编程语境中
7)关系的图形符号 11:15
  • 记忆要点:
    • 实线/虚线:关联/组合/泛化用实线;依赖/实现用虚线
    • 箭头类型:依赖用实心箭头;泛化/实现用空心箭头
    • 菱形区别:聚合空心菱形;组合实心菱形
8)例题1:汽车系统的组成关系 13:58
  • 题目解析
    • 解题关键:判断各选项是否符合组合关系的"共同生命周期"特征
    • 争议说明:此题选项设计存在争议,各部件与汽车的绑定强度难以明确区分
    • 推荐答案:B(汽车和车窗),因车窗相对容易独立存在
9)例题2:UML类图关系判断 16:04
  • 题目解析
    • 图形识别:
      • 直线连接→关联关系(Shop-Magazine)
      • 实心菱形→组合关系(Magazine-Page)
    • 类图应用:不适用于对象快照建模(这是对象图的用途)
    • 解题技巧:直接根据图形符号判断,无需过度分析语义
3. UML图 17:48
1)类图 19:54
  • 本质特征: 静态图,展现系统的静态设计视图,包含对象、接口、协作及其相互关系
  • 构成要素:
    • 类表示法: 包含类名、属性(name:Name\text{name:Name}name:Name)、操作(getPersonalRecords()\text{getPersonalRecords()}getPersonalRecords())三要素
    • 关系类型: 聚集(空心菱形)、关联(实线)、泛化(空心三角箭头)、依赖(虚线箭头)等
  • 常见错误: 注意聚集关系应为空心菱形(教材示例错误使用实心菱形)
  • 建模要点: 反映系统中类的数量、类间关联关系及接口实现情况
2)对象图 21:53
  • 核心定义: 类图的特定时刻快照,展现具体对象实例及其链(关系)
  • 与类图区别:
    • 抽象层级: 对象图表现具体实例(如"技术部"),类图表现抽象概念(如"部门")
    • 命名规范: 对象名采用"实例名:类名"格式(如Zhang:Student\text{Zhang:Student}Zhang:Student)
  • 特殊作用: 当系统未建立类图时,对象图可替代作为静态设计视图
  • 应用场景: 主要用于调试和验证类图设计的正确性
3)用例图 23:05
  • 用例图的概念与作用 23:12
    • 基本性质: 静态图,用于需求建模阶段
    • 核心要素: 由用例(功能)、参与者(角色)及其关系构成
    • 建模价值: 完整展现系统功能需求及用户交互场景
  • 参与者的定义与示例 23:54
    • 本质理解: 与系统交互的实体(人/硬件/外部系统),如"图书管理员"
    • 识别特征:
      • 名词性概念
      • 具有主动交互能力
      • 在系统边界之外
    • 典型示例: 图书馆系统中的"读者"、"图书管理员"等角色
  • 用例的定义与示例 24:39
    • 核心定义: 参与者完成的原子功能单元,如"新增书籍信息"
    • 识别特征:
      • 动宾短语结构
      • 体现完整业务价值
      • 粒度控制在单一事务级别
    • 典型示例: "查询外借信息"、"统计金额与册数"等系统功能
  • 用例之间的关系 25:48
    • 包含关系(include):
      • 特征: 必须执行的基础用例(如"用户登录")
      • 箭头方向: 从基础用例指向被包含用例
      • 实例: "登记外借信息"必须包含"用户登录"
    • 扩展关系(extend):
      • 特征: 可选执行的扩展用例(如"修改书籍信息")
      • 箭头方向: 从扩展用例指向基础用例
      • 实例: "查询书籍信息"可能扩展"修改书籍信息"
    • 泛化关系:
      • 特征: 父子用例间的继承关系(类似类图的泛化)
      • 实例: "支付"可泛化为"信用卡支付"和"余额支付"
  • 用例图箭头方向注意事项 28:23
    • 关键区别:
      • 包含关系箭头指向被包含用例(必需功能)
      • 扩展关系箭头指向基础用例(可选功能)
    • 记忆技巧:
      • 包含关系:指向"必须组件"(如登录)
      • 扩展关系:指向"可能增强"(如修改)
    • 常见错误: 混淆两种关系的箭头方向会导致建模语义完全错误
4)序列图 29:04
  • 基本概念
    • 别名: 又称顺序图、动态图,是UML中描述对象交互的图形化表示
    • 核心特征:
      • 对象生命线:用虚线表示,可理解为时间线
      • 对象表示:上方用长方形表示(如c:Clientc : Clientc:Client)
    • 作用: 描述以时间顺序组织的对象之间的交互活动
  • 消息类型
    • 同步消息:
      • 特征:进行阻塞调用,调用者中止执行等待控制权返回
      • 图示:实心三角箭头(如setAction(a,d,o)setAction(a,d,o)setAction(a,d,o)调用)
      • 典型场景:需要等待返回消息才能继续执行
    • 异步消息:
      • 特征:发出后继续执行,不引起调用者阻塞
      • 图示:空心箭头(如<>:Transaction<>:Transaction<>:Transaction)
      • 典型场景:不等待返回消息
    • 返回消息:
      • 特征:表示方法调用的返回结果
      • 图示:从右到左的虚线箭头
      • 特殊标记:如messagecommitedmessagecommitedmessagecommited后的返回
  • 重要元素
    • 对象创建:
      • 标记:<><><>构造型
      • 示例:创建TransactionTransactionTransaction对象
    • 对象销毁:
      • 标记:destroydestroydestroy操作
      • 生命线终止:用X符号表示
    • 方法调用链:
      • 示例流程:create()→setAction()→setValues()→messagecommitedcreate()→setAction()→setValues()→messagecommitedcreate()→setAction()→setValues()→messagecommited
5)通信图 31:54
  • 基本概念
    • 别名: 又称协作图(老式叫法),属于动态图
    • 核心特征:
      • 对象组织:强调交互对象的空间结构
      • 链连接:对象间用直线连接(如c:Clientc:Clientc:Client与p:ODBCProxyp:ODBCProxyp:ODBCProxy之间)
    • 与序列图区别:
      • 不强调时间顺序,而是通过编号表示消息顺序(如1:, 2.1:)
  • 消息表示
    • 编号规则:
      • 主消息:整数编号(如1:create()create()create())
      • 子消息:小数点编号(如2.1:setValues(d,3.4)setValues(d,3.4)setValues(d,3.4))
    • 消息流向:
      • 沿连接线标注(如链2:setActions(a,d,o)setActions(a,d,o)setActions(a,d,o))
    • 特殊操作:
      • 对象创建:标号1的消息
      • 对象销毁:标号3的destroy()destroy()destroy()操作
  • 典型结构
    • 对象表示:
      • 矩形框+对象名(如:Transaction:Transaction:Transaction)
      • 可带类型声明(如p:ODBCProxyp:ODBCProxyp:ODBCProxy)
    • 消息序列:
      • 完整示例:1.创建→2.设置操作→2.1设置值→3.销毁
    • 链的多重性:
      • 一条链可承载多个编号消息(如链2承载2:和2.1:消息)
6)状态图 33:02
  • 状态图的概念与作用 33:08
    • 动态图特性: 展现状态机,描述单个对象在多个用例中的行为模式
    • 组成元素: 包含简单状态和组合状态两种基本类型
    • 图形表示: 方框代表状态,箭头表示转换,实心圆点标记起点和终点
    • 实际应用: 大系统内部通常存在状态机(如循环队列的状态切换)
    • 典型示例: 收音机状态变化(初始→播放→暂停→快进→关闭)
  • 状态转换的条件:事件触发器与监护条件 35:15
    • 双重条件机制:
      • 事件触发器: 必须发生的触发动作(如按下收音机快进键)
      • 监护条件: 状态转换的附加限制(如电源是否接通)
    • 必要条件: 无触发事件则状态保持,有触发事件但监护条件不满足时也不转换
    • 图形标注: 触发事件标注在转换箭头上,监护条件以方括号形式标注
  • 状态转换的过程 36:52
    • 组合状态特性: 支持状态嵌套(如ringing状态包含Idle、Connected等子状态)
    • 转换流程:
      • 系统检测到有效触发事件
      • 验证所有监护条件是否满足
      • 执行状态转换动作
    • 异常处理: 监护条件不满足时保持原状态(如停电时按启动键无效)
7)活动图 37:23
  • 活动图的概念与特点 37:25
    • 动态图特性: 特殊类型的状态图,展现系统活动流程
    • 核心差异: 状态图关注对象状态变化,活动图关注业务流程推进
    • 典型应用: 描述业务处理流程(如餐厅订单处理:接单→结账→关闭)
  • 活动图与状态图的比较 37:49
    • 图形相似性:
      • 均使用实心圆点表示开始/结束
      • 状态符号形状相近但语义不同
    • 流程特性:
      • 活动图具有明确的方向性(通常自上而下)
      • 状态图转换路径更复杂多变
  • 活动图中的元素与符号 38:04
    • 基本构件:
      • 圆角矩形表示具体活动
      • 箭头线表示控制流方向
      • 菱形表示决策分支
    • 特殊元素:
      • 水平粗线实现并发分岔/汇合
      • 监护表达式控制分支选择
  • 并发分岔与并发汇合 39:39
    • 并发分岔:
      • 表示可以并行执行的多个活动分支
      • 分支数量对应可并行线程数
    • 并发汇合:
      • 同步点,要求所有并行分支完成后继续
      • 与分岔形成对应关系
    • 典型场景: 订单处理中并行执行支付操作和服务评价
8)构件图 40:38
  • 基本概念
    • 别名: 又称为组件图,属于UML静态图的一种
    • 作用: 为系统提供静态实现视图,展现一组构件之间的组织和依赖关系
    • 组成元素: 由构件(组件)及其相互关系构成,每个构件可能由多个类组成
  • 核心要素
    • 构件符号
      • 表示方式: 使用《component》标注的矩形框表示构件
      • 示例构件: 如图中的Order System、CustomerRepository等
    • 接口表示
      • 供接口: 用半圆符号表示,代表构件提供的服务(如示例中的Order System提供接口)
      • 需接口: 用完整圆形符号表示,代表构件需要的服务(如示例中的CustomerLookup需要接口)
      • 记忆要点: "供"是供应给别人(半圆),"需"是自己需要(整圆)
9)部署图 41:50
  • 基本概念
    • 性质: 属于静态图,展示系统静态部署视图
    • 核心内容: 反映物理模块的节点分布,与硬件/物理环境相关
    • 考试特征: 只要涉及物理设备或硬件配置的题目,通常考察部署图
  • 关键特性
    • 节点组成: 每个节点可能包含一个或多个构件(如DB Server节点包含MySQL构件)
    • 依赖关系: 部署组件间的依赖是单向的,类似于包含关系
    • 粒度特征: 比构件图更粗粒度,一个构件可能对应多个类
    • 典型节点: 如图中的Web Server、User Client等物理设备节点
  • 符号识别
    • 节点表示: 使用立方体符号表示物理节点(如DB Server)
    • 构件标注: 使用<<artifact>>标注具体部署的构件(如Website、HTML5)
    • 部署细节: 可能包含具体配置信息(如https:80端口说明)
4. UML四大视图 43:16
1)逻辑视图(设计视图) 44:17
  • 抽象层级: 视图是比图更高级的抽象概念,视图由具体的图来实现
  • 实现方式: 通过类图、对象图、用例图等静态图实现
  • 核心内容: 表示设计模型中架构方面重要的部分,包括类、子系统、包和用例实现的子集
  • 应用阶段: 主要与系统分析和系统设计相关
  • 关系表达: 反映类和对象之间的静态关系
2)进程视图 45:02
  • 本质特征: 是逻辑视图的一次执行实例
  • 建模对象: 对可执行线程和进程作为活动类进行建模
  • 关键特性: 描述并发与同步结构
  • 记忆要点: 重点反映进程和线程之间的并发与同步关系
3)实现视图 45:28
  • 实现内容: 对物理代码文件和构件进行建模
  • 责任主体: 由程序员负责实现
  • 表现形式: 反映源代码结构
  • 转换关系: 将设计模型转换为实际代码实现
4)部署视图 45:58
  • 核心功能: 把构件部署到物理节点上
  • 映射关系: 表示软件到硬件的映射和分布结构
  • 典型应用: 决定客户端、服务器、数据库等软件组件在硬件上的部署位置
  • 对应图表: 与部署图直接对应
5)用例视图 46:25
  • 基础地位: 最基本的需求分析模型
  • 实现方式: 由用例图实现
  • 核心作用: 描述系统对事件做出响应时所采取的行动
  • 关系类型: 用例之间具有包含(include)、扩展(extend)、泛化(generalize)三种关系
5. 应用案例 46:44
1)例题:用力图关系判断
  • 题目解析
    • 关系辨析: 会员注册与电话/邮件注册是一般与特殊的关系
    • 选项分析: 排除包含和扩展关系,因为不存在必要条件或扩展点
    • 正确答案: C.泛化(generalize)
    • 考点提醒: 用例图只有三种关系类型,需与类图关系区分
2)例题:UML状态图叙述判断 47:53
  • 题目解析
    • 关键概念: 状态迁移需要同时满足事件触发和监护条件
    • 错误选项: B选项描述不准确,没有监护条件不能直接迁移
    • 正确理解: 即使事件触发,仍需检查监护条件才能完成状态迁移
    • 易错点: 容易忽略监护条件的必要性
3)例题:UML视图概念应用 49:22
  • 题目解析
    • 第一空线索: "并发与同步结构"指向进程视图
    • 第二空线索: "最基本的需求分析模型"指向用例视图
    • 记忆技巧: 五大视图特征可通过关键词联想记忆
    • 答案确认: 第一空A.进程视图,第二空D.用例视图
4)例题:UML图形式种类 50:07
  • 题目解析
    • 图形识别: 通过分叉、合并特征判断为活动图
    • 元素分析:
      • ①表示分叉点,不是汇合或分支
      • ②是监护表达式,不是分支条件或流名称
    • 关联知识: 活动图是状态图的特例,继承状态图的监护条件概念
    • 解题技巧: 掌握各类UML图的典型特征有助于快速识别
二、知识小结
知识点 核心内容 考试重点/易混淆点 难度系数
UML基础概念 统一建模语言(可视化、非编程语言),支持软件开发全过程 可视化≠编程语言,构造块(事物/关系/图)最重要 ⭐⭐
UML关系类型 6种关系:依赖(虚线+实心箭头)、关联(直线)、组合(实心菱形)、聚合(空心菱形)、泛化(实线+空心箭头)、实现(虚线+空心箭头) 组合vs聚合(生命周期是否共存)、箭头类型区分 ⭐⭐⭐⭐
类图 静态设计视图,展现类/接口/协作关系,含类名/属性/方法 类图不用于对象快照建模(属对象图) ⭐⭐⭐
用例图 需求分析模型,含参与者(实体)和用例(功能),特有3种关系:包含(必选)、扩展(可选)、泛化(父子) 箭头方向:包含(A→B)、扩展(B→A) ⭐⭐⭐⭐
序列图 动态图,按时间顺序展示对象交互,含生命线、同步消息(实心三角箭头)、异步消息(空心箭头)、返回消息(虚线) 同步消息会阻塞等待返回 ⭐⭐⭐
状态图 动态图,描述对象状态转换,含初始/结束状态、事件触发器、监护条件 状态转换双条件:触发事件+监护条件满足 ⭐⭐⭐⭐
活动图 特殊状态图,展示活动流程,含分叉(并发开始)/汇合(并发结束)、监护表达式 分叉≠分支(分叉为并行,分支为选择) ⭐⭐⭐
部署图 静态部署视图,展示软件到硬件的物理节点映射 唯一涉及硬件分布的UML图 ⭐⭐
UML五大视图 逻辑视图(类图/用例图)、进程视图(并发同步)、实现视图(代码结构)、部署视图(部署图)、用例视图(需求分析) 用例视图是最基础需求模型 ⭐⭐⭐
相关推荐
Warren2Lynch2 小时前
UML 之旅:一位从业者对 Visual Paradigm 可视化建模的评测
uml
code小生4 小时前
微软 Microsoft Edge 浏览器插件开发者注册指南
前端·microsoft·edge·edge浏览器·浏览器插件开发者
帐篷Li4 小时前
【Vibe Coding】一口气搞懂AI黑话:Vibe Coding、Agent、提示词、MCP、Skills全解析
人工智能·microsoft
拓端研究室5 小时前
2026中国医疗健康行业趋势报告:投融资回暖、AI渗透与产业链提价|附100+份报告PDF、数据、可视化模板汇总下载
人工智能·物联网·microsoft
Eiceblue5 小时前
Python 如何实现 Excel 数据分列?一列拆分为多列
python·microsoft·excel
yu85939586 小时前
WinForm 嵌入 WordExcel 实现方案
开发语言·microsoft·c#
Linux运维技术栈21 小时前
微软(Microsoft 365) 自定义域名企业邮件系统全流程通用配置手册
microsoft·php·邮件系统
瑶总迷弟1 天前
Python入门第7章:用户输入和 while 、for循环
开发语言·python·microsoft
彧翎Pro2 天前
ASP.NET Core 外部依赖调用治理实战:HttpClientFactory、Polly 与幂等边界
microsoft·asp.net·php