UML——序列图案例总结

序列图的主要目的:展示对象间交互的顺序。详细介绍可以参考上一篇文章,序列图是一个二维图。纵向是时间轴,时间沿着竖线向下延伸,横向轴代表了在协作中各个独立对象的类元角色,也称作生命线,当对象存在时,角色用一条虚线表示,当对象的过程处于激活状态时,生命线是一个双道线。

举例:

1、生命线

生命线名称可带下划线。当使用下划线时,意味着序列图中的生命线代表一个类的特定实例。

2、同步消息

发送人在它继续之前,将等待同步消息响应。

3、异步消息

在发送方继续之前,无需等待响应的消息。

4、注释

5、约束

约束的符号很简单,中括号包括约束内容:[Boolean Test]

6、组合片段

组合片段用来解决交互执行的条件及方式,它允许在序列图中直接表示逻辑组件,用于通过制定条件或子进程的应用区域,为任何生命线的任何部分定义特殊条件和子进程。

<1>抉择(Alt)

抉择用来指明在两个或更多的消息序列之间的互斥的选择,相当于经典的if...else...。

抉择在任何场合下只发生一个序列。可以在每个片段中设置一个临界来指示该片段可以运行的条件。else的临界指示其他任何临界都不为true时应运行的片段。如果所有的临界都为false并且没有else,则不执行任何片段。

<2>选项(Opt)

包含一个可能发生或不能发生的序列

<3>循环(Loop)

片段重复一定次数。可以在临界中指示片段重复的条件。

<4>并行(Par)

一个生命线中持续操作的部分

下面还有几种常见的组合片段:

1、Opt(选项)

包含一个可能发生或可能不发生的序列。可以在临界中指定序列发生的条件。相对于OR

2、Alt(抉择)

包含一个列表,这些片段中包含备选信息序列。在任何场合下只能发生一个序列。可以在每个片段中设置一个临界来指示该运行的条件。else的临界指示其他任何临界都不为True时运行的片段。如果所有的临界都为False并且没有else,则不执行任何片段。相当于swith...if..

3、Loop(循环)

片段重复一定次数。可以在临界中指示片段重复的条件。

loop组合片段具有”Min“和”Max“属性,它们指示片段可以重复的最小和最大次数。默认值是无限制。相当于freach....for

4、Break(中断)

如果执行片段,则放弃序列的其余部分。可以使用临界来指示发生中断的条件。

5、Par(并行)

并行处理。片段中的事件可以交错。

6、Critical(关键)

用在par或Seq片段中。指示此片段中的消息不得与其他消息交错。

7、Seq(弱顺序)

有两个或更多操作数片段。涉及同一生命线的消息必须以片段的顺序发生。如果消息涉及的生命线不同,来自不同片段的消息可能会并行交错。

8、Strict(强顺序)

有两个或更多操作数片段。这些片段必须按给定顺序发生。

解释序列的片段

默认情况下,序列图表明可能发生的一系列消息。在运行的系统中,可能会出现您未选择显示在关系图上的其他消息。

需要考虑更改此释义

1、consider(考虑)

指定此片段描述的消息列表。其他消息可发生在运行的系统中,但对此描述来说意义不大。

可在”Message“属性中键入该列表

2、Ignore(忽略)

此片段描述的消息列表。这些消息可发生在运行的系统中,但对此描述来说意义不大。在”Message“属性中键入该列表。

3、Assert(断言)

操作数片段指定唯一有效的序列。通常在consider或Ignore片段中。

4、Neg(否定)

在此片段中显示的顺序不得发生。通常在Consider或Ignore片段中。

源码下载

原文地址:https://www.cnblogs.com/zhijianliutang/p/2368249.html