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.类图

相关推荐
Warren2Lynch21 小时前
Visual Paradigm UML 平台 6 个月深度使用的真实评测
uml
Jump 不二4 天前
AI 绘图 Skill|Markdown 一键出架构图、UML、数据可视化
人工智能·信息可视化·语言模型·uml
Rsun045516 天前
Java UML类图从入门到实战
uml
m0_488913017 天前
万字长文带你梳理Llama开源家族:从Llama-1到Llama-3,看这一篇就够了!
人工智能·学习·机器学习·大模型·产品经理·llama·uml
Warren2Lynch8 天前
无缝知识发布:开发者指南——将 Visual Paradigm OpenDocs 与企业 WordPress 集成
人工智能·架构·uml
Warren2Lynch10 天前
AI 驱动的 UML 图表支持全景指南
人工智能·架构·uml
roman_日积跬步-终至千里11 天前
【系统架构师-案例题-建模分析】21年下(4)预约挂号管理系统 UML 建模案例分析
系统架构·uml
Warren2Lynch11 天前
UML 之旅:一位从业者对 Visual Paradigm 可视化建模的评测
uml
Meme Buoy11 天前
11.2统一建模语言UML-事务关系图
microsoft·uml