UML 图中的消息

消息是“统一建模语言”(UML)图中的一个元素,它定义进行交互的实例之间的特定类型的通信。消息将信息从一个用生命线表示的实例传递到交互中的另一个实例。

消息的种类

消息指定了发送方和接收方,并定义了生命线之间出现的通信的类型。例如,通信可使用同步调用消息或异步调用消息来调用操作,使用异步信号来发出信号,以及创建或破坏参与者。

可以使用下表中所列示的五种消息来显示参与交互的生命线之间的通信。

消息 描述
创建消息 创建消息表示创建参与交互的实例。创建消息由关键字 «create» 来表示。目标生命线从创建消息所在处开始。例如,在银行方案中,银行经理可以通过在客户机上向服务器发送一条创建消息来启动信用检查。
破坏消息 破坏消息表示破坏参与交互的实例。破坏消息由关键字 «destroy» 来表示。目标生命线在破坏消息所在处结束,并用一个 X 来表示。例如,银行经理在启动信用检查之后可以关闭或破坏客户的信用程序应用程序。
同步调用消息 与操作相关联的同步调用有一条发送消息和一条接收消息。消息是从源生命线发送至目标生命线的。在接收到来自目标生命线的响应之前,源生命线将无法执行其他操作。例如,在银行方案中,银行出纳要向银行经理发送一个信贷请求以获得经理的批准,然后必须等待经理答复之后才能进一步为客户服务。
异步调用消息 与操作相关联的异步调用通常只有一条发送消息,不过也可以具有应答消息。与同步消息不同的是,并不会阻止源生命线接收或发送其他消息。还可以分别移动发送点和接收点,以延迟发送事件和接收事件之间的时间。如果响应与时间或顺序无关,那么可以选择执行此操作。例如,客户可以请求信贷,但是可以通过电话来查询银行信息或者从自动柜员机中取款,同时要等待来自信贷应用程序的响应。
异步信号消息 异步信号消息与信号相关联。信号与消息的区别在于不需要对信号执行任何操作。信号可以表示一种中断或错误情况。要指定信号,应创建异步调用消息并在消息属性视图中更改类型。例如,信贷机构可以向银行经理发送一条错误信号消息,指出未能连接至征信机构。
注: 只有在异步消息中才能移动单个发送点和接收点。可以移动异步消息的发送点和接收点来控制发送事件和接收事件之间的时间延迟,其结果被称为偏差的消息。

自我指导式消息是从源生命线发送至它自身的一种消息。自我指导式消息可以是递归调用或者对属于同一个对象的另一项操作或信号的调用。

消息表示

源生命线发送到目标生命线的消息表示目标生命线实现的操作或信号。可命名和排序消息。线或箭头的外观反映了消息的属性。下表说明了时序图中用来表示消息的图形。

类型 图形 描述 表示
异步 一条线,带有指向右边的开口箭头。 一条线,带有开口箭头 此图形表示异步信号或异步调用,在此过程中,源对象发送消息后立即继续下一步骤。
同步 一条线,带有指向右边的实心箭头。 一条线,带有指向接收生命线的实心箭头 此图形表示同步调用操作,在此操作中,源发送一条等待来自目标的返回消息的消息,然后源才能继续执行其他操作。
同步返回 一条虚线,带有指向左边的实心箭头。 一条虚线,带有指向发送生命线的实心箭头 此图形表示来自过程调用的返回消息。当创建同步消息时,缺省情况下会创建返回消息。可在首选项窗口中更改此缺省设置。

消息表示操作调用或者发送和接收信号。当消息表示一项操作时,操作名称就标识该消息。该消息的自变量被传递至目标源。返回消息包含最终获得的操作调用的自变量。当消息表示信号时,消息的自变量就是信号本身。如果消息是同步调用,那么要从被调用的生命线将消息返回给调用生命线之后才能继续执行调用生命线。

消息标识

可使用名称或操作特征符来标识消息。名称仅标识与操作不相关联的消息的名称。当有操作与消息关联时,操作名会替换该名称。将显示操作特征符来标识操作的名称。在设计阶段,可以在图中使用特征符来为编写设计的开发者提供详细信息。

如下图所示,消息显示为一条带有箭头的线。箭头指向发送消息的方向,也就是从发送消息端指向接收消息端。以下示例说明在表示银行客户申请贷款的银行方案的时序图中如何显示消息。客户将贷款申请表交给银行出纳。银行出纳将该申请表发送给银行经理并等待经理处理。然后,银行经理启动信用检查程序,输入数据,并等待信贷机构发送结果。银行经理接收到响应之后,会向银行出纳发送一条消息并告知所作出的决定。然后,银行出纳会向客户发送一条消息并告知是否批准贷款申请。然后,银行经理将关闭信贷机构程序,客户也就完成了交易。

用来说明消息如何在不同的银行生命线之间传递的银行交易示例。

相关概念
通信图中的消息路径
相关任务
定制消息的缺省设置
在时序图中的生命线上创建和编辑消息
在时序图中对消息指定操作
显示消息特征符
在通信图中创建消息
在通信图中创建消息路径

反馈