UML相关知识点精讲

一.什么是UML?

1.UML事物

一共有四种:

  • 结构事物
  • 行为事物
  • 分组事物
  • 注释事物

真题

看一眼UML事物的定义,这道题直接秒杀。

2.UML关系

UML一共有四种关系,分别是:

  • 依赖
  • 关联
  • 泛化
  • 实现

①依赖

举例:

此时的依赖关系,读作"A依赖于B"或者"B被A依赖"。说白了就是A需要B,而B不需要A。举例:A是学生,B是课程。当B具体是计算机网络时,读作"学生学习计算机网络";但是当B又变成数据库课程时,读作"学生学习数据库课程"。

②关联

举例:下图怎么读?

思想:一方取1,另一方读横线上的值。

答案:这个关联,读作"1个雇主,对应0~多个员工;一个员工,对应0~1个雇主"。

聚集

讲一下"聚集":

聚集分成两种:

  • 聚合:部分和整体的生命周期不一致(整体消失了,部分仍然存在,部分可以脱离整体存在)

注意:此时这个菱形是空心的。

举例:

当毕业了,班级就不存在了,但是学生仍然存在,并且可以各奔东西。

当公司破产,公司就不存在了,但是员工仍然存在,并且可以继续找下一份工作。

  • 组合:部分和整体的生命周期一致(整体消失了,部分也消失,部分不可以脱离整体存在)

注意:此时这个菱形是实心的。

举例:

此时人体消亡了,那么大脑也就不存在了,因为二者共存亡。

③泛化

其实很简单,这个和继承是相反的关系。

举例:

可见此时箭头方是父类,另一方是子类。

此时有两种读法:

  • "学生和教师"继承"人"
  • "人"泛化成"学生和教师"

④实现

这一块了解了解即可。

真题

解析:

  • 第一空:说白了,你A中,都用到人家B了,这不就是依赖人家B么。所以第一空选B。
  • 第二空:题目中说,"A消失时,B也随之消失",这不就是典型的组合么。就好比人体消亡时,大脑肯定也不复存在,因为二者是共存亡的关系,即组合关系。

解析:

  • 第一空:你A都用到人家标准类库的东西了,这不就是依赖人家么。故第一空选A。
  • 第二空:A消亡B也消亡,故二者是组合关系。(即大脑和人体的关系)
  • 第三空:A消亡B仍存在,故二者是聚合关系。(即员工和公司的关系)

解析:

这道题纯考定义,不多解释,直接秒了。


解析:

组合,说白了就是整体和部分的生命周期一致(即整体消失了,部分也消失)。

故本题选D。


解析:

泛化和继承是互逆的叫法。

  • "多个子类"继承"父类"
  • "父类"泛化成"多个子类"

本题的细化类,就是子类的意思。

故本题选A。


解析:

这道题也是纯考定义,直接秒了。


解析:

这道题选 B 的原因,咱们用大白话给你解释一下:

1. 什么是"关联"?

在 UML(一种画图标准)里,关联就是两个类(比如"人"和"公司")之间的一条连线,表示它们有某种关系。

2. 为什么会有"多个"?

现实生活中,两个对象之间往往不止一种关系。

举个例子:"人""公司"

  • 这个"人"可能是这家"公司"的员工(工作关系)。
  • 这个"人"同时也可能是这家"公司"的客户(买卖关系)。
  • 这个"人"甚至还可能是这家"公司"的股东(投资关系)。

你看,虽然都是"人"和"公司"这两个类,但它们之间其实存在三种不同的关联。所以,两个类之间是可以有多个关联的。这就排除了选项 A。

3. 为什么要"由不同角色标识"?

既然有多个关联,我们在画图或者写代码的时候,怎么区分它们呢?总不能都叫"关系1"吧?

这时候就需要角色名来区分了:

  • 在第一条线上,标记角色为**"员工"**。
  • 在第二条线上,标记角色为**"客户"**。
  • 在第三条线上,标记角色为**"股东"**。

总结一下:

两个类之间就像两个人,既是"同学"又是"邻居"又是"球友"。关系可以有很多种,但为了不把大家绕晕,每一种关系都得有个明确的名字(角色)来区分。

所以,"可以有多个由不同角色标识的"(选项 B)是最准确的说法。


综上,故本题选B。


解析:

这道题有意思。

按理说汽车的座位、发动机、车窗都能单独拆下来,但是题目说了,"将汽车作为一个系统",因此就不能拆下来了,故属于组合关系(大脑和人体的关系了)。

而音乐系统,是一个单独的系统,与汽车系统是并列关系,故属于聚合而不是组合。

故本题选D。


解析:

"聚合"强调的是整体与部分的关系。

而只有C强调的是整体与部分的关系,"一个对象包含其他对象",则该对象是整体,其他对象是部分。当该对象消亡时,不影响其他对象啊,故属于聚合。

故本题选C。


解析:

其实这道题考的比较有歧义,仁者见仁、智者见智吧。

  • 第一空:商品不一定加入购物车,可以单独购买,故不是共存亡,即是聚合关系。
  • 第二空:网店违规关门后,那么该店面里的所有商品也会被下架,因此二者共存亡,属于组合关系。

故本题选D、C。

3.关联多重度

UML关联多重度(Multiplicity): 其实就是用来精确定义类与类之间数量对应关系 的约束规则,它回答了"一个对象能关联多少个对方对象"这个问题。在图中,它通常以 1 (唯一)、0..* (任意多)、0..1 (可选)等形式标注在连线两端,直接指导代码中是使用单个对象引用 还是集合来存储数据,从而确保模型准确反映业务逻辑(如"1个客户对应多个订单")。


举例:下图怎么读?

思想:一方取1,另一方读横线上的值。

答案:这个关联,读作"1个雇主,对应0~多个员工;一个员工,对应0~1个雇主"。

真题

解析:

这是纯纯的定义了,应该直接秒。

举例:

思想:一方取1,另一方读横线上的值。

答案:这个关联,读作"1个雇主,对应0~多个员工;一个员工,对应0~1个雇主"。


综上,故本题选C。


解析:

  • 选项A:

这条线错了,因为项目由团队开发,不能直接关联到员工,这属于越级了,所以错了。

  • 选项C:

这个箭头错了,因为这是项目单方面关联公司,而公司和项目无关。这肯定是错的,题目都说了,公司负责项目,怎么可能和项目无关?二者肯定是相互关联的,而不是单方面关联。故该选项错了

  • 选项D:

这个箭头错了,这个箭头是泛化的意思(即:继承的逆过程),但是公司和项目也不是父子关系(一般和特殊),哪来的泛化之谈?故该选项错了。


综上,故本题选B。


解析:

③④的数量关系搞反了,应该是一个人可以对应0~*个动物。

②中的pet写在那个位置,就表示pet是联系,肯定是不对的。

而①的pet写在那个位置,才表明是角色,读作:"一个人,可以对应0~*个动物,并且动物的角色可以是宠物"。

故本题选A


解析:

这一题找可以"多对多"的就行了。

故本题选C

4.类图

相关推荐
程序猿多布2 天前
UML 类图
uml
Wyc724093 天前
UML建模
uml·个人学习
rolt4 天前
[答疑]把缺省伪状态和历史伪状态合并可行吗
软件工程·架构师·uml
程序猿多布4 天前
UML 关系详解
uml
疯狂打码的少年11 天前
UML类图究竟是什么?—— 软件开发中的“建筑蓝图”
uml
rolt12 天前
[幻灯片]分析设计高阶-02结构(2)-202604更新
ddd·架构师·uml·ooad
a里啊里啊14 天前
软考-软件评测师:知识点整理(七)——软件工程
设计模式·软件工程·软考·uml·结构化开发·软件评测师·软件模型
Warren2Lynch15 天前
[特殊字符]️ 综合指南:结合使用 C4 模型与 UML
uml·c4
Ting.~15 天前
软件设计师备考笔记【day2】-UML 图解 | 面向对象 | 设计模式
笔记·设计模式·uml
清钟沁桐18 天前
编程设计之三 -- UML
uml