交互概览图是UML中交互图的一种变体,它将多个交互片段进行连接,抽象掉了具体的消息和生命线
交互概览图是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条件分支逻辑表示在序列图中使用altalternative组合片段表示条件分支① 组合片段的守卫条件分别为[验证通过]和[验证不通过]② [验证通过]分支内包含更新稿件状态、发送邮件、返回成功提示的消息序列③ [验证不通过]分支内包含返回错误提示的消息序列两个分支仅有一个会被执行符合条件判断的逻辑语义。四、考点总结UML序列图是软件设计师考试的核心考点在上午综合知识题和下午案例分析题中均有涉及分值占比约3-5分案例题中常作为独立大题出现15分。重点考查内容包括序列图的基本概念、组成元素和应用场景消息类型、生命线、激活等元素的含义和表示方法序列图与其他UML图的区别和联系结合业务场景补全序列图的消息顺序和对象组合片段循环、分支、并行的使用方法备考时建议结合实际业务场景练习绘制序列图重点理解消息的传递方向和顺序逻辑掌握根据文字描述梳理交互流程的能力。参考文献[1] 《软件设计师教程第5版》清华大学出版社2018[2] 历年软件设计师考试UML相关真题及解析