UML时序图(Squence diagram)的设计介绍[通俗易懂]

UML时序图(Squence diagram)的设计介绍[通俗易懂]本文以starUML工具为例。一、概念UML时序图,也叫顺序图,是一种详细表示对象之间以及对象与参与者实例之间交互的图,它由一组协作的对象(或参与者实例)以及它们之间可发送的消息组成,它强调消息之间的顺序。它详细而直观地表现了一组相互协作的对象在执行一个(或少量几个)用例时的行为依赖关系,以及操作和消息的时序关系。类图是反映类、对象、接口等事物之间的依赖、继承、实现关系等,主要是静…

大家好,又见面了,我是你们的朋友全栈君。

本文以starUML工具为例。

一、概念

UML时序图,也叫顺序图,是一种详细表示对象之间以及对象与参与者实例之间交互的图,它由一组协作的对象(或参与者实例)以及它们之间可发送的消息组成,它强调消息之间的顺序。

它详细而直观地表现了一组相互协作的对象在执行一个(或少量几个)用例时的行为依赖关系,以及操作和消息的时序关系。

类图是反映类、对象、接口等事物之间的依赖、继承、实现关系等,主要是静态关系,对对象之间的消息(交互情况)表达不够详细;;而顺序图既详细又直观的表达了消息传递,一张时序图能表示跟该行为相关的少数几个对象之间的交互。

 

二、时序图的结构

序列图(Sequence Diagram)是由对象(Object)、生命线(Lifeline)、激活(Activation)、消息(Messages)、分支与从属流、组合片段(Combined Fragment)等元素构成的。

1、对象(Object)

对象就是指类的实例。我认为在序列图中对象有三种状态:激活、运行(存在)和销毁。

UML时序图(Squence diagram)的设计介绍[通俗易懂]

2、生命线

生命线(Lifeline)是一条垂直的虚线,用来表示序列图中的对象在一段时间内的存在。

UML时序图(Squence diagram)的设计介绍[通俗易懂]

3、激活

序列图可以描述对象的激活(Activation),激活是对象操作的执行,它表示一个对象直接或通过从属操作完成操作的过程。在UML图中通过一个窄长的矩形来表示,矩形的高度表示对象存在的过程。

UML时序图(Squence diagram)的设计介绍[通俗易懂]

 

4、消息

消息(Messages)是对象间的一种通信机制。由发送对象向另一个或其他几个接收对象发送信号,或由一个对象(发送者或调用者)调用另一个对象(接收者)的操作。

StarUML中,位置如下图:

UML时序图(Squence diagram)的设计介绍[通俗易懂]

  同步消息=调用消息(Synchronous Message

  消息的发送者把控制传递给消息的接收者,然后停止活动,等待消息的接收者放弃或者返回控制。用来表示同步的意义。

UML时序图(Squence diagram)的设计介绍[通俗易懂]

  异步消息(Asynchronous Message

  消息发送者通过消息把信号传递给消息的接收者,然后继续自己的活动,不等待接受者返回消息或者控制。异步消息的接收者和发送者是并发工作的。

  UML时序图(Squence diagram)的设计介绍[通俗易懂]

 

自关联消息

  表示方法的自身调用以及一个对象内的一个方法调用另外一个方法。如下图所示

UML时序图(Squence diagram)的设计介绍[通俗易懂]

 

5、执行者

表示这个对象是由谁来操作的.如下图,都是由员工来操作的。

UML时序图(Squence diagram)的设计介绍[通俗易懂]

6、约束

约束的符号很简单;格式是: [Boolean Test]

UML时序图(Squence diagram)的设计介绍[通俗易懂]

我的StarUML版本上,对于约束或条件,只有迭代器,返回值等几个选项,如下图:

UML时序图(Squence diagram)的设计介绍[通俗易懂]

 

7、组合片段

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

在StarUML的左侧工具栏中,符号如下:

UML时序图(Squence diagram)的设计介绍[通俗易懂]

选择某一种组合片段的位置,在右侧的属性栏中:

UML时序图(Squence diagram)的设计介绍[通俗易懂]

常用的组合片段有:

a.       抉择(Alt)

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

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

 UML时序图(Squence diagram)的设计介绍[通俗易懂]

 

 

b.       循环(Loop)

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

UML时序图(Squence diagram)的设计介绍[通俗易懂]

 

c.       并行(Par)

 

 UML时序图(Squence diagram)的设计介绍[通俗易懂]

下表列出了常用的组合片段:

片段类型

名称

说明

Opt

选项

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

Alt

抉择

包含一个片段列表,这些片段包含备选消息序列。 在任何场合下只发生一个序列。

可以在每个片段中设置一个临界来指示该片段可以运行的条件。 else 的临界指示其他任何临界都不为 True 时应运行的片段。 如果所有临界都为 False 并且没有 else,则不执行任何片段。

Loop

循环

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

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

Break

中断

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

Par

并行

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

Critical

关键

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

Seq

弱顺序

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

Strict

强顺序

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

 

有关如何解释序列的片段

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

以下片段类型可用于更改此释义:

片段类型

名称

说明

Consider

考虑

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

“Messages”属性中键入该列表。

Ignore

忽略

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

“Messages”属性中键入该列表。

Assert

断言

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

Neg

否定

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

 

 

下面是一个完整的例子:(中间的用法,可能不太正确,请当做示意图凑合着看)

UML时序图(Squence diagram)的设计介绍[通俗易懂]

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/150524.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • icem二维非结构网格划分_ICEM蜗壳非结构网格划分[通俗易懂]

    icem二维非结构网格划分_ICEM蜗壳非结构网格划分[通俗易懂]ICEM-蜗壳网格划分导入模型你需要在ICEM中导入你的模型,一般用的模型格式为STP、IGS、X_T等通用第三方格式。同时如果你有提前画好的网格你也可以导入进来。PRAT建立创建好各部分的Part,并创建body,与此同时修复模型,对于简单的模型只需要做一个修复模型的命令就行,但是对于一些复杂的模型再导入到ICEM中很多部位都是需要做修复的,这时候就需要对这一部分破损的模型进行修复。…

  • 韩国代理服务器_国内免费代理服务器

    韩国代理服务器_国内免费代理服务器由于台湾地区的地震影响到内地出口光缆,造成国内访问国外网站出现故障。推荐代理服务器:地址:222.231.50.97端口:80……[digit,linkhttp://wangxinyu.net/]…

  • php curl_init post/get请求

    php curl_init post/get请求publicfunctiongetCurlApi(){$url=’地址’;$headers=array(‘access_token:’.$token);$curl=curl_init();curl_setopt($curl,CURLOPT_URL,$url);//设置调用地址curl_setopt($curl,CURLOPT_HTTPHEADER,$headers);//添加头…

  • visual studio运行程序的快捷键_visual studio快捷方式在哪

    visual studio运行程序的快捷键_visual studio快捷方式在哪目录一、系统快捷键二、常用系统命令三、QQ快捷键四、IE浏览器快捷键使用大全五、Word 中的快捷键六、Excel 中的快捷键七、PowerPoint 中的快捷键八、Visual Studio九、Eclipse十、Photoshop十一、批处理指令十二、安装操作系统(此快捷操作对我们程序员十分重要,所以放在前面)八、Visual Studio8.1、项目相关的快捷键…

  • datagrip激活码20213月最新在线激活

    datagrip激活码20213月最新在线激活,https://javaforall.cn/100143.html。详细ieda激活码不妨到全栈程序员必看教程网一起来了解一下吧!

  • HDCVI——一种创新性的高清视频传输方案

    HDCVI——一种创新性的高清视频传输方案什么是HDCVI   2012年11月,大华技术股份有限公司发布了具有自主知识产权的同轴高清传输接口技术HDCVI。HDCVI技术是一种基于已有SYV75-3或SYV75-5同轴电缆的高清视频传输方法,能够在低成本和较低质量的同轴电缆上实现超长距离高清视频信号的可靠传输。相比较HD-SDI子系统在实际应用中对传输介质的高要求,HDCVI可以适应长距离、低成本的传输介质以及复杂的部署场合。

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号