第10章时序图(顺序图)-郭
10章时序逻辑电路课件
![10章时序逻辑电路课件](https://img.taocdn.com/s3/m/efd1d1b2bb0d4a7302768e9951e79b89680268d2.png)
/0
010
101
/1
(b) 无效循环
32
时序图
CP Q0 Q1 Q2 Y
33
⑤ 电路功能
有效循环的6个状态分别是0~5这6个十进制数字的格雷码, 并且在时钟脉冲CP的作用下,这6个状态是按递增规律变 化的,即:
000→001→011→111→110→100→000→… 所以这是一个用格雷码表示的六进制同步加法计数器。当 对第6个脉冲计数时,计数器又重新从000开始计数,并产 生输出Y=1。
4
10.2.1 基本RS触发器
❖ 用或非门实现的基本RS触发器
(a)逻辑图
(b)逻辑符号
G1
S
≥1
Qb
S
Q
输入高电平有效
≥1
R
Qa
R
G2
由逻辑图可得逻辑表达式为:
Q 第55 章
( d )基本RS触发器的动作特点
在基本RS触发器中,输入 信号直接加在输出门上,所 以输入信号在全部作用时间 里(即:S或R为1的全部时间) 都能直接改变输出端Q和Q的 状态。
K2 Q1n K1 Q0n K0 Q2n
调题图
29
② 求状态方程
JK触发器的特性方程:
Qn1 JQ n KQn
将各触发器的驱动方程代入,即得电路的状态方程:
QQ12nn
1 1
J 2Q2n J1Q1n
K2Q2n Q1nQ2n Q1nQ2n Q1n K1Q1n Q0nQ1n Q0nQ1n Q0n
上升沿触发有效
Q
Q
1J C1 1K
J CP K
下降沿触发有效
16
10.3.同步时序逻辑电路的分析方法
任一时刻的输出信号不仅取决于此时刻的输入信号, 而且取决于上一个时刻的输出状态。
UML--时序图
![UML--时序图](https://img.taocdn.com/s3/m/240efa81ec3a87c24028c40d.png)
• 所以,要我请你吃饭就用同步的方法, 所以,要我请你吃饭就用同步的方法, 要请我吃饭就用异步的方法,这样你可 要请我吃饭就用异步的方法, 以省钱。 以省钱。^_^!
3. 消息 消息:对象之间传输的信息。 消息有以下类型: 消息:对象之间传输的信息。UML消息有以下类型: 消息有以下类型 调用消息( ① 调用消息 Procedure Call ) 调用消息(也称为同步消息 的发送者把控制传递给 调用消息 也称为同步消息)的发送者把控制传递给 也称为同步消息 接收者,然后停止活动, 接收者,然后停止活动,直到消息接收者放弃或返回控 制。
Hale Waihona Puke 1.1 交互图的概念1. 交互图的概念 交互图(interaction): 用来描述对象之间、对象与参与 用来描述对象之间、 交互图 者之间的动态协作关系, 者之间的动态协作关系,以及协作过程中行为次序的图 形。 2.交互图的类型 2.交互图的类型 • • 顺序图( 顺序图( Sequence diagram )又称为时序图 协作图( 协作图( Collaboration diagram )
匿名对象
2. 顺序图样式和组成 ② 生命线
●
表示对象存在的时间,对象下面一条虚线表示。 表示对象存在的时间,对象下面一条虚线表示。 生命线从对象创建开始到对象销毁时终止。 生命线从对象创建开始到对象销毁时终止。 对象在生命线上的两 种状态: 种状态: 休眠状态 激活状态 ×
表示对象 的撤销
对象生命线
1.1 交互图的概念
1. 交互图的概念 交互图( 交互图 Interaction diagram ): 是描述对象之间的关系 以及对象之间的信息传递的图。 以及对象之间的信息传递的图。 2.交互图的类型 2.交互图的类型 • • 顺序图( 顺序图( Sequence diagram ) 协作图( 协作图( Collaboration diagram ) 3. 交互图的作用 通常用来描述一个用例的行为,实现一个用例, 通常用来描述一个用例的行为,实现一个用例,完成对 系统行为的建模。 系统行为的建模。
时序图课件
![时序图课件](https://img.taocdn.com/s3/m/f1f9f4be1a37f111f1855b98.png)
实例:图书馆借书处理的顺序图图
书馆借书处理的顺序图
实例:图书馆借书处理的顺序图图
● 用例:借书 ●参与者:管理员,借阅者 ●基本事件流: 1. 借阅者带着借书证和书来到柜台。 2. 管员输入借阅者的借书证编码。 3. 系统检查借阅者的合法性。 4. 系统显示借阅者的信息。 5. 系统检查借阅者的借阅信息。 6. 管员输入所借图书的条码。 7. 系统显示所借图书的信息,并登记图书。 管员重复6~7步,直到结束。 8. 系统登记借阅者的本次借阅信息,并显示。 ●扩展事件流: 3a. 借阅者身份非法,则提示,本次拒借。 5a. 该借阅者所借图书中有超期的, 则提示, 本次拒借。 5b. 该借阅者所借图书数量超过了上限, 则提示, 本次拒借。 3a. 借阅者身份非法,则提示,本次拒借。 5a. 该借阅者所借图书中有超期的, 则提示, 本次拒借。
10.5 实例——图书馆管理系统的时序图
10.5.1 使用Rational Rose绘制时序图的步骤 10.5.2 图书馆管理系统的时序图
10.5.1 使用Rational Rose绘制时序图 的步骤
1. 2. 3. 4. 创建时序图 时序图工具栏按钮简介 添加对象 添加消息
Dispenser
accept(cash,selection) getCustomerinput(cash,selection) checkavailability(selection) available
update(cash,price) dispense receive soda(selection)
10.2.1 对象
时序图中对象的符号和对象图中对象所用 的符号一样。 将对象置于时序图的顶部意味着在交互开 始的时候对象就已经存在了,如果对象的 位置不在顶部,那么表示对象是在交互的 过程中被创建的。
第十章时序图(顺序图)
![第十章时序图(顺序图)](https://img.taocdn.com/s3/m/2a488355a417866fb84a8e83.png)
第十章 时序图
饮料销售机
(2)钱币记录仪的主要功能是: ①从前端获取顾客输入的信息(包括现金和饮 料选购); ②更新现金和饮料存储; ③将用户投入的现金或找回的零钱发送到前端。
饮料销售机
第十章 时序图
(3)分配器的主要功能是: ①检查用户所选饮料是否有存货; ②分发饮料给顾客。 买饮料的顺序是: a)顾客从前端投入钱币,选择所需要的饮料; b)钱币到达钱币记录仪,记录仪通知分配器检查 饮料存货情况; c)若有存货,记录仪更新自己的存储,并通知分 配器发饮料到机器前端。
一组对象(对象名和类名) 对象生命线(时间轴) 对象被激发(对象的活跃期) 对象间的通信(消息)
第十章 时序图
二. 时序图样式和元素
消息 对象
生命线
被激活期
第十章 时序图
二. 时序图样式和元素
●
① 对象及命名
:类名 :对象名
对象名:类名
第十章 时序图
二. 时序图样式和元素
① 对象的命名
② 生命线 表示对象存在的时间,对象下面一条虚线表示。
返回消息
第十章 时序图
三. 消息 消息:对象之间传输的信息。消息有以下类型: ④阻止消息 阻止消息指消息发送者发出消息给接收者,如果接收 者无法立即接收这个消息,则发送者放弃这个消息。
阻止消息
第十章 时序图
三. 消息 消息:对象之间传输的信息。消息有以下类型:
⑤超时消息 超时消息指消息发送者发出消息给接收者,并按 指定时间等待,如果接收者无法在指定时间内接收这 个消息,则发送者放弃这个消息。
②异步消息 异步消息的发送者通过消息把信号传递给接收者, 然后继续自己活动,不等待接收者返回消息或控制。
异步消息
时序图
![时序图](https://img.taocdn.com/s3/m/adaa61184a7302768e993976.png)
37
消息
消息内容标识的格式为:
[序号][监护条件]*[重复次数][返回值表:=]操作名(参数表)
例:
2: display () 1.3.1: p:=find() [x<0] 4: invert(x, color) 3.1 *[x = 1..10] : update() a3,b4/c2: copy(a,b) 1.1a, 1.1b/1.2: continue()
32
Байду номын сангаас
33
返回消息(Return Message)
返回消息是时序图的一个可选择部分,它 表示控制流从过程调用的返回。 返回消息一般可以缺省,隐含表示每一个 调用都有一个配对的调用返回。 是否使用返回消息依赖于建模的具体/抽 象程度。如果需要较好的具体化,返回消 息是有用的;否则,主动消息就足够了。
各个对象所执行的操作以及它们之间所传送的消息 ,从而能够在逻辑上清晰的刻画这些操作和消息的 时序关系乃至因果关系。 时序图提供了对象所执行的操作以及对象之间传送 的消息随时间推移的、清晰的和可视化的轨迹。
10
时序图的组成
: Actor
:Object1
:Object2
1: Message 2: Operation :Object3 3: Operation 4: Message 5: Message
24
消息
在任何一个软件系统中,对象都不是孤立存在的 ,它们之间通过消息进行通信。 消息是用来说明时序图中不同活动对象之间的通 信。因此,消息可以激发某个操作、创建或撤销 某个对象。 在时序图中,消息是由从一个对象的生命线指向 另一个对象的生命线的直线箭头来表示的,箭头 上面还可以表明要发送的消息名及序号。 在多个对象之间,消息的次序由它们在垂直轴上 的相对位置决定。
继电器顺序控制基本电路
![继电器顺序控制基本电路](https://img.taocdn.com/s3/m/fa429f1665ce0508763213d9.png)
4 利用时间继电器、计数器和传感器的电路 (2)利用时间继电器的电路
例:按下开关BS110次时指示灯亮,按下BS2时复位, 指示灯灭。
– 纵向顺序图:电器的接线方向为从上向下 – 横向顺序图:电器的接线方向为从左向右
纵向顺序图
① 在上下方各引出一条水平线作为控制电源的母线(母线的符号:对直流电源用P和N, 对交流电源用R和S来表示)。
② 在上下母线间用垂直线表示连接控制电器的接线 ③ 用图形符号和文字符号来表示电器 ④ 将控制电器的图形符号按动作的顺序从上往下连接 ⑤ 当母线间有较多支路要连接时,根据动作的顺序从左向右的顺序画出。
三.顺序控制基本电路
1. 基本逻辑电路 2. 自保持和互锁电路 3. 电动机基本控制电路 4. 利用传感器、时间继电器
和计数器的电路
基本逻辑电路——AND电路
基本逻辑电路——OR电路
基本逻辑电路——NAND电路
基本逻辑电路——NOR电路
2.自保持和互锁电路—自保持电路
自保持电路:在解除输入信号之后也保持动作状态的电路,又称记忆电路、自锁电路 问题1:如何修改下图的电路,使按钮按下后再松开,指示灯也持续亮着?
增加一个继电器的常开触点
2.自保持和互锁电路—自保持电路
• 问题2:自保持后如何取消动作(复位)?
复位(停止)优先和置位(启动)优先的自保持电路
2.自保持和互锁电路—互锁电路
先动优先电路
• 任何先按下按钮的 电路优先动作—先 动优先
• 另一电路再按下按 钮也不动作—互锁
• 在抢答游戏和电动 机正反转控制电路 中常用
2.自保持和互锁电路—互锁电路
新输入优先电路
3电动机基本控制电路
• 电动机的启动与停止电路 – 自保持电路
顺序图
![顺序图](https://img.taocdn.com/s3/m/bb10627acaaedd3383c4d3aa.png)
阻止消息 消息的发送者传递消息给接 收者,如果接收者无法立即接收, 则发送者放弃该消息。
Rational Rose画顺序图
打开rose软件,选择新建Sequence Diagram
Rational Rose画顺序图
Rational Rose画顺序图
Selection Tool:光标返回 箭头,选择工具
选项(Opt)
• 包含一个可能发生或不发生的序列
循环(Loop)
• 片段重复一定次数。 可以在临界中 指示片段重复的条件。
并行(Par)
组合片段
谢建模序列图的下一步是从左到右布置在该工作流程中所有的参与 者和对象,同时也包含要添加消息的对象生命线。
Rational Rose画顺序图
在对象之间添加消息
Rational Rose画顺序图
在对象之间添加消息,选择消息种类
Rational Rose画顺序图
常用消息的类型
自关联消息
用来描述对象内部函数的互相调
用。
超时消息
超时消息是同步消息中的一种特 殊情况,源消息对象发出消息后将等 待响应一段时间,在限定时间内还没 有响应时,源消息对象将取消阻塞状 态而执行后续操作。
常用消息的类型
异步消息 消息的发送者将消息发送给 消息的接受者后,不用等待回应 的消息,即可开始另一个活动。
Text Box:创建文本框
Note:创建注释 Object:序列图中的对象
Anchor Note to Item:将注释连接到序列图 中的相关模型元素 Object Message:两个对象之间的普通消 息,消息在单个控制线程中运行
Message to Self:对象的自身 消息 Return Message:返回消息 Destruction Marker:销毁对象标记 Procedure Call:两个对象之间的过程调用 Asynchronous Message:两个对象之 间的异步消息,也就是说客户发出
软件工程顺序图
![软件工程顺序图](https://img.taocdn.com/s3/m/e131395c02d8ce2f0066f5335a8102d277a26147.png)
消息从活动对象生命线到接受对 象生命线旳箭头表达。箭头以时间 顺序在图中从上到下排列。箭头上 面标识要发送旳消息,如下图所示。
把参加者表达为活动对象
旳建模能够阐明参加者怎样 与系统交互,以及系统怎样 与顾客交互。参加者能够调 用对象,对象也能够告知参 加者,如下图所示。
四、 怎样使用消息进行通信
消息是顺序图活动对象之间通信旳惟一 方式。UML中消息使用了某些简介旳标识符。
消息能够包括条件以便限制它们只有满 足条件时才干发送。条件显示在消息名称上 面旳方括号中,如下图所示:
在UML中,总共有4种类型旳消 息,如下图所示。
到目前为止只看到了一种消息, 即简朴消息(flat message)
旳操作统计下来,以供后来查询。最 终,Engine 直接将成果返回给 ProcessMonitor,由ProcessMonitor将 成果包装,显示给顾客。
六、学习怎样建模顺序图
创建顺序图包括四项任务: • 1)拟定需要建模旳工作流。 • 2)从左到右布置对象。 • 3)添加消息和条件以便创建每
一种工作流。 • 4)绘制总图以便连接各个分图。
2.布置对象
• 建模顺序图旳下一步是从左 到右布置全部旳参加者和对 象,包括要添加消息旳对象 生命线。
3.添加消息和条件
接下来,对每一种工作流 作为独立旳顺序图建模。从基 本旳工作流开始,它是没有犯 错条件,而且需要至少决策旳 工作流。在本例中,基本工作 流是教师成功地检验某个学生 旳分数。如下图所示。
1. 同步消息
同步消息(synchronous message)代表一种操 作调用旳控制流。同步消息旳发送者把控制 传递给消息旳接受者。然后暂停活动,等待 消息接受者旳应答,收到应答后才继续自己 旳操作。
时序图(序列图)
![时序图(序列图)](https://img.taocdn.com/s3/m/1b44a353326c1eb91a37f111f18583d049640f19.png)
时序图(序列图)⼀、什么是时序图?时序图(Sequence Diagram),亦称为序列图、循序图或顺序图,是⼀种UML交互图。
它通过描述对象之间发送消息的时间顺序显⽰多个对象之间的动态协作。
时序图是⼀个⼆维图,横轴表⽰对象,纵轴表⽰时间,消息在各对象之间横向传递,依照时间顺序纵向排列。
⼆、时序图的作⽤是什么?1、展⽰对象之间交互的顺序。
将交互⾏为建模为消息传递,通过描述消息是如何在对象间发送和接收的来动态展⽰对象之间的交互;2、相对于其他UML图,时序图更强调交互的时间顺序;3、可以直观的描述并发进程。
三、组成元素有哪些?1. ⾓⾊(Actor)系统⾓⾊,可以是⼈、机器、其他系统、⼦系统;在时序图中⽤表⽰。
2. 对象(Object)(1)对象的三种命名⽅式第⼀种⽅式包括对象名和类名,例如:直播课时:课时,在时序图中,⽤“对象:类”表⽰;第⼆种⽅式只显⽰类名,即表⽰它是⼀个匿名对象,例如: :课程;在时序图中,⽤“:类”表⽰;第三种⽅式只显⽰对象名不显⽰类名,例如:讲师;在时序图中,⽤“对象”表⽰。
(2)命名⽅式的选择三种命名⽅式均可,哪种最容易让阅读该时序图的⼈理解,就选择哪种。
(3)对象的排列顺序对象的左右顺序并不重要,但是为了作图清晰整洁,通常应遵循以下两个原则:把交互频繁的对象尽可能的靠拢;2.把初始化整个交互活动的对象放置在最左端。
3. ⽣命线(Lifeline)在时序图中表⽰为从对象图标向下延伸的⼀条虚线,表⽰对象存在的时间。
4. 控制焦点(Focus of Control)⼜称为激活期,表⽰时间段的符号,在这个时间段内对象将执⾏相应的操作。
它可以被理解成C语⾔语义中⼀对花括号{ }中的内容;⽤⼩矩形表⽰。
5. 消息(Message)消息⼀般分为同步消息(Synchronous Message),异步消息(Asynchronous Message)和返回消息(Return Message)。
时序图详解
![时序图详解](https://img.taocdn.com/s3/m/7d97d58b84868762caaed5f7.png)
除了提供一个图形化边框之外,用于图中的框架元件也有描述交互的重要的功能, 例如序列图。
在序列图上一个序列接收和发送消息(又称交互),能通过连接消息和框架元件边界,建立模型(如图2 所见到)。
这将会在后面“超越基础”的段落中被更详细地介绍。
UML 的生命线命名标准按照如下格式:除了仅仅显示序列图上的消息调用外,图4 中的图还包括返回消息。
这些返回消息是可选择的;一个返回消息画作一个带开放箭头的虚线,向后指向来源的生命线,在这条虚线上面,你放置操作的返回值。
在图 4 中,当getSecurityClearance 方法被调用时,secSystem组合碎片(变体方案,选择项,和循环)然而,在大多数的序列图中,UML 1.x“in-line”约束不足以处理一个建模序列的必需逻辑。
这个功能缺失是UML 1.x 的一个问题。
UML 2 已经通过去掉“in-line”约束,增加一个叫做组合碎片的符号元件,解决了这一个问题。
一个组合碎片用来把一套消息组合在一起,在一个序列图中显示条件分支。
UML 2 规范指明了组合碎片的11 种交互类型。
十一种中的三种将会在“基础”段落中介绍,另外两种类型将会在“超越基础”中介绍,而那剩余的六种我将会留在另一篇文章中介绍。
(嗨,这是一篇文章而不是一本书。
我希望你在一天中看完这部分!)变体变体用来指明在两个或更多的消息序列之间的、互斥的选择。
3 变体支持经典的“if then else”逻辑的建模(举例来说,如果我买三个,然后我得到我购买的20% 折扣;否则我得到我购买的10% 折扣)。
就如你将会在图8 中注意到的,一个变体的组合碎片元件使用框架来画。
单词“alt”放置在框架的namebox里。
然后较大的长方形分为UML 2 所称的操作元。
4 操作元被虚线分开。
每个操作元有一个约束进行测试,而这个约束被放置在生命线顶端的操作元的左上部。
5 如果操作元的约束等于“true”,然后那个操作元是要执行的操作元。
类图、时序图、状态图-ATM系统
![类图、时序图、状态图-ATM系统](https://img.taocdn.com/s3/m/1ad0df2b55270722182ef717.png)
(1)冗余 (储户、用户;现金兑换卡、磁卡和副本)
(2)无关 (成本、市、街道、营业厅和储蓄所)
(3)笼统 (银行、访问、信息、网络、系统、软件等)
(4)属性 (现金、支票、取款额、账单、余额、分行代码、
卡号、密码、类型)
(5)操作
(6)实现 (事务日志、通信链路)
问题范围 功能需求 性能需求 应用环境 假设条件
10.2 需求陈述
ATM机系统问题描述
银行网络中包含柜员和 ATM,ATM 被共享中心所分享。 每家银行利用自己的计算机维护自己的账户并处理账户
所属的交易,这些交易包括存款和取款。
某些银行拥有自己的柜员站,柜员站直接和该银行的计 算机通信,柜员键入账户数据和交易数据。
系,使用关联能够表示两个对象间的任何关系, 而且把关系表示得更清晰、更醒目。 确定属性的过程包括分析和选择两个步骤。
10.3 建立对象模型
10.3.4 确定属性
选择
在需求陈述中一般用名词词组表示属性 需藉助于领域知识和常识才能分析得出属性 属性对问题域的基本结构影响很小 属性的确定与问题域和目标系统的任务有关。 不要考虑那些超出所要解决的问题范围的属性。 先找最重要的属性,再逐渐把其余属性增添进去。分
析阶段不考虑那些纯粹用于实现的属性。
10.3 建立对象模型
10.3.4 确定属性
分析
(1) 误把对象当作属性 同一个实体在不同应用领域中,到底应该作为对象还是属性,需要具体
分析才能确定。 例如,储户/账户.
(2) 误把关联类的属性当作对象的属性 如果某个性质依赖于某个关联链的存在,则该性质是关联类的属性,不
图书管理系统-OOD-协作图与时序图
![图书管理系统-OOD-协作图与时序图](https://img.taocdn.com/s3/m/6456ef1f52d380eb62946d4f.png)
17
为消息分配操作(Distribute Operation for Message)
• 要给消息分配操作:
–右键单击框图中的消息; –从弹出的列表中选择一个操作;或者单击 <new operation>定义一个新操作。
• 改变消息指定的操作:
10
时序图的用途(Sequence Diagram Use)
• 当不同类之间存在多个简短的方法时,描述控 制流的整体序列。 • 显示并发进程和激活。 • 显示在协作图中难以描述的时间序列。 • 显示涉及类交互而与对象无关的一般形式。
11
时序图的建模技术(Sequence Diagram’s Modeling Technologies)
上右键?时序图工具箱时序图工具箱toolboxforsequencediagramtoolboxforsequencediagram15?消息消息messagemessage??将消息加进将消息加进时序图单击工具箱中的单击工具箱中的将鼠标从发送消息的对象或参与者的生命线拖动到接将鼠标从发送消息的对象或参与者的生命线拖动到接受消息的对象或参与者的生命线
3: 提交案卷录入命令 4: 提示输入案卷的相关信息
5: 显示输入的案卷相关信息 6: 提交案卷列表
7: 提交成功 8: 显示案卷录入成功信息
9
时序图的用途(Sequence Diagram Use)
• 时序图可供不同的用户使用,以帮助他们进一步 了解系统: • 用户:进一步了解业务细节 • 分析人员:进一步明确事件的处理流程 • 开发人员:进一步了解需要开发的对象和对这些 对象的操作 • 测试人员:通过过程的细节开发测试案例
教你3步画好时序图,轻松掌握产品经理都在学的流程分析利器
![教你3步画好时序图,轻松掌握产品经理都在学的流程分析利器](https://img.taocdn.com/s3/m/8b9091d377eeaeaad1f34693daef5ef7ba0d123c.png)
产品经理简称PM,是指在公司中针对某一项或是某一类的产品进行规划和管理的人员,主要负责产品的研发、制造、营销、渠道等工作。
产品经理是很难定义的一个角色,如果非要一句话定义,那么产品经理是为终端用户服务,负责产品整个生命周期的人。
产品经理需要考虑目标用户特征、竞争产品、产品是否符合公司的业务模式等等诸多因素。
近年来互联网产品经理火热,一起看下为大家精选的互联网产品经理学习文章。
上次介绍了活动图,这次UML 中,另一种流程分析利器——时序图。
以前每次要分析流程,我都会用活动图。
直到有一次,我面对一个业务流程,画活动图,画来画去,总觉得哪里不对,但又表达不出来,感觉如鲠在喉。
后来,我想起时序图,用时序图把流程梳理了一遍,豁然开朗。
原来,用不同的视图去描述同一个流程,能让我们看到自己未曾发现的问题。
就像看足球比赛,在多个不同位置的摄像镜头下,能看到球员更全面的表现。
此后,我用时序图甚至比活动图还多。
那么,它有啥特别之处,居然能替代活动图来分析流程?我们一起来看看。
01 解读时序图时序图,也叫序列图、顺序图,是UML 中常用的动态视图,用于描述多个对象参与实现业务目标时,彼此之间按时间顺序进行交互的过程。
时序图,用来表达对象或角色之间交互的信息传递和时间顺序,特别方便。
每次梳理流程,跟开发沟通,我都会借助它来描述。
绘制时序图,将一个个对象和其交互动作列出来,可以直观反映出,每个对象对其他对象、或其自身做的交互动作,让我们看到业务内部的运作、系统之间的互动,从而搞清楚业务规则、系统逻辑。
在《火球:UML 大战需求分析》一书中,作者总结特别好:“任何复杂的交互,都可以分解为自己与自己、自己与别人、别人与别人的多个简单交互”。
时序图正体现了这种逻辑,所以,它表达交互逻辑时,非常清晰简单。
客户用ATM 取款的时序图作为产品经理,如果我们能掌握这一利器,用来分析业务、定义需求,与开发沟通,定能大大提高效率。
时序图常见的应用场景,是在支付领域。
第十章时序图(顺序图)
![第十章时序图(顺序图)](https://img.taocdn.com/s3/m/2a488355a417866fb84a8e83.png)
一、概述
二、时序图的构成要素及表示
三、时序图中对象的创建与撤消
四、时序图建模技术
五、图书馆管理系统的时序图
第十章 时序图(顺序图)
一、概述 时序图 (Sequence Diagram) 用来描述对象之 间动态的交互行为 , 着重体现对象间消息传递的时 间顺序。
时序图构成:对象、生命线、消息和激活
②异步消息 异步消息的发送者通过消息把信号传递给接收者, 然后继续自己活动,不等待接收者返回消息或控制。
异步消息
第十章 时序图
三. 消息 消息:对象之间传输的信息。消息有以下类型:
③返回消息 返回消息表示从过程调用返回。如果是从过程调用 返回,则返回消息是隐含的,可以不画出来。 对于非过程调用,如果有返回消息,必须画出来。
:Customer Win :Customer
1:Change(Customerdata) 2:Update_Customer(CustomerData) 3:
一般格式的时序图
第十章 时序图
Print(file)
:Computer :Printer Server :Printer :Queue
[Printer free] Print(file)
[Printer busy] Store(file)
带分支的时序图
Op( ) C1:c Op2( ) D1:D D2:D
Send message op2 until…
Op3( )
Op4( )
有循环标记的时序图
第十章 时序图
访客 a 拿起话筒 蜂鸣音 拨号码 ... {e-d<5} 铃响信号 d
<10
一组对象(对象名和类名) 对象生命线(时间轴) 对象被激发(对象的活跃期) 对象间的通信(消息)
第11章协作图-郭
![第11章协作图-郭](https://img.taocdn.com/s3/m/aa126e72168884868762d612.png)
: Reservation
: Loan
3. 图书管理员处理还书的协作图
1: find borrower( ) : Return Window : Librarian
3: return_back( ) : Title
5: return_back( )
2: find(String)
4: update( )
并发消息
两个相同对象之间存在多个消息,并且这些消 息可以是同时调用,即并发消息。 为了表示并发消息,可以用数字加字母的表示 法。
并发消息举例
一个程序项目包含资源文件和源文件,当打开 该项目时,开发工具将同时打开所属的资源文 件和源文件。
条件消息:当判断语句为真时,才调 用相关的消息。
一个teacher对象 向每一个student 对象发送一个 Message消息
一个teacher对象 向一个student对 象发送n次 Message消息
用Rose将顺序图自动转换成协作图
主动对象(活动对象)
不需要接收消息就可自动启动交互的对象。(拥 有控制线程的对象) 主动对象是一组属性和方法的封装体,其中至少 有一个方法不需要接收消息就能主动执行。 主动对象在UML和Rose中的表示方法不同。
汽车租赁系统中客户取车的协作图
11.2 对象、链和消息
① ② ③
协作图包含了3个元素: 对象(Object) 链(Link) 消息(Message)
11.2.1 对象
协作图与时序图中的对象的概念是一样,只不 过在协作图中,无法根据位置来表示对象的创 建和撤销,所以对于对象在图中的位置没有限 制。 创建对象? 通过把《create》放到消息标签中来表示对 创建对象。
时序图顺序图
![时序图顺序图](https://img.taocdn.com/s3/m/e16a9c8cd1f34693daef3eaf.png)
:Dispenser
2: getCustomerInput(cash,selection) 3: checkAvailability(selection) 4: Available
5: checkForChange(cash,price) 6: updateReserve(cash,price) 7: releaseSoda(selection) 8: receive(change) 9: receiveSoda(selection)
DeleteCustomer()
创建或删除对象
当对象消亡(destroying)时,用符号 表示。
第十章 时序图
四、时序图建模技术 ① 从用例中识别交互过程; ② 识别参与交互过程的对象; ③ 为每一个对象设置生命线,并确定对象的生存周期; ④ 从引发交互的初始消息开始,在对象生命线上依次 画出交互的消息; ⑤如果需要,可以给消息增加时间约束,以及前置条件 和后置条件。
第十章 时序图
饮料销售机的时序图
:Customer :Front
场景4是:顾客从前端投入了大于所选饮料价格的钱币,选择了 所需饮料。钱币到达钱币记录仪,记录仪无法找零,退款并显示相 关信息
:Register
:Dispenser
1: accept(cash,selection) 2: getCustomerInput(cash,selection) 3: checkForChange(cash,price) 4: returnCash(cash) 5: displayPrompt("Use Correct Change")
第十章 时序图
饮料销售机的类图
第十章 时序图
饮料销售机的时序图
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
:AddBookDialog Administrator AddBook()
:Book
:Title
findTitle() newBook()
addBook()
将对象置于时序图的顶部意味着在交互开始 的时候对象就已经存在了。 如果对象的位置不在顶部,那么表示对象是 在交互的过程中被创建的。
10.2.2 生命线
getBook()
Return Book getTitle()
Return Title
[遍历Loan数组] Return Ttile Array
10.6 顺序图建模步骤
时序图建模技术
① ② ③ ④
⑤ ⑥ ⑦
设置交互的语境。 通过识别对象在交互中扮演的角色,设置交互的场 景。 为每个对象设置生命线。 从引发某个消息的信息开始,在生命线之间画出从 顶到底依次展开的消息,显示每个消息的特性(如 参数)。 如果需要可视化消息的嵌套或实际计算发生时的时 间点,可以用激活修饰每个对象的生命期。 如果需要说明时间或空间的约束,可以用时间标记 修饰每个消息,并附上合适的时间和空间约束。 如果需要更形式化的说明某控制流,可以为每个消 息附上前置和后置条件。
10.3 对象的创建和撤销
如果对象位于时序图的顶部,说明在交互开始 之前该对象已经存在了。如果对象是在交互的 过程中创建的,那么它应当位于图的中间部分。
对象在创建消息发生之后才能存在,对象的生 命线也是在创建消息之后才存在的。
10.3 对象的创建和撤销
创建对象的两种表示方法:
10.3 对象的创建和撤销
生命线在顺序图中表示为从对象图标向下延伸 的一条虚线,表示对象存在的时间。
实际上,对象的生 命线可以代表一组 对象。
10.2.2 生命线
10.2.3 激活期(控制焦点)
激活表示该对象被占用以完成某个任务,对 象执行某个动作的时期。 去激活指的则是对象处于空闲状态、在等待 消息。 在UML中,为了表示对象是激活的,可以将 该对象的生命线拓宽成为矩形。其中的矩形 称为激活条或控制期,对象就是在激活条的 顶部被激活的,对象在完成自己的工作后被 去激活。
如果要撤销一个对象,只要在其生命线终止点 放置一个“X”符号即可,该点通常是对删除 或取消消息的回应。
当用户登录失败后,将创建一个MessageBox 对象以提示用户登录错误。
递归:当一个操作调用它自身时,递 归就会出现。
当一个操作调用它自身时,所产生的消息总是 同步的,因此在顺序图中总是将递归的消息绘 制成同步消息。
例子: 汽车和车钥匙
能够遥控锁车和开锁的车钥匙 车主按下“锁车”按钮时,汽车自动上锁,闪动 一下车灯并发出一声蜂鸣,告诉你它已经把车门 上锁了。 CarOwner(车主) Car(汽车) CarKey(车钥匙)
接收信号 信号
顺序图中使用异步消息符号来对这两个信号建模。
例题:
注意:
当执行一个用例行为时,时序图中的每条消息对 应了一个类操作或状态机中引起状态转换的触发 事件。
时序图将交互关系表示 为一个二维图。 横轴代表了在协作中各 独立的对象。 纵轴是时间轴,时间沿 竖线向下延伸。 沿时间方向按时间递增 顺序列出个对象所发出 和接收的消息。
:AddBookDialog Administrator AddBook() findTitle() newBook() :Book :Title
激活条
10.2.4 消息
消息定义的是对象之间某种形式的通信,它可以激发 某个操作、发送信号或导致目标对象的创建或撤销。 消息是两个对象之间的单路通信,从发送方到接收方 的控制信息流。 消息可以用于在对象间传递参数。
消息可以是信号(对象间的异步通信),也可以是调 用(具有返回控制机制的同步调用)。 在UML中,消息使用箭头来表示,箭头的类型表序图的组成 10.3 对象的创建和撤销 10.4 顺序图中的时间建模 10.5 建模迭代 10.6 顺序图建模步骤 10.7 帧化顺序图:UML2.0中的顺序图 10.8 实例——图书馆管理系统的时序图
10.1
10.1 概述
用例图描述系统需求,类图描述组成系统结构的各 种类型。但单凭用例和类还无法描述系统实际上的 运行情况。使用交互图可以对其进行补充,为系统 各部分交互进行建模。
自调用(反身消息)(Self Call):一个对象将一个 消息发送给它本身。 在反身消息里,消息的发送方和接收方是同一个对象。
对象可以自己发消息给自己,自调用消息,递归调用。 UML中,激活的控制条被以重叠的方式表示出来。
在UML中,消息可以包含条件以限制它们只 在满足条件时才能被发送。条件显示在消息名 前的方括号中。
问题: 阻止消息和超时消息属于同步消息还是异步消息?
消息的语法格式
UML中规定消息的语法格式为:
必须先发生的消息列表。 条件,在一个方括号中的布尔表达式,表示只有 在条件满足时才能发送该消息。 消息顺序号,可能有多个消息顺序项。
表示有三个线程A B C。在发送线程 C的第2个消息前,必须先发送线程A 的第3个消息和线程B的第4个消息。
10.5 建模迭代
通过建模迭代可以实现消息的重复执行。在顺 序图中,建模人员常用的建模迭代消息是通过 一个矩形把重复执行的消息包括在矩形框中, 并且提供一个控制重复执行的控制条件。 如图所示重复执行的消息。
:DisplayDialog getTitleInfo() Borrower Loan Book
addBook()
汽车租赁系统中客户取车的时序图
取车的动作是从客户向工作人员提出取车要求并出示清 单开始,工作人员检查客户的预定申请,确认后顾客付 款。工作人员填写工作记录,同时登记汽车的状态,最 后客户取车。
10.2 时序图的组成
① ② ③ ④
时序图包含了4个元素: 对象(Object) 生命线(Lifeline) 消息(Message) 激活(Activation) /(控制焦点 focus of control)
一个用例可对应多个顺序图。 通常来说,一个完整的控制流有时是很复杂的, 随意,将一个大的控制流分为几个部分放在不 同的顺序图中是比较合适的。 一些顺序图用来描述主要事件流,另一些可以 用来描述可选择的路径或例外条件,然后用包 来组织这些顺序图的集合。
10.6 补充知识 帧化顺序图:UML2.0中的顺序图
par
break
片段中的各个交互并行执行。 当包含在break片段中的交互发生时,则退出 任何一个交互。类似于程序设计语言中的 break语句
。。。
ref 交互片段---(reference)
为一个用例的多个场景创建实例顺序图,图和图 之间的相当一部分内容是重复的。 ref交互片段能够在一张顺序图中快速容易地复用 另一张顺序图的部分内容。 使用方法:使用ref交互片段并写明引用的交互图 的名称。 ref交互片段也叫做交互事件(interaction occurrence)。
交互片段类型 ref loop opt alt
作用
分解大型的顺序图,类似于用例关系中的 include(程序设计语言中的文件包含)
循环执行该片段内的交互,直到判断条件为假。 类似于程序设计语言中的循环语句。 包含在此片段中的交互只有在判断条件为真时 才执行。 根据判断条件,选择片段中的一个交互执行。 类似与程序设计语言中的if..else语句
这种情况发生在两个应用程序通过网络相互 通信时。如图
OjectA Message1
ObjectB
Message2
一个消息需要一段时间才能完成的最好示例是 使用电子邮件服务器进行通信。 因为电子邮件服务器是外部对象,具有潜在的 消耗通信时间的可能性,可以把发送到电子邮 件服务器和从中接收到的消息建模为耗时的消 息。
与调用消息相比,异步消息在箭头符号上不同。
在登录时使用异步消息。 处于对系统安全的考虑, 在登录时使用一个日志 文件,以记录用户的登 录操作。
使用异步消息创建日志 时,对系统的操作不需 要等待到对日志文件操 作完成之后进行,这样 可以提高系统响应的速 度。 最常见的实现异步消息 的方式是使用线程。当 发送该异步消息时,系 统需要启动一个线程在 后台运行。
帧化的概念很有用,有多种应用方法,不同的应 用帧化类型(间隔区操作符)对应不同。
交互片段(interaction fragment)
交互片段是UML2.0中对一个顺序图的某一段 的一般的称呼。 画法和帧化整个顺序图是相似的。只是在间隔 区中,不同类型的交互片段,其片段类型(操 作符)也不同。
UML2.0针对顺序图添加了一个有用的改动。 帧化一个顺序图:用一个边框包围它,并在其 左上角添加一个间隔区。这个间隔区包含了识 别该顺序图的信息。 间隔区中,有操作符(描述帧中的图的类型的 表达式)和图所描绘的交互的名字。
间隔区: 对于一个顺序图,操作 符是 sd (sequence diagram). BuySoda是交互的名字。
如果异步消息有返回消息,必须明确表示出来。
Rose 还对消息类型做了扩充,增加了阻止消 息(Balking)和超时消息(Timeout)。
阻止消息是指消息发送者发送消息给接收者, 如果接收者无法立即接收消息,则发送者放弃 这个消息。
Rose中用折回的箭头表示阻止消息。
超时消息指消息发送者发出消息给接收者并按 指定时间等待。如果接收者无法在指定时间内 接受消息,则发送者放弃这个消息。