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

相关推荐
rolt6 小时前
PlantUML描述《分析模式》第4章企业财务观察(2)
领域模型·架构师·uml
吴声子夜歌3 天前
PlantUML——状态图
uml·plantuml·状态图
吴声子夜歌3 天前
PlantUML——序列图
uml·plantuml·序列图
吴声子夜歌3 天前
PlantUML——活动图
uml·plantuml·活动图
吴声子夜歌4 天前
PlantUML——类图(一)
uml
吴声子夜歌4 天前
PlantUML——类图(二)
uml·plantuml·类图
吴声子夜歌4 天前
PlantUML——对象图
uml·plantuml·对象图
吴声子夜歌5 天前
PlantUML——用例图
uml·plantuml
rolt7 天前
PlantUML描述《分析模式》第4章企业财务观察(1)
产品经理·架构师·uml·系统工程
KobeSacre8 天前
UML 学习
学习·uml