软件设计师 · 高频练习

UML 组合和聚合怎么区分?

中级 单选题 第 638 题 中等 软件设计师UML 类图组合聚合
题目

在 UML 类图中,订单和订单明细之间通常表现为整体与部分的强拥有关系,订单被删除时订单明细也随之消失;而班级和学生之间虽然也可看作整体与部分,但学生可以脱离某个班级继续存在。前者和后者分别更适合表示为()。

A 组合;聚合
B 聚合;组合
C 继承;实现
D 依赖;关联
题目类型:原创高频考点题 用途:用于帮助理解软件设计师相关考点和答案解析,不等同于官方真题。
书木兰刷题练习 适合懒人、小白的刷题通关平台
正确答案
A
答案解析

组合表示强整体-部分关系,部分对象通常不能脱离整体独立存在,生命周期依赖整体;聚合表示较弱的整体-部分关系,部分对象可以独立存在。订单明细随订单消失,更接近组合;学生可以脱离某个班级存在,更接近聚合。

选项分析

A

正确。订单和订单明细是强拥有关系,班级和学生是弱拥有关系。

B

错误。把强弱关系反了。

C

错误。继承和实现描述的是泛化或接口实现,不是整体部分关系。

D

错误。依赖和关联可以描述使用或连接关系,但不能准确表达本题的强弱整体部分语义。

本题为什么容易错

很多同学只记空心菱形和实心菱形,换成文字场景就不稳。先判断生命周期,再去想图形符号。

先看结论

简短答案

UML 组合和聚合怎么区分,正确答案是 A(组合;聚合)。组合表示强整体-部分关系,部分对象通常不能脱离整体独立存在,生命周期依赖整体;聚合表示较弱的整体-部分关系,部分对象可以独立存在。订单明细随订单消失,更接近组合;学生可以脱离某个班级存在,更接近聚合。

解析

易混淆概念对比表

概念本题判断区别要点记忆提示
组合;聚合 本题正确答案 正确。订单和订单明细是强拥有关系,班级和学生是弱拥有关系。 看到题干核心场景时优先联想到它
聚合;组合 本题干扰项 错误。把强弱关系反了。 看到该词不要急着选,先判断是否真正解决题干问题
继承;实现 本题干扰项 错误。继承和实现描述的是泛化或接口实现,不是整体部分关系。 看到该词不要急着选,先判断是否真正解决题干问题
依赖;关联 本题干扰项 错误。依赖和关联可以描述使用或连接关系,但不能准确表达本题的强弱整体部分语义。 看到该词不要急着选,先判断是否真正解决题干问题
本题易混淆选项怎么区分
  • 聚合;组合:错误。把强弱关系反了。
  • 继承;实现:错误。继承和实现描述的是泛化或接口实现,不是整体部分关系。
  • 依赖;关联:错误。依赖和关联可以描述使用或连接关系,但不能准确表达本题的强弱整体部分语义。
复习

知识点详解

UML 类图题不只是考符号,还考你能不能把业务关系翻译成模型关系。组合通常是强拥有,比如订单和订单明细、窗口和按钮;聚合通常是弱拥有,比如班级和学生、部门和员工。在下午题里,如果关系画错,后续类职责和多重度也容易跟着出错。

备考速记

记法:组合更像“生死相随”,聚合更像“临时归属”。实心菱形通常表示组合,空心菱形通常表示聚合。

UML 类图 在聚合场景中的作用

UML 类图在本题中的核心价值,是解决“在 UML 类图中,订单和订单明细之间通常表现为整体与部分的强拥有关系,订单被删除时订单明细也随之消失;而班级和学生之间虽然也可看作整体与部分,但学生可以脱离某个班级继续存在。前者和后者分别更适合表示为()”这个场景问题。复习时不要只背选项名称,还要理解它为什么适用于该场景,以及它能解决哪类安全、流程或管理问题。

拓展

同类题怎么考

  • 给出聚合场景,判断应该选择哪个概念、工具、协议或管理过程。
  • 考查UML 类图的作用,要求从四个相近选项中找出最符合题干目标的一项。
  • 把UML 类图和聚合;组合、继承;实现、依赖;关联放在一起考,重点看适用场景是否一致。
  • 题干通常会出现一个关键动作或目标,先定位关键词,再回到选项逐一排除。
UML 类图 在软件设计师软考中的考法

软考选择题通常不会只考概念定义,还会把UML 类图放到聚合场景中,要求判断它的作用、适用范围或与相近概念的区别。遇到这类题时,先抓住题干中的业务场景,再看哪个选项最能解决该场景下的核心问题。

解题思路

这类题先看生命周期。部分对象跟着整体一起生灭,优先考虑组合;部分对象只是被整体包含或组织,但自己可以独立存在,优先考虑聚合。不要只看中文里的“包含”,要看强弱关系。

考点定位

组合和聚合的关键不是“有没有整体部分”,而是部分对象能不能脱离整体独立存在。

易错提醒

  • 只背实心菱形、空心菱形,不理解生命周期。
  • 把所有整体部分关系都画成组合,导致模型过强。
  • 下午题里忽略业务对象能否独立存在。

备考提示

  • 软件设计师复习 UML 时,把关联、聚合、组合、继承、实现放在一张表里对比。
  • 画类图时先问对象能否独立存在,再决定关系强弱。
  • 相关专题:/guides/ruankao-case-analysis-question-bank-practice/

你可能还想了解

  • UML 组合和聚合怎么区分?
  • UML 类图是什么?
  • UML 类图在软件设计师考试中怎么考?
  • 软件设计师UML 类图题怎么理解?
  • UML组合和聚合区别怎么考?
  • 软件设计师UML类图题怎么考?

本文小结

本题核心考点是UML 类图在聚合场景中的判断和应用。遇到类似题目时,先看题干描述的目标,再判断哪个选项最符合场景;本题应选择 A(组合;聚合)。