时序图 条件判断_UML建模(时序图)

一、时序图

时序图是一种强调消息时序的交互图,他由对象(Object)、消息(Message)、生命线(Lifeline)和Combined Fragments组成,它主要描述系统中对象和对象之间的交互,它将这些交互建模成消息交换。

时序图将交互关系展示成了一个平面二维图,其中纵向标示时间轴,时间沿竖线从上向下进行。横向轴标示了交互中各各个对象。对象的的用生命线表示。消息从一个对象的生命线到另一个对象生命线的箭头表示,箭头以时间顺序在图中从上到下排列,从左到右排列。

对象(Object)和生命线(Lifeline)

生命线头上那个方正的框里面存放的就是对象,对象有自己的名字,生命线其实就是从上到下的一个虚线。生命线标示一个对象存在的生命周期,两条生命线中间通过消息连接起来,

fb766dac1520e0bf18dbe9840057a849.png

image.png

消息(Message)

消息用于对象间传递信息,对象之间的信息�互通就是通过消息,消息按照分类可分为:同步消息(Synchronous Message),异步消息(Asynchronous Message)和返回消息(Return Message) 自关联消息(Self-Message)

  • 同步消息:发送消息的对象在发送消息后会挂住,等消息接受对象接受消息返回后才会解除挂住的状态继续自己的工作。
  • 异步消息:发送消息的对象在发送消息后会继续自己的工作,而不等消息接受对象接受消息返回。
  • 返回消息:标示发送消息后返回的动作
  • 自关联消息:一个对象内自调用的情况。
eb7abfbd70cdfdc02789a6e016b87679.png
  • image.png

Combined Fragments

标示有一定条件的消息发送,

  • Alternative fragment(denoted “alt”) 标示 if…then…else
  • Option fragment (denoted “opt”) 标示Switch
  • Parallel fragment (denoted “par”) 标示同时发生
  • Loop fragment(denoted “loop”) 标示for
  • Break标示退出循环

1.loop:

当没有指定循环边界默认范围为[0,无穷大]:

0b2f56069f80f86bcce29668eb7c7acd.png

image.png

如果只指定了一个值,那么默认执行该值次数:

181de6388b8c11056868ae4a923e3d7c.png

image.png

指定了循环边界,则最少执行最小值值,最多执行最大值次数:

0795a152fc1d94ce28bc5d64e4de40a9.png

image.png

实现dowhile方式,至少执行一次,如果size<0则退出:

497567509b3ed6188da219dadd5fadd1.png

image.png

2. alt:

条件判断,如果n>0则执行agree函数否者执行reject函数

f41463a356bcc56ae78cc6b321a18ca1.png

image.png

3. opt:

switch,当满足不同条件执行不同方法:

da49f7faed7883f2c37da612f4ac466b.png

image.png

4. break:

n=10时候执行save并退出循环

1cf80eac2bfa5a2bc5fe461d71fce369.png

image.png

5. par:

同时进行,比如多个线程同时执行任务

444f4e8b1f92abd816368215463016b8.png

image.png

一个例子

4d6ecbb96858c22e8d71ed6ff98bd9f0.png

image.png

欢迎关注微信公众号:技术原始积累 获取更多技术干货

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值