软件设计师 · UML · 场景辨析

时序图、活动图和部署图怎么区分?

时序图、活动图、部署图的名字都不难,但题目一写成场景,很多同学就开始摇摆。我的建议是别先看选项,先问题干的镜头对准哪里:对准对象消息、业务流程,还是服务器节点。

软件设计师专题 软考题库编辑部 持续更新

时序图看消息先后,活动图看流程走向

时序图关注对象之间按时间顺序发送消息。比如用户界面调用认证服务,认证服务查询用户数据库,数据库返回结果,这种“谁先调谁、谁再返回”的叙述就很像时序图。

活动图关注活动之间的控制流。比如提交报销、部门审批、财务复核、付款,流程中可能有分支、并行、汇合,这种场景就更像活动图。

关注点容易出现的词
时序图对象间消息的时间顺序消息、调用、返回、交互
活动图活动流程、分支和并行流程、审批、判断、并行
部署图节点、服务器和构件部署Web服务器、数据库服务器、节点
类图静态结构和类关系类、继承、关联、聚合

部署图一出现服务器节点,就很明显

部署图描述系统运行时的物理结构,包括硬件节点、执行环境、软件构件以及它们之间的连接关系。题干如果出现 Web 服务器、应用服务器、数据库服务器、终端、节点部署,基本就是这个方向。

它不是用来描述业务审批流程的,也不是用来说明类之间继承关系的。部署图解决的是“软件放在哪里运行,节点之间怎么连接”的问题。

做题时按“镜头”判断

如果镜头对准的是对象之间一来一回的消息,用时序图;如果镜头对准的是业务步骤怎么流转,用活动图;如果镜头拉远到服务器、节点、部署拓扑,用部署图。

这个判断比死背定义更管用。因为软件设计师题目常常不直接问定义,而是给你一个业务或系统场景,让你选最适合的 UML 图。

相关题目解析

下面这些题目和本专题的判断方法关联较强,适合读完概念后回到具体题干里校验理解。