【面向对象】UML概述(基本构造块:事物/关系/图)

考点频率 :★★★★★(UML基础概念每年必考,是后续所有UML图知识的地基)

难度 :⭐⭐

建议:重点掌握UML的三大构造块、六大关系的图形符号,这是所有UML题目中识别关系的"通行证"

1️⃣ 什么是UML?

UML(统一建模语言,Unified Modeling Language) 是一种用于软件系统可视化建模 的标准语言。它不是一种编程语言,而是一套图形化表示法------用各种图形符号来描述系统的结构、行为和交互。

打个比方:UML就是软件行业的"工程图纸"。盖房子需要平面图、结构图、水电图;开发软件也需要类图、时序图、用例图。没有图纸,施工队(程序员)只能靠猜。

2️⃣ UML的三大基本构造块(软考必考点)

UML的体系由三部分构成:事物关系。记住这个框架,UML就学懂了七成。

2.1 事物(Things):图的"名词"------图中有什么东西

事物类型 含义 典型代表
结构事物(Structural) 系统的静态部分,描述概念或物理元素 类(Class)、接口(Interface)、用例(Use Case)、构件(Component)、节点(Node)
行为事物(Behavioral) 系统的动态部分,描述随时间变化的行为 交互(Interaction)、状态机(State Machine)
分组事物(Grouping) 用来组织其他事物的容器 包(Package)
注释事物(Annotational) 对模型的解释和说明 注释(Note)

考试提示:软考常问"下面哪个属于结构事物?"------记住"类、接口、用例、构件、节点"这五个核心就够了。

2.2 关系(Relationships):图的"动词"------事物之间怎么连接

这是UML中最常考、最易混淆的部分。六大关系的图形符号必须背下来!

关系 英文 图形符号 一句话理解 箭头方向
依赖 Dependency 虚线箭头(------> A"用到"B,B变了A可能受影响 A → B(A依赖B)
关联 Association 实线(--------- A和B"认识",有结构上的联系 双向或单向
聚合 Aggregation 空心菱形 + 实线(◇--------- 整体与部分,部分可独立存在(车和轮胎) 整体 → 部分
组合 Composition 实心菱形 + 实线(◆--------- 整体与部分,部分不可独立(公司和部门) 整体 → 部分
泛化 Generalization 空心三角 + 实线(------▷ 继承关系(子类→父类) 子类 → 父类
实现 Realization 空心三角 + 虚线(---▷ 类实现接口 实现类 → 接口

❓ 聚合 vs 组合的必考点

  • 聚合:整体和部分可以分开独立存在。比如"汽车"和"轮胎"------轮胎拆下来还能用,汽车没了轮胎还能存在。
  • 组合:整体和部分同生共死。比如"公司"和"部门"------部门是公司的一部分,公司没了部门就不存在(或失去意义)。

❓ 依赖 vs 关联的区分

  • 依赖:A只在某个方法里用到了B(临时关系,B改了A可能编译不过)。
  • 关联:A把B作为自己的成员变量(长期关系,A"认识"B)。

2.3 图(Diagrams):图的"篇章"------把事物和关系组织起来

UML 2.x 共包含 14种图,分为两大类:

分类 图名称 核心用途
结构图(静态图) 类图、对象图、构件图、部署图、包图、组合结构图 描述系统的静态结构("长什么样")
行为图(动态图) 用例图、顺序图、通信图、状态图、活动图、定时图、交互概览图 描述系统的动态行为("怎么运行")

软考重点考查:类图、用例图、顺序图、活动图、状态图。其余了解即可。

3️⃣ 一张表看懂三大构造块

构造块 本质 核心元素(软考重点)
事物 图里有"什么" 类、接口、用例、构件、节点、交互、状态
关系 它们"什么关系" 依赖、关联、聚合、组合、泛化、实现(六大符号必背
怎么"组织展示" 类图(结构)、用例图/顺序图/活动图/状态图(行为)

4️⃣ 经典例题

例题1:以下UML关系中,表示整体与部分生命周期一致的关系是( )。

A. 依赖

B. 聚合

C. 组合

D. 泛化

解析组合 强调整体与部分生命周期一致(同生共死)。聚合虽然也是整体与部分,但部分可以独立存在。选 C


例题2:在UML类图中,表示"一个类实现一个接口"的关系符号是( )。

A. 实线空心三角箭头

B. 虚线空心三角箭头

C. 实线箭头

D. 虚线箭头

解析 :类实现接口是虚线空心三角箭头;类继承父类是实线空心三角箭头。选 B


例题3:以下属于UML结构图的是( )。

A. 用例图

B. 顺序图

C. 类图

D. 活动图

解析 :结构图包括类图、构件图、部署图等。用例图、顺序图、活动图都属于行为图。选 C

5️⃣ 记忆口诀

UML三构造,事物关系图。

事物分五类,类用构节包(结构核心五元素)。

关系六大种,依赖关联聚合组,泛化实现要分清。

实线空心是泛化,虚线空心是实现。

聚合组合区分口诀

空心菱形是聚合,零件拆了还能活。

实心菱形是组合,同生共死不可脱。

6️⃣ 小测验(评论区对答案)

在UML类图中,如果类A以成员变量的形式持有类B的引用,且类B的对象可以独立于类A的对象存在,则类A和类B之间的关系是( )。

A. 依赖

B. 关联

C. 聚合

D. 组合

🔔 本专栏日更,点击头像 → 专栏《软考中级高频考点》订阅,第一时间接收新内容

#软考中级 #软件设计师 #UML #统一建模语言 #面向对象 #软考备考

相关推荐
一水2 小时前
TTFT优化:一个方案的5次推倒重来
java·ai·状态模式
AC赳赳老秦2 小时前
CSDN 技术社区数据采集:OpenClaw 抓取公开技术热帖,生成领域技术热点周报
java·大数据·前端·数据库·python·php·openclaw
磁爆步兵2 小时前
内存分区:程序运行的核心秘密
java·开发语言·jvm
流星白龙3 小时前
【Docker】4.NameSpace空间隔离实战
java·运维·docker
AI人工智能+电脑小能手3 小时前
【大白话说Java面试题 第207题】【09_Zookeeper篇】第8题:谈谈 ZooKeeper 的可靠性保障机制
java·zookeeper·高可用·可靠性·分布式系统
harmful_sheep3 小时前
maven多版本包导致java.lang.NoClassDefFoundError
java·maven
Mark_ZP3 小时前
【锁2】锁的分类与概念
java·
caishenzhibiao4 小时前
顺势捕猎者副图 同花顺期货通指标
java·c语言·c#
笨蛋不要掉眼泪4 小时前
RabbitMQ消息队列:SpringAMQP
java·分布式·rabbitmq