软件设计师 · 高频练习

UML 状态图和活动图怎么区分?

中级 单选题 第 644 题 中等 软件设计师UML状态图活动图软件建模
题目

某订单对象会经历“待支付、已支付、已发货、已完成、已取消”等状态,不同事件会触发状态转换;另一个图用于描述用户提交订单、系统校验库存、生成支付单、通知仓库发货这一串业务处理步骤。关于这两类 UML 图,下列说法较合理的是()。

A 前者更适合用状态图,后者更适合用活动图
B 前者更适合用部署图,后者更适合用构件图
C 只要出现箭头,就一定是时序图
D 状态图只能描述数据库表结构,活动图只能描述网络拓扑
题目类型:原创高频练习题 用途:用于帮助理解软件设计师相关考点和答案解析,不等同于官方真题。
正确答案
A
答案解析

状态图关注一个对象在生命周期中有哪些状态,以及事件如何触发状态之间的转换。题干中的订单从待支付到已支付、已发货、已完成,本质是在描述订单对象的状态变化。活动图关注业务流程、处理步骤、分支和并行活动,题干中的提交订单、校验库存、生成支付单、通知发货,是一串业务动作流程,因此更适合用活动图。

选项分析

A

正确。订单生命周期状态变化对应状态图,业务处理步骤对应活动图。

B

错误。部署图关注运行节点和软件制品部署,构件图关注构件及其依赖关系,不适合题干场景。

C

错误。UML 很多图都有箭头,不能只看有没有箭头,要看箭头表达的是消息、流程、状态迁移还是依赖关系。

D

错误。数据库表结构通常用 ER 图或类图表达,网络拓扑也不是活动图的核心用途。

本题为什么容易错

这题容易错在把“流程”和“状态变化”混为一谈。活动图也可能有开始、结束和分支,看起来像状态流转;状态图也有迁移箭头,看起来像流程。考试真正看的不是图长得像什么,而是它想表达的对象。

先看结论

简短答案

UML 状态图和活动图怎么区分,正确答案是 A(前者更适合用状态图,后者更适合用活动图)。状态图关注一个对象在生命周期中有哪些状态,以及事件如何触发状态之间的转换。题干中的订单从待支付到已支付、已发货、已完成,本质是在描述订单对象的状态变化。活动图关注业务流程、处理步骤、分支和并行活动,题干中的提交订单、校验库存、生成支付单、通知发货,是一串业务动作流程,因此更适合用活动图。

解析

易混淆概念对比表

概念本题判断区别要点记忆提示
前者更适合用状态图,后者更适合用活动图 本题正确答案 正确。订单生命周期状态变化对应状态图,业务处理步骤对应活动图。 看到题干核心场景时优先联想到它
前者更适合用部署图,后者更适合用构件图 本题干扰项 错误。部署图关注运行节点和软件制品部署,构件图关注构件及其依赖关系,不适合题干场景。 看到该词不要急着选,先判断是否真正解决题干问题
只要出现箭头,就一定是时序图 本题干扰项 错误。UML 很多图都有箭头,不能只看有没有箭头,要看箭头表达的是消息、流程、状态迁移还是依赖关系。 看到该词不要急着选,先判断是否真正解决题干问题
状态图只能描述数据库表结构,活动图只能描述网络拓扑 本题干扰项 错误。数据库表结构通常用 ER 图或类图表达,网络拓扑也不是活动图的核心用途。 看到该词不要急着选,先判断是否真正解决题干问题
本题易混淆选项怎么区分
  • 前者更适合用部署图,后者更适合用构件图:错误。部署图关注运行节点和软件制品部署,构件图关注构件及其依赖关系,不适合题干场景。
  • 只要出现箭头,就一定是时序图:错误。UML 很多图都有箭头,不能只看有没有箭头,要看箭头表达的是消息、流程、状态迁移还是依赖关系。
  • 状态图只能描述数据库表结构,活动图只能描述网络拓扑:错误。数据库表结构通常用 ER 图或类图表达,网络拓扑也不是活动图的核心用途。
复习

知识点详解

状态图和活动图都能看到节点和箭头,所以单靠图形外观判断很不稳。更可靠的方法是看题干主语:如果主语是订单、工单、连接、任务这类对象,并且描述待处理、处理中、已关闭这类状态,就偏状态图;如果主语是一段业务处理过程,并且描述先做什么、再做什么、分支怎么走,就偏活动图。

备考速记

速记:状态图看“对象的一生”,活动图看“事情的做法”。对象状态变来变去,选状态图;业务步骤一环接一环,选活动图。

UML 在软件建模场景中的作用

UML在本题中的核心价值,是解决“某订单对象会经历“待支付、已支付、已发货、已完成、已取消”等状态,不同事件会触发状态转换;另一个图用于描述用户提交订单、系统校验库存、生成支付单、通知仓库发货这一串业务处理步骤。关于这两类 UML 图,下列说法较合理的是()”这个场景问题。复习时不要只背选项名称,还要理解它为什么适用于该场景,以及它能解决哪类安全、流程或管理问题。

拓展

同类题怎么考

  • 给出软件建模场景,判断应该选择哪个概念、工具、协议或管理过程。
  • 考查UML的作用,要求从四个相近选项中找出最符合题干目标的一项。
  • 把UML和前者更适合用部署图,后者更适合用构件图、只要出现箭头,就一定是时序图、状态图只能描述数据库表结构,活动图只能描述网络拓扑放在一起考,重点看适用场景是否一致。
  • 题干通常会出现一个关键动作或目标,先定位关键词,再回到选项逐一排除。
UML 在软件设计师软考中的考法

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

解题思路

老师讲这组图时,一般会让你先问一句:我是在看一个对象的一生,还是在看一件事怎么一步步完成?订单从待支付变成已发货,是对象状态;下单流程从提交到发货,是业务动作。这个分界线抓住,状态图和活动图就不容易混。

考点定位

UML 图题先看图要表达什么。表达“对象状态如何变化”,优先想到状态图;表达“业务流程如何流转”,优先想到活动图;表达“对象之间按时间顺序发送消息”,才更像时序图。

易错提醒

  • 看到订单就直接选活动图,忽略题干实际讲的是订单状态。
  • 看到箭头就选时序图,没有判断箭头表示消息还是状态迁移。
  • 把活动图当成只能画人工流程,忽略系统内部处理活动也可以建模。

备考提示

  • 状态图记一句话:一个对象有哪些状态,什么事件让它变状态。
  • 活动图记一句话:一件业务怎么一步步做完,中间有没有分支和并行。
  • 软件设计师 UML 题建议把用例图、类图、时序图、活动图、状态图放在一张对照表里复习。

你可能还想了解

  • UML 状态图和活动图怎么区分?
  • UML是什么?
  • UML在软件设计师考试中怎么考?
  • 软件设计师UML题怎么理解?
  • UML状态图和活动图区别怎么考?
  • 软件设计师UML状态图怎么考?

本文小结

本题核心考点是UML在软件建模场景中的判断和应用。遇到类似题目时,先看题干描述的目标,再判断哪个选项最符合场景;本题应选择 A(前者更适合用状态图,后者更适合用活动图)。