交互概览图是UML中交互图的一种变体,它将多个交互片段进行连接,抽象掉了具体的消息和生命线,仅展示交互的整体流程和控制关系。本次案例中“显示一篇已分配的稿件”场景的交互概览图包含两个核心步骤:
第一步:Retrieve list of assigned papers(获取已分配的稿件列表)
第二步:Display selected paper(显示选中的稿件)
该图清晰展示了业务的高层执行顺序,适用于需求分析阶段梳理整体交互流程,帮助开发人员快速理解业务逻辑的宏观框架。
2.2 序列图(顺序图)核心概念
序列图是UML动态建模的核心图之一,以图形化的方式描述了在一个用例或操作的执行过程中,对象如何通过消息相互交互,重点说明消息在对象之间被发送和接收的顺序。其核心作用包括:
可视化展示对象间交互的时间顺序,明确消息传递的先后关系
帮助开发人员识别参与交互的对象、对象职责以及调用关系
作为系统详细设计阶段的重要产出,指导后续代码开发与测试用例设计
在实际开发过程中,通常首先绘制系统序列图,即描述角色和系统在用例场景下交互的高层图形,有助于确定进入和退出系统的边界信息,再逐步细化为具体对象级别的序列图。
2.3 审稿人获取稿件场景建模示例
本次案例以“审稿人获取分配给自己的稿件”业务场景为例,梳理了完整的执行序列:
审稿人浏览会议主页(ConferenceHomepage)
通过导航栏(NavigationBar)浏览已分配给自己的稿件列表(ListOfAssignedPapers)
循环选择(select)目标稿件(Paper)
系统创建(create)已分配稿件实例并显示给审稿人
该场景涉及的对象和操作如下表所示:
三、配套试题及答案解析
3.1 单项选择题
- 下列UML图中,用于描述对象之间消息传递的时间顺序的是( )
A. 类图
B. 用例图
C. 序列图
D. 部署图
答案:C
解析:类图描述系统静态结构;用例图描述系统功能需求;序列图重点展示对象交互的时间顺序;部署图描述系统硬件部署结构。
- 序列图中,垂直方向代表的含义是( )
A. 对象的层次关系
B. 时间轴,从上到下表示时间流逝
C. 消息的传递方向
D. 类的继承关系
答案:B
解析:序列图的纵向为时间轴,时间沿竖线向下延伸,每个对象对应一条垂直的生命线,横向代表不同的对象/参与者。
- 在审稿场景中,“ListOfAssignedPapers”对象的核心职责是( )
A. 存储单个稿件的详细信息
B. 维护已分配给审稿人的稿件集合
C. 处理页面导航逻辑
D. 渲染会议主页面
答案:B
解析:根据对象定义,ListOfAssignedPapers即“分配的稿件列表”,用于存储和管理多个已分配稿件的集合,是业务逻辑层的核心数据容器。
- 序列图中,表示对象存在周期的元素是( )
A. 消息箭头
B. 生命线
C. 激活条
D. 组合片段
答案:B
解析:生命线是序列图中对象下方的垂直虚线,代表对象在交互过程中的存在时间;激活条表示对象正在执行某个操作;消息箭头表示对象间的通信。
- 下列关于交互概览图的说法,错误的是( )
A. 可以展示多个交互片段的整体流程
B. 需要详细标注每个消息的参数和返回值
C. 适合梳理业务的高层执行顺序
D. 是交互图的一种变体
答案:B
解析:交互概览图会抽象掉具体的消息和生命线,仅展示宏观流程,不需要标注消息的具体细节,因此B选项错误。
3.2 多项选择题
- 序列图的核心组成元素包括( )
A. 对象/参与者
B. 生命线
C. 消息
D. 激活(控制焦点)
答案:ABCD
解析:序列图由对象(顶部矩形框)、生命线(垂直虚线)、消息(带箭头的线)和激活条(生命线中的矩形)四个核心元素构成。
- 在审稿人获取稿件的场景中,属于交互操作的有( )
A. navigate(导航)
B. browse(浏览)
C. select(选择)
D. create(创建)
答案:ABCD
解析:根据案例中的操作定义,四个选项均为该场景下对象间的交互操作,覆盖了从页面导航到稿件创建的全流程。
- 下列属于UML动态建模图的有( )
A. 序列图
B. 活动图
C. 状态图
D. 组件图
答案:ABC
解析:组件图属于静态结构图,用于描述系统组件的依赖关系;序列图、活动图、状态图均属于动态行为图,描述系统的运行时行为。
- 序列图可以表达的消息类型包括( )
A. 同步消息
B. 异步消息
C. 返回消息
D. 自我调用消息
答案:ABCD
解析:序列图支持多种消息类型:同步消息(实心箭头)、异步消息(半箭头)、返回消息(虚线箭头)、自我调用(指向自身生命线的箭头)。
- 关于序列图的应用场景,下列说法正确的有( )
A. 可用于梳理用例的具体执行流程
B. 可帮助识别对象的职责和接口
C. 可作为系统测试用例设计的参考
D. 可用于描述系统的硬件部署架构
答案:ABC
解析:描述硬件部署架构是部署图的作用,其余选项均为序列图的典型应用场景。
3.3 判断题
- 序列图中的消息顺序是按照从右到左的顺序排列的。( )
答案:错误
解析:序列图的消息顺序按照纵向时间轴从上到下排列,横向为不同对象,消息箭头从发送者指向接收者。
- 交互概览图比序列图更适合展示复杂交互的宏观流程。( )
答案:正确
解析:交互概览图抽象了具体消息细节,仅展示交互片段的执行顺序,更适合宏观流程梳理。
- 序列图中一个对象只能向其他对象发送消息,不能向自身发送消息。( )
答案:错误
解析:序列图支持自我调用消息,即对象可以调用自身的方法,表现为箭头指向自身的生命线。
- 在审稿场景中,“Reviewer”是与系统交互的外部参与者。( )
答案:正确
解析:Reviewer即审稿人,是使用系统的外部用户,属于序列图中的参与者角色。
- 序列图只能描述线性的交互流程,无法表达循环和分支逻辑。( )
答案:错误
解析:UML2.0中序列图通过组合片段(Combined Fragment)可以表达循环(loop)、条件分支(alt/opt)等复杂逻辑。
3.4 简答题
- 请简述序列图和协作图(通信图)的异同点。
答:
相同点:二者都属于UML交互图,都用于描述对象之间的交互关系,表达的语义是等价的,可以相互转换。
不同点:
(1)侧重点不同:序列图重点强调交互的时间顺序,通过纵向时间轴清晰展示消息的先后顺序;协作图重点强调参与交互的对象之间的组织结构和连接关系。
(2)布局不同:序列图按照时间顺序纵向布局,每个对象对应一条垂直生命线;协作图按照对象的关联关系空间布局,通过消息编号表示时间顺序。
(3)适用场景不同:序列图适合分析交互的时间顺序和调用流程;协作图适合梳理对象之间的协作关系和网络拓扑结构。
- 请结合本次审稿场景,说明绘制序列图的基本步骤。
答:绘制该场景序列图的步骤如下:
(1)识别交互参与者和对象:确定该场景的参与者为Reviewer(审稿人),涉及的对象包括ConferenceHomepage、NavigationBar、ListOfAssignedPapers、AssignedPapers、Paper。
(2)绘制生命线:在序列图顶部依次排列参与者和对象,向下绘制对应的垂直生命线。
(3)梳理消息顺序:按照业务流程依次添加消息:
① 审稿人向ConferenceHomepage发送navigate消息,访问会议主页;
② ConferenceHomepage返回show消息,显示主页内容;
③ 审稿人向NavigationBar发送browse消息,浏览已分配稿件;
④ NavigationBar请求ListOfAssignedPapers返回稿件列表;
⑤ 审稿人发送select消息选择目标稿件;
⑥ 系统调用create操作创建Paper实例并显示给审稿人。
(4)添加激活条:在每个对象执行操作的生命线段上添加激活条,表示对象正在处理请求。
(5)添加组合片段:对于循环选择稿件的逻辑,添加loop组合片段包裹select相关的消息。
3.5 案例分析题
某审稿系统新增“稿件驳回”功能,业务流程如下:
- 审稿人在稿件详情页点击“驳回”按钮;
- 系统显示驳回原因输入框;
- 审稿人输入驳回原因并提交;
- 系统验证驳回原因是否符合格式要求;
- 验证通过后,更新稿件状态为“已驳回”,并向作者发送驳回通知邮件;
- 系统返回操作成功提示给审稿人。
请回答以下问题:
(1)该流程需要新增哪些对象和操作?
(2)画出该流程的高层交互概览图。
(3)说明该流程中存在的条件分支逻辑应如何在序列图中表示。
答:
(1)新增的对象和操作:
新增对象:EmailService(邮件服务)、PaperStatus(稿件状态管理)
新增操作:reject(驳回)、inputReason(输入原因)、validate(验证)、updateStatus(更新状态)、sendEmail(发送邮件)、showSuccess(显示成功提示)
(2)高层交互概览图流程:
开始 → 执行“提交驳回请求”交互 → 执行“验证驳回原因”交互 → 条件判断:验证是否通过?
→ 验证通过:执行“更新稿件状态”交互 → 执行“发送驳回通知”交互 → 执行“返回成功提示”交互 → 结束
→ 验证不通过:执行“返回格式错误提示”交互 → 结束
(3)条件分支逻辑表示:
在序列图中使用alt(alternative)组合片段表示条件分支:
① 组合片段的守卫条件分别为[验证通过]和[验证不通过];
② [验证通过]分支内包含更新稿件状态、发送邮件、返回成功提示的消息序列;
③ [验证不通过]分支内包含返回错误提示的消息序列;
两个分支仅有一个会被执行,符合条件判断的逻辑语义。
四、考点总结
UML序列图是软件设计师考试的核心考点,在上午综合知识题和下午案例分析题中均有涉及,分值占比约3-5分,案例题中常作为独立大题出现(15分)。重点考查内容包括:
序列图的基本概念、组成元素和应用场景
消息类型、生命线、激活等元素的含义和表示方法
序列图与其他UML图的区别和联系
结合业务场景补全序列图的消息顺序和对象
组合片段(循环、分支、并行)的使用方法
备考时建议结合实际业务场景练习绘制序列图,重点理解消息的传递方向和顺序逻辑,掌握根据文字描述梳理交互流程的能力。
参考文献:
[1] 《软件设计师教程(第5版)》,清华大学出版社,2018
[2] 历年软件设计师考试UML相关真题及解析