云计算百科
云计算领域专业知识百科平台

【面向对象】UML行为图:顺序图(消息传递、生命线、时间顺序)

考点频率:★★★★★(下午题必考,通常结合类图一起出题,分值4-6分)
难度:⭐⭐⭐⭐
建议:别花时间画图,把精力全押在“根据文字描述判断消息顺序”和“区分同步/异步消息”上,这是下午题唯一的拿分套路。

1️⃣ 顺序图是用来干什么的?

顺序图 是UML中最重要的动态交互图之一。它专注于描述 “在特定场景下,哪些对象参与了协作,以及它们按什么时间顺序互相发送了什么消息” 。

  • 核心目的:清晰地展示消息的时间顺序。
  • 适用场景:用例的实现、系统某个业务流程的详细设计。

一句话:顺序图 = “按时间顺序排好的对象通话记录” 。如果你下午题拿到一段文字描述(比如“用户登录”),让你画或补全顺序图,本质上就是让你把“谁先给谁发什么消息”理清楚。

2️⃣ 顺序图的四大核心元素(必须能看懂)

元素图形符号含义下午题怎么考?
生命线(Lifeline) 矩形 + 下方垂直虚线 代表参与交互的一个对象(或类角色)。矩形内格式:对象名:类名 或 :类名(匿名对象) 补全:给你一段文字,让你补全生命线头部的名字
消息(Message) 带箭头的实线或虚线 从一个生命线指向另一个生命线的箭头,代表一次调用或信号发送 补全:给你描述,让你补全箭头上的消息名
激活条(Activation Bar) 生命线上的细长矩形 表示该对象正在执行某段代码(占用CPU)的时间段 识别:判断哪个对象正在处理请求
组合片段(Combined Fragment) 带 alt / loop / opt 字样的框 表示分支(if-else)、循环(for/while)或可选执行逻辑 下午题极少考,知道有这回事就行

3️⃣ 两种容易混淆的消息类型(软考必考)

这是上午选择题的重点,也是下午题画图的关键:

类型图形语义举例
同步消息(Synchronous) 实线实心箭头(——►) 发送者发消息后等待接收者处理完毕并返回,才继续执行。有来有回,你等我。 客户端发起登录()请求,必须等服务端返回“成功/失败”,客户端才能继续。
异步消息(Asynchronous) 虚线实心箭头(–►) 发送者发消息后不等待,立即继续执行自己的事。我发出去了,你慢慢弄,我不等你了。 用户点击“打印”按钮,系统把打印任务丢给打印机,然后立刻返回“正在打印”,用户继续操作,不用傻等打印结束。

考试判断逻辑:如果题干出现 “请求”、“调用”、“返回结果” 等词 → 同步。如果出现 “通知”、“触发”、“发送信号” ,并且强调不需要等待返回值 → 异步。

两点补充:

  • 返回消息(Return Message) 通常用虚线箭头表示,指向调用者,代表同步调用的结束。它本身不单独算一种消息类型,而是同步调用的配套元素。
  • 软考下午题如果让你画“登录时序”,登录请求 是同步消息,返回用户信息 是返回消息。

4️⃣ 顺序图的“自上而下,先来后到”原则(阅读理解题的核心)

软考下午题最喜欢这样出:给你一段文字描述,然后问“消息1、消息2、消息3分别应该填什么?”。

你唯一的做题依据就是 “从上到下,时间顺序必须和文字描述高度一致” 。只要是同一层级的交互,文字里先写的就先画在上方,后写的就画在下方。

文字→顺序图的转换步骤(考场可直接套用):

  • 找动词:将文字中所有“调用、请求、发送、返回”等动作词汇圈出来,每个动作对应顺序图中的一条“消息”。
  • 定主角:看这些动作在谁和谁之间发生。比如“用户→登录页面→认证服务→数据库”,这就是4个生命线。
  • 按时间顺序排列:按照自然语序,哪个动词先发生,哪条消息就画在最上面。比如文字先说“输入密码”再说“验证密码”,那顺序图上就是先显示“输入”消息、再显示“验证”消息。
  • 5️⃣ 经典例题(直接上题,看看你能不能做对)

    例题1(同步/异步判断):在UML顺序图中,表示消息发送者发送消息后需要等待接收者返回才能继续执行的消息类型是( )。

    A. 同步消息
    B. 异步消息
    C. 返回消息
    D. 创建消息

    解析:同步消息的特点就是“等待接收方完成并返回,发送方才继续”。选 A。


    例题2(消息补全——下午题高频):某在线支付流程如下:

    “用户首先在订单页面提交支付请求,支付服务收到请求后调用银行系统进行扣款。银行系统扣款成功后返回支付服务,支付服务再更新订单状态为‘已支付’。”

    请按照时间顺序,指出这三条消息的发送者和接收者,并判断它们属于哪种消息类型。

    解析:

  • 提交支付请求:订单页面 → 支付服务。这是同步调用,需要等结果。
  • 调用扣款接口:支付服务 → 银行系统。这是同步调用,需要等“扣款成功”的返回结果。
  • 更新订单状态:支付服务 → 订单页面。这是返回消息,用于同步更新UI状态。
  • (答题要点:生命线分别是“订单页面”“支付服务”“银行系统”,三条消息按该顺序排列即可。)

    6️⃣ 记忆口诀

    顺序图看时间轴,生命线竖着往下走。
    同步等待实心箭,异步发出不回头。
    自上而下排顺序,文字描述是推手。

    7️⃣ 小测验(评论区对答案)

    在UML顺序图中,如果一条消息用实线实心箭头表示,这意味着( )。
    A. 发送者发送消息后立即继续执行,无需等待接收者
    B. 发送者发送消息后必须等待接收者处理完毕并返回结果
    C. 该消息表示创建了一个新对象
    D. 该消息表示销毁了一个对象

    🔔 本专栏日更,点击头像 → 专栏《软考中级高频考点》订阅,第一时间接收新内容

    #软考中级 #软件设计师 #UML顺序图 #同步消息 #异步消息 #软考备考

    赞(0)
    未经允许不得转载:网硕互联帮助中心 » 【面向对象】UML行为图:顺序图(消息传递、生命线、时间顺序)
    分享到: 更多 (0)

    评论 抢沙发

    评论前必须登录!