目录
1. UML概述
2. UML构造块
(1) 事物(Things)
(2) 关系(Relationships)
真题示例:
3. UML图分类
(1) 结构图(静态)
(2) 行为图(动态)
4. 核心UML图详解
5. UML 4+1视图模型
真题示例:
1. UML概述
- 定义:UML(Unified Modeling Language)是一种可视化建模语言,用于支持从需求分析到软件设计的全过程。
- 结构组成:
- 构造块:事物(类、接口等)、关系(依赖、关联等)、图(类图、用例图等)。
- 公共机制:实现特定目标的通用方法(如扩展机制)。
- 规则:构造块的组合规则(如类与类之间的关系)。
2. UML构造块
(1) 事物(Things)
- 结构事物(静态部分):类、接口、用例、构件等。
- 行为事物(动态部分):交互、活动、状态机等。
- 分组事物(组织部分):包(Package)。
- 注释事物(解释部分):注释、约束等。
(2) 关系(Relationships)
关系类型 | 描述 |
---|---|
依赖 | 一个事物的变化影响另一个事物 |
关联 | 类之间的结构关系(分为组合/聚合) |
泛化 | 一般与特殊关系(继承) |
实现 | 类与接口的契约关系 |
- 组合 vs 聚合:
- 组合(强关系):部分不能脱离整体存在(如
汽车
和发动机
)。 - 聚合(弱关系):部分可独立存在(如
汽车
和轮胎
)。
- 组合(强关系):部分不能脱离整体存在(如
真题示例:
采用面向对象方法进行软件开发时,将汽车作为一个系统。以下( )之间不属于组成(Composition)关系。
A.汽车和座位 B.汽车和车窗 C.汽车和发动机 D.汽车和音乐系统
理解组成关系(Composition)是强聚合关系,表示部分不能脱离整体存在(生命周期绑定)。本题存在争议,不需要纠结标准答案。
如图所示的UML类图中,Shop和Magazine之间为( )关系,Magazine和Page之间为( )关系。UML类图通常不用于对( )进行建模。
A.关联 B.依赖 C.组合 D.继承
A.关联 B.依赖 C.组合 D.继承
A.系统的词汇 B.简单的协作 C.逻辑数据库模式 D.对象快照
- Shop和Magazine:关联
- Magazine和Page:组合
- UML类图不用于:对象快照
- 类图描述静态结构(类、接口、关系),而对象快照属于对象图(特定时刻的实例状态)。
3. UML图分类
UML图分为结构图(静态)和行为图(动态)两大类:
(1) 结构图(静态)
图类型 | 用途 |
---|---|
类图 | 展示类、接口及其关系(如继承、实现) |
对象图 | 类图的实例化(某一时刻的对象状态) |
构件图 | 显示系统构件及其依赖关系(如DLL、EXE) |
部署图 | 软硬件映射(节点部署) |
制品图 | 物理文件结构(如源代码、数据库) |
包图 | 模块化组织(分组管理类/组件) |
(2) 行为图(动态)
图类型 | 用途 |
---|---|
用例图 | 系统与外部参与者的交互(功能需求) |
顺序图 | 按时间顺序的对象交互(强调时序) |
通信图 | 对象间的协作关系(强调组织结构) |
状态图 | 对象状态变化(如订单状态流转) |
活动图 | 业务流程或并行活动(类似流程图) |
定时图 | 强调时间约束的交互 |
4. 核心UML图详解
UML图类型 | 分类 | 用途描述 | 关键元素/特点 |
---|---|---|---|
类图 | 静态图 | 系统静态设计视图,展示类、接口、协作及它们之间的关系 | 类、接口、关联、组合/聚合、泛化、依赖 |
对象图 | 静态图 | 类图的实例快照,展示某一时刻对象的状态及关系 | 对象实例、链(对象间的连接) |
用例图 | 行为图 | 描述系统与外部参与者的交互及功能需求 | 参与者、用例、包含(<<include>> )、扩展(<<extend>> )、泛化关系 |
序列图 | 交互图 | 按时间顺序展示对象间的消息交互 | 生命线、同步消息(实心三角箭头)、异步消息(空心箭头)、返回消息(虚线箭头) |
通讯图 | 交互图 | 强调对象组织结构,展示交互中的对象连接关系 | 对象、链、消息(带序号) |
状态图 | 行为图 | 描述单个对象的状态变化及触发条件 | 状态、迁移(事件+监护条件+动作)、初始/终止状态 |
活动图 | 行为图 | 类似流程图,展示系统活动的并行或顺序流程 | 活动节点、分岔/汇合(粗水平线)、监护条件、分支 |
构件图 | 静态图 | 系统物理构件结构及依赖关系 | 构件(<<component>> )、接口(<<interface>> )、依赖关系(虚线箭头) |
部署图 | 静态图 | 展示软件如何部署到硬件节点及网络拓扑 | 节点(服务器/设备)、构件部署、通信连接(实线) |
5. UML 4+1视图模型
视图 | 描述 | 受众 |
---|---|---|
逻辑视图 | 类、子系统设计 | 系统分析师 |
进程视图 | 并发与同步结构(线程/进程) | 系统架构师 |
实现视图 | 代码和构件组织 | 开发人员 |
部署视图 | 软硬件映射(节点部署) | 运维工程师 |
用例视图 | 最基本的需求分析模型(用户功能) | 产品经理/客户 |
真题示例:
用例(use case)用来描述系统对事件做出响应时所采取的行动。用例之间是具有相关性的。在一个会员管理系统中,会员注册时可以采用电话和邮件两种方式。用例“会员注册”和“电话注册”、“邮件注册”之间是( )关系。
A. 包含(include) B.扩展(extend) C.泛化(generalize) D.依赖(depends on)
- 泛化关系表示一般与特殊的关系。"会员注册"是通用用例,"电话注册"和"邮件注册"是其具体实现方式,符合泛化关系(类似父类与子类)。
以下关于UML状态图的叙述中,不正确的是( )
A、活动可以在状态内执行,也可以在迁移时执行
B、若事件触发一个没有特定监护条件的迁移,则对象离开当前状态
C、迁移可以包含事件触发器,监护条件和状态
D、事件触发迁移
- 没有监护条件不能直接迁移
在UML提供的系统视图中,( )是逻辑视图的一次执行实例,描述了并发与同步结构;( )是最基本的需求分析模型。
A. 进程视图 B.实现视图 C.部署视图 D.用例视图
A. 进程视图 B.实现视图 C.部署视图 D.用例视图
- 进程视图(描述并发与同步)
- 用例视图(需求分析模型)
如下所示的UML图是( ),图中(Ⅰ)表示( ),(Ⅱ)表示( )。
A. 序列图 B. 状态图 C. 通信图 D. 活动图
A. 合并分叉 B. 分支 C. 合并汇合 D. 流
A. 分支条件 B. 监护表达式 C. 动作名 D. 流名称
-
图示的UML图是(活动图)。 活动图用于描述系统的活动流程,展示从一个活动到另一个活动的控制流,类似于流程图。图中有活动节点(如Receive Order、Fill Order等)、分岔/汇合(粗水平线)以及分支(菱形判断)等元素,符合活动图的特征。
-
图中(Ⅰ)表示(合并分叉)。 图中的粗水平线(Ⅰ处)是活动图中用于表示并发开始的符号,即合并分叉,表示从一个活动可以同时开始多个并行的活动。
-
图中(Ⅱ)表示(监护表达式)。 在活动图的分支处(菱形判断),[not complete](Ⅱ处)这样的方括号括起来的表达式是监护表达式,用于判断条件是否成立,以决定流程走向,所以第五个空选B。