这是一篇为您准备的专业 CSDN 技术博客。
【图解软考八股034】深入解析 UML:识别标准建模图示
一、 题目展示
10. UML(Unified Modeling Language)是面向对象设计的建模工具,独立于任何具体程序设计语言,以下( )不属于 UML 中的模型。
A、用例图 (Use Case Diagram)
B、协作图 (Collaboration Diagram)
C、活动图 (Activity Diagram)
D、PAD 图 (Problem Analysis Diagram)
二、 正确答案

正确答案:D
三、 题目解析
本题考查的核心知识点是 UML(统一建模语言) 的组成体系。
1. 选项分析
- A. 用例图 (Use Case Diagram):属于 UML 的行为图。它从用户的角度描述系统的功能,展示外部执行者(Actor)与系统用例之间的交互关系。
- B. 协作图 (Collaboration Diagram) :属于 UML 的交互图。在 UML 2.0 及后续版本中,它也被称为通信图 (Communication Diagram)。它主要用于描述对象之间通过消息传递进行的协作关系,侧重于对象的结构组织。
- C. 活动图 (Activity Diagram):属于 UML 的行为图。它描述了系统从一个活动到另一个活动的控制流,通常用于业务流程建模或算法逻辑的视觉表达。
- D. PAD 图 (Problem Analysis Diagram) :非 UML 模型 。PAD 图即"问题分析图",是由日本日立公司于 1973 年提出的一种结构化程序设计工具。它利用树状结构来表示程序的控制流,属于典型的结构化设计(Structured Design)范畴,而非面向对象设计(Object-Oriented Design)中的 UML 标准。
2. 结论
UML 是一套标准的图形化建模语言,旨在支持面向对象的开发。由于 PAD 图 是用于描述结构化逻辑的工具,且其诞生时间早于 UML 的标准化进程,因此它不包含在 UML 的 14 种标准图样之中。
四、 相关知识点深度总结
为了帮助读者构建完整的知识体系,我们需要深入理解 UML 的分类及其核心概念。
1. 什么是 UML?
UML (Unified Modeling Language) 称为"统一建模语言"。它并不是一种程序设计语言,而是一种可视化建模标准。
- 独立性:它独立于具体的编程语言(如 C++、Java、Python),也独立于具体的软件开发过程。
- 目的:用于对软件系统进行规格说明、可视化表达、构造和文档化。
2. UML 图的分类体系
根据 UML 2.x 标准,建模图通常分为两大类:静态结构图 与动态行为图。
(1) 结构图 (Structural Diagrams)
描述系统的静态方面,即系统由哪些部分组成。
- 类图 (Class Diagram):核心图示,描述类、接口及它们之间的静态关系。
- 对象图 (Object Diagram):描述某一时刻系统中对象的快照。
- 组件图 (Component Diagram):描述软件组件及其相互依赖关系。
- 部署图 (Deployment Diagram):描述硬件物理节点及其上的软件构件。
- 包图 (Package Diagram):描述模型元素的分组组织。
(2) 行为图 (Behavioral Diagrams)
描述系统的动态方面,即系统如何随时间变化。
- 用例图 (Use Case Diagram):确定系统的边界及功能。
- 状态机图 (State Machine Diagram):描述对象在其生命周期内因事件触发的状态转换。
- 活动图 (Activity Diagram):描述工作流或操作的步骤逻辑。
- 交互图 (Interaction Diagrams)(子类):
- 时序图 (Sequence Diagram):强调消息传递的时间顺序(开发中最常用)。
- 通信/协作图 (Communication Diagram):强调对象间的组织结构。
- 交互概览图 与计时图。
3. 专业术语速查对照表
| 专业名词 | 英文全称 | 核心作用 |
|---|---|---|
| Actor | 执行者/角色 | 系统外部与系统交互的人或事 |
| Use Case | 用例 | 系统提供的、对执行者有价值的功能单元 |
| Aggregation | 聚合 | "整体-部分"关系,部分可以脱离整体存在(如:班级与学生) |
| Composition | 组合 | 强关联的"整体-部分"关系,部分生命周期随整体结束(如:公司与部门) |
| Generalization | 泛化 | 面向对象中的"继承"关系 |
五、 结语
在软件工程中,选择正确的建模工具是成功的一半。UML 提供了从需求分析到系统部署的全方位视角,而像 PAD 图、流程图等传统工具,虽在特定逻辑描述中仍有价值,但不应与面向对象的 UML 标准混淆。