UML 面向对象建模 · 复习闯关

系统分析与设计 | 单选 + 判断 | 交互式学习
用例图 (Use Case Diagram)
用例关系
用例之间有泛化、包含(include)、扩展(extend)三种关系。不含"聚集"。箭头方向:包含→被包含用例;扩展→基本用例。
单选2/4
包含从基本用例指向包含用例;扩展从扩展用例指向基本用例
Actor关系
参与者(Actor)之间只有泛化关系,不能有关联/包含/扩展/依赖关系。子Actor继承父Actor所有用例关联。
单选14 · 判断16
泛化 = 子参与者继承父参与者关联的所有用例
用例边界
用例描述功能性需求,站在用户视角。电商中"邮寄商品"是后台物流,不属于用户视角的用例。
单选1 · 判断11
用例是用户视角的功能单元,非后台实现细节
类图 & 对象 (Class & Object)
类的版型 (Stereotype)
边界类、控制类、实体类是类的版型(Stereotype),以<>、<>、<>标注,不是继承/多态/关联。
单选6
MVC天然对应:View=边界, Controller=控制, Model=实体
对象三要素
对象有三大特性:状态、行为、标识。状态是对象最核心的要素——即对象在某一时刻的属性值集合。
单选7
状态(属性值)+行为(方法)+标识(唯一身份)
关联类
关联类(Association Class)用于描述关联本身的特性,是描述多对多关系属性的建模方式。
判断5
如:学生选课中"成绩"是关联类(学生-课程)的属性
类图内容
类图是静态模型图,可包含类、接口、包、关系(关联/泛化/依赖等)等建模元素。
单选13 · 判断8
类图 = 系统静态结构蓝图,非动态行为图
交互图 (Interaction Diagram)
顺序图 (Sequence)
交互图之一,强调消息的时间顺序。元素:对象、生命线、控制焦点、消息。同步消息=实线实心三角箭头。
单选5/15·判断4/12
纵轴=时间,横轴=对象。强调时间序(非对象组织)
协作图 (Collaboration)
也是交互图,但强调对象间的组织结构关系,节点=对象,边=消息。
判断4
顺序图→时间序; 协作图→结构序
活动图 & 状态图
活动图 (Activity)
描述系统工作流程和并发行为(分叉/汇合)。泳道按职责划分,每个活动只能属于一个泳道。
单选17 · 判断15/17
并发≠并行;泳道=责任分区,1活动1泳道
状态图 (State)
描述对象的状态及状态之间的转换关系,关注对象生命周期中的状态变化。
判断14
状态机模型:状态+事件→转换
包图 & 构件图 & 部署图
包 (Package)
像"容器"组织模型元素,维护控制系统总体结构。高内聚低耦合,严格访问控制。按逻辑分组(非类型),包间依赖具有传递性。
单选8/9/10/19 · 判断2/6/9/13
Java的package / C#的namespace 都是包的实现
构件图 (Component)
显示物理模块单元(如.dll/.jar/.exe)及相互依赖,可对源代码/可执行文件关系建模。构件=物理单元,不是显示对象关系。
单选11/18 · 判断3/10/18
构件=物理实现单元;对象=逻辑实例
部署图 (Deployment)
帮助理解复杂系统的物理结构,显示硬件节点和软件构件的部署分布关系。
判断1
节点(Node)+构件在物理层面的分布
ER图与数据库
传统方法常采用ER图(实体-联系图)作为数据库概念设计的工具。
判断7
ER图→关系模式→物理表
Rose四大视图
Use Case View(用例/活动)、Logical View(类/顺序/状态)、Component View(构件)、Deployment View(部署)。类图也可放在Use Case View。
单选3
Rose没有Login View
🏆 0
0/0
准备开始闯关...
0

核心概念原理解释

用例图:include vs extend vs 泛化

包含(include):基本用例必然调用包含用例。箭头从基本用例指向包含用例。
扩展(extend):基本用例条件性调用扩展用例。箭头从扩展指向基本。
泛化:子用例继承父用例的行为和关系。参与者之间只能是泛化关系。
📌 登录(include)验证密码 | 搜索(extend)高级筛选 | VIP客户(泛化)普通客户

类图:版型 Stereotype 三重划分

类的版型是UML扩展机制,用<>标注:
边界类:系统与外部交互的界面(UI、API)
控制类:业务逻辑协调(Controller、Service)
实体类:持久化数据对象(Entity、Model)
📌 MVC模式天然对应:View=边界, Controller=控制, Model=实体

顺序图 vs 协作图(交互图)

同为交互图(Interaction Diagram),属于动态建模:
顺序图:强调消息的时间顺序。纵轴=时间,横轴=对象
协作图:强调对象的组织结构。节点=对象,边=消息
同步消息→实线实心三角箭头(⟶);返回消息→虚线箭头(⇢)
📌 顺序图像时间线回放,协作图像网络拓扑

活动图:并发与泳道

活动图描述工作流和并发行为(分叉/汇合):
泳道按职责划分活动归属,每个活动只能属于一个泳道
并发(Concurrent):分叉(Fork)分出多个并发流,汇合(Join)等待所有流完成后继续。
📌 订单处理泳道=顾客|系统|仓库,每个操作在唯一泳道内

包图:高内聚低耦合

包是组织模型元素的容器,按逻辑关系分组(非按类型):
高内聚:包内元素紧密相关
低耦合:包间依赖少且单向
访问控制:严格管理包内容对外可见性
包间依赖具有传递性(A→B→C 则 A间接→C)
📌 Java的package、C#的namespace都是包的实现

构件图 vs 部署图

构件图:描述物理模块(.dll .jar .exe)及其相互依赖关系,可对源代码/可执行文件建模。
部署图:描述硬件节点和软件构件在物理层面的分布。
构件≠对象:构件=物理实现单元,对象=逻辑实例。
📌 构件图=代码编译产物关系;部署图=服务器+进程分布

Rational Rose 视窗体系

Rose有四大视图:
Use Case View:用例图、活动图
Logical View:类图、顺序图、状态图
Component View:构件图
Deployment View:部署图
类图既可画在Logical View,也可画在Use Case View中。
📌 Rose没有"Login View"这个视图

用例与需求 & ER图

用例只描述功能性需求,不覆盖性能/安全/可维护性等非功能需求。
ER图(实体-联系图):传统数据库概念设计的工具,从ER图映射到关系模式再到物理表。
用例建模要站在用户视角,排除后台实现细节(如"邮寄商品")。
📌 用例=FRS(功能需求);非功能需求=性能、安全、可靠性等
html2.link ·粘贴 HTML,一键生成链接