UML什么是消息

在任何一个软件系统中,对象都不是孤立存在的,它们之间通过消息进行通信。为了显示一个对象传递一些信息或命令给另外一个对象,使用一条线从对象指向接收信息或命令的对象。这条线可以有自己的名称,用来描述两个对象之间具体的交互内容。既联系了两个对象,又描述了它们间的交互,这就是消息的作用。

什么是消息

消息是用来说明顺序图中对象之间的通信,可以激发操作、创建或撤销对象。为了提高可读性,顺序图的第一个消息总是从顶端开始,并且一般位于图的左边,然后将继发的消息加入图中,稍微比前面的消息低些。

在顺序图中,消息是由从一个对象的生命线指向另一个对象的生命线的直线箭头来表示,UML中有4种类型的消息:同步消息、异步消息、简单消息和返回消息,分别用4种箭头符号表示,如下图所示。箭头上面可以标明要发送的消息名。
UML什么是消息

简单消息是不区分同步和异步的消息,它可以代表同步消息或异步消息。有时消息并不用分得很清楚,是同步还是异步,或者有时不确定是同步还是异步,此时使用简单消息代替同步消息和异步消息既能表达意思,又能很好地被接受。

在对系统建模时,可以用简单消息表示所有的消息,然后再根据情况确定消息的类型。

当有消息产生,对象就处于激活状态,因此消息的箭头总是由生命线上的小矩形出发,在另一个对象(或自身)生命线的小矩形结束。

在各对象间,消息发送的次序由它们在垂直轴上的相对位置决定。如下图所示,发送消息2:“返回查询信息”的时间是在发送消息1:“查询”之后。
UML什么是消息

在顺序图中也可以使用参与者。实际上,在建模顺序图时将参与者作为对象可以说明参与者是如何与系统进行交互的,以及系统如何响应用户的请求。参与者可以调用对象,对象也可以通知参与者。

如下图所示为网购的一部分,顾客与系统交互才有了商品的最终确定。
UML什么是消息

阅读一个顺序图需要沿着时间线传递消息流,通常从最顶层的消息开始。本示例中是从消息1开始的。

  • 参与者将查询条件发送到网购管理系统。
  • 网购管理系统在接收到查询条件后,将查询条件发送到商品信息对象。
  • 商品信息对象接收到查询条件后,将返回一个查询结果到网购管理系统。系统对接收的返回结果进行处理,展示给顾客。
  • 顾客选定商品。

上面的示例图说明了参与者同对象一样可以将消息发送给顺序图中的任何参与者或者对象。

当建模顺序图时,对象可以将消息发送给它自身,这就是反身消息。例如,在下图登录系统中,验证消息就是反身消息。在反身消息里,消息的发送方和接收方是同一个对象。系统对象发送验证消息给它自身,使该对象完成对用户身份的验证。
UML什么是消息

如果一条消息只能作为反身消息,那么说明该操作只能由对象自身的行为触发。这表明该操作可以被设置为Private属性,只有属于同一个类的对象才能调用它。在这种情况下,应该对顺序图进行彻底的检查,以确定该操作不需要被其他对象直接调用。

消息从发送者和接收者的角度可以分为以下4种类型

  • Complete 消息的发送者和接收者都有完整描述,这是一般的情形。
  • Lost 有完整发送者发送消息,但未描述接收事件,如消息没有达到目的。此时在消息的箭头处使用实心圆注释,如下图所示。
    UML什么是消息

  • Found 有完整的接收事件,但未描述发送事件,如消息的来源在描述的范围之外。此时在消息的开始端用实心圆注释,如下图所示。
    UML什么是消息

  • Unknown 发送者和接收者都不确定,这是错误情形。

酷客网相关文章:

赞(1)

评论 抢沙发

评论前必须登录!