第8讲 时序图

合集下载

时序图-协作图-详解

时序图-协作图-详解

动态图概念:从静态图中抽取瞬间值的变化描述系统随时间变化的行为,动态图包括交互图活动图状态图,这篇博客研究交互图包括时序图和协作图;-- 时序图:显示对象之间的关系,强调对象之间消息的时间顺序,显示对象之间的交互;--协作图:描述对象之间的交互关系;~一.时序图(Sequenee Diagram)1. 时序图的概念时序图定义:描述了对象之间传递消息的时间顺序,用来表示用例中的行为顺序,是强调消息时间顺序的交互图;时序图描述的事物:时序图描述系统中类和类之间的交互,将这些交互建模成消息交换,时序图描述了类以及类之间的交换以完成的期望行为的消息,时序图中每条消息都代表了类的一个操作或者引起状态机改变的触发事件;时序图表示:参与交互的对象在时序图顶端水平排列,每个对象的底端绘制了一条垂直虚线,对象A像对象B发送消息,用一条带箭头的实线表示,该实线起始于对象A底部的虚线,终止于对象B底部的虚线;实线箭头水平放置,越靠近顶端越早被发送时序图轨迹:时序图提供了随时间推移的,清晰的可视化的轨迹;2. 时序图组成时序图组成:时序图包括四个元素对象(Object),生命线(Lifeline) ,激活(Activation) ,消息(Message)(1)对象(Object)对象:时序图中的对象在交互中扮演的角色就是对象;对象的符号:时序图中的对象与对象图中的表示方法一样,使用矩形将对象名称包含起来,并且对象名称下有下划线对象创建时机:对象可以在交互开始的时候创建,也可以在交互过程中进行创建;--处于顶部:如果对象的位置在时序图顶部,说明在交互开始的时候对象就已经存在了;--不在顶部:如果对象的位置不在顶部,那么对象在交互过程中创建的;(2)生命线(Lifeli ne)生命线:生命线是一条垂直的虚线,这条虚线表示对象的存在,在时序图中,每个对象的底部都有生命线生命线作用:生命线是一个时间线,从时序图顶部一直到底部都存在,其长度取决于交互的时间;对象的生命线:对象与生命线结合在一起就是对象的生命线,这个概念包含对象图标以及对象下面的生命线图标如上图;⑶激活(Activati on)LilIii激活(Activation) :代表时序图中对象执行一项操作的时期,激活期可以理解为语义中{}中的内容,表示该对象被占用以完成某个任务去激活(Deactivation) :指对象处于空闲状态,在等待消息激活这个对象;激活的表示:当对象处于激活时期,生命线可以拓宽为矩形,这个矩形条成为激活条;激活去激活的时机:--激活:对象激活是在激活条的顶部激活;--去激活:激活条的底部去激活,通常发生在一个消息离开对象生命线;⑷消息消息概念:定义交互和协作中交换信息的类,对对象之间的通信内容建模;消息动作:--动作种类:消息允许在实体间传递信息(传递参数),允许实体请求其它服务,对象之间通过发送和接收消息进行通信;--产生结果:消息可以触发操作,唤起信号,或使目标对象创建或销毁;消息的异步和同步通信:--异步通信:消息是信号的时候,发送信号之后,等待对方触发相应方法,这是明确的命名的对象间的异步通信;--同步通信:直接调用对象的方法,执行方法返回结果,这种具有返回控制机制的操作是同步通信;时序图和协作图中消息的区别:时序图中的消息强调顺序,协作图中的消息强调交换消息的对象间的关系;消息类型:两个对象间绘制消息3. 时序图示例示例简介:--使用场景:汽车租赁公司;-- 使用的对象:Customer ( 客户),Worker ( 工作人员),Order ( 请求),Record ( 记录),Car ( 汽车); --工作流程:①客户 向工人 提出租车要求,②工人 检查 请求,③客户 付款,④工人 填写 记录,⑤工人 取车;时序图:4.对象的创建和撤销对象位置:--顶部:时序图中对象的默认位置是在时序图顶部,这表明对象在交互开始之间就已经存在 --中间:如果对象在时序图中间部分,说明对象时在交互过程中创建的; 交互过程中创建对象的方法:--消息指向对象:消息是构造方法,箭头指向对象所代表的的矩形;过程调用中返回的消息E)两个对象之间的过程调用两个对象之间的异步消息绘制反身消息d!:□3 ok.. ...... ->I ... .....U .....5 wrrteReGQird()6 gfllCenf)CUSM men Gustomer--消息指向激活条:消息是构造方法,箭头指向对象下面的激活条撤销对象:如果想要在时序图中撤销一个对象,因为如果同时有几个对象,如果不进行特殊操作其生命周期将会一样长--效果图:下图中将Customer 和Order对象撤消了,因为它们基本没有参与后期的交互口njgr 砒record Record[]~ru■: 2 chackO,― __________-> 1 i: a■•'il J'n •>a »■a aii 11a Ha *!tl "a *■a »J "3: nkA\*y[)u 5 writeRacorci:]X■;£ g机盹* :• ■iu1 日(hew: OrdBr(J5.时序图建模技术时序图使用时机:对动态行为建模,强调时间展开信息的次序的时候,使用时序图;时序图管理策略单一控制流:一个单独的时序图只能显示一个控制流--多个时序图:完整的控制流很复杂,可以绘制多个时序图,一个主干时序图,多个分支时序图,使用包对这些时序图进行管理 时序图建模策略:--设置交互语境:交互所在的环境,包括哪些对象,属于什么系统,子系统,相关的操作类用例等; --对象排列顺序:根据对象重要性,从左到右排列在时序图中;--对象生命线:对象通常存在于交互的整个过程,也可以在交互过程中被创建和撤销;--消息排列:引发交互信息之后,消息按照时间顺序从上向下画出,先发出的消息 在后发出的消息上面; --激活期设置:可以将实际操作发生的时间点 消息 明确的显示出来;--时间空间约束:每个消息都可以附加合适的时间 和空间约束;--前置后置条件:每条消息可以附加前置 或 后置 条件;(1) 创建时序图新建时序图:在 视图浏览器 中 右键点击 Logical View (逻辑视图),选择New (新建)-> Sequence Diagram (6. Ratio nal Rose时序图操作时序图);添加对象:时序图中有两种对象,一种是参与者Actor, 一种是普通的对象;--参与者对象:在类图中创建一个对象,将其Stereotype 修改为Actor, 就变成了参与者,然后在视图浏览器中将这个元素拖到时序图中即可;(luiiti tied)三 口 Use Cast Vi 關Main 三AsEociati&ns竝血J B帼 $¥.*■rj艮發 UnitsAs 5 0 亡IMIEI帼 HerD i agr SJB 3 Component View €Jl Main Il^ploymeJit Vi &w Modal FropsrtiesCl BS EClass ytility tfse Case [nt trftce :F&cktg«CI BSS Ci agrw Use Case Dxa ■耳raai Ih 电虽Ssq.uftnc« Di Mchart Vi agramActivi t^- DiagramFilfeBL(2)添加对象鞍务人员设置对象属性:双击对象,在弹岀的General 对话框中修改对象属性--Name :对象名称,不输入也可以; --Document : 描述对象的文档;載务人员-- 普通对象 直接在时序图中点击按钮,在界面中创建对象--两种对象效果 学位管理nu ....null:对象保存在数据库或其它形式的永久存储体中 对象保存在内存中知道程序终止; :短时间内保存在内存中;⑶添加消息消息作用:消息用两个对象生命线之间的箭头表示,一个对象可以通过消息请求另一个对象执行某个操作 增加消息:--发送消息:将从发送消息对象的生命线拖到接收消息对象的生命线上;-- 显示取消编号和激活条:菜单栏Tools -> Options -> Diagram 选项卡,Sequence numbering 是消消息编号 of control 显示激活条;设置对象持续性--持续(Persistent) --静态(Static) --临时仃 ransient)Focus协作图(Collaboration Diagram)1. 协作图概念协作图:协作图是一种类图,包含类元角色和关联角色,不仅仅是类元和关联;--强调:强调参与交互的各个对象的结构信息和组织;协作图建模对象:对有交互的对象和这些对象之间的关系建模,不参与交互的对象及它们的关系忽略协作图内容:协作图中表现了类操作中用到的参数,布局变量,操作中的永久链;对象图扩展:协作图可以看做对象图的扩展,该图展示了对象之间的关联,显示岀了对象间的消息传递2. 协作图内容(1) 对象(Object)对象:代表协作图交互中的主体,和时序图中对象的概念类似;协作图和时序图中对象区别:协作图中对象无法创建和撤销,因此对象在协作图的位置没有限制(2) 链(Link)链的表示:链的符号和对象图中链所用的符号是一样的,用来连接两个类角色的实线;/)-- :创建对象之间的通信路径;-- :显示对象可以调用自己的属性;在两个对象之间或一个对象本身增加消息在两个对象之间或一个对象本身从反方向增加消息-- :显示两个对象之间的信息流;-- :在反方向显示两个对象之间的信息流;路径构造性:对象之间的连接可以由链末尾附加的路径构造型表示--添加方式:双击链,选择visibility 属性即可;⑶消息(Message)消息概念:对象间通过链接发送的就是消息;--消息传递方向:对象之间的箭头表明对象间交换的消息流,一个对象发出消息,链指向的对象接收消息,链用于实现消息传输--消息标识:消息流标有消息的序列号和对象间发送的消息名称;--消息结果:每条消息否会触发接收对象的一系列操作;消息序号:协作图与时序图中的消息类型是一样的,为了表明消息顺序,需要为消息添加序号;3. 协作图示例示例简介:汽车租赁流程;-- 涉及到的对象:Customer (客户),Order (订单),Worker (工人),Record (记录),Car (汽车);--流程简介:客户写好订单,工人核对订单,核对后订单存在,允许客户取车,工人填写记录,并将车取岀;114. 协作图建模策略协作图使用场景:对系统动态行为建模,按组织对控制流建模使用协作图;协作图管理策略:--单个协作图:单个协作图只能显示一个控制流;--多个协作图:描述复杂系统的时候,需要许多协作图共同描述,一些图是主干协作图,还有许多分支路径的控制流的协作图,使用包管理这些协作图;协作图的建模策略:--设置语境:设置协作图所在的环境,如系统,子系统,类,操作,用例或用例脚本;--对象顶点:识别对象在协作图中扮演的角色,协作图中,对象是图的顶点;--变化修改:每个对象最初都会设置初始值,如果期间对象发生了变化,修改的方式是:协作图中放置一个复制对象,更新复制对象,同过后造型become copy 连接二者;--确定链接顺序:先确定关联链接,哪些对象相互链接;在确定消息链接,路径构造型等表示对象间如何连接;--消息顺序:从引起交互的消息开始编号,将编号信息和描述信息附到链接上,描述了对象之间的传递次序;--时间空间约束:可以为每个消息附加时间和空间上的约束;--前置后置条件:可以为每个消息附加前置和后置条件;5. Rati onal Rose 绘制协作图13(1)创建协作图创建流程:视图浏览器-> Logical View ( 逻辑视图)-> New ( 新建)-> Collaboration Diagram (协作图);链)Cunt i tied ) E Cl Use Case Vi ew 里 Main 玄 Asscci at i ons o Ma: Cor IS 固 Niodal Froparti es ClassClass Utility Use Cas€InterfaceFackAg®Class Di agram ; Sequence Diagram Statfrchar t Di agr un Activi tjr Diagram Die URL(2) 添加对象协作图中添加对象:与时序图基本类似; --添加参与者对象:在类图中创建好类,然后将类型设置为Actor, 然后在视图浏览器中将 Actor拖到协作图中--添加普通对象:直接点击工具栏中的图标设置即可 ; ⑶添加消息添加对象间消息:在两个对象之间添加消息--添加消息:使用在通信路径上添加消息--设置消息名称:双击消息箭头,可以在弹岀的对话框中修改消息名称(4) 添加数据流数据流概念:数据流是一个对象向另一个对象发送消息返回的消息;--使用场景:没必要在每个消息上都加上数据流,只要在中药消息上附加数据流即可;I Q Q数据流添加方法:选择或按钮,单击要返回的数据消息,数据流箭头就会被添加到这个消息上-- 建立通信路径使用/I连接两个对象,建立两个对象间的通信路径添加反身消息:选择象添加消息;QI点击对象,就会岀现指向对象本身的路径可以为该对选择点击这个指向本身的路径6.时序图与协作图转换各自侧重点:时序图和协作图是等价的,可以任意转换,而不丢失信息--时序图:描述交互过程中的时间顺序,没有明确表达对象间关系;--协作图:描述了对象间的关系,但是时间顺序必须从消息的序号中获取转换示例--场景介绍:学生毕业管理--对象介绍:教务人员,学位评价,成绩管理,奖惩管理,信息打印;--控制流介绍:①教务人员输入学号进入学位评价模块,②学位评价模块会向成绩管理模块查询成绩,③向奖惩管理模块询奖惩记录,④学位评价模块会将结果打印到信息打印模块,⑤信息打印模块将结果返回给教务人员;时序图151学号协作图学位萱理nu::成绩管理2学号---------- >奖焦官理nu::3成绩6结果信息打印17信息打学位管印w ------ 理6■结果7.时序图和协作图对比时序图和协作图 共同点:都是有 消息和类角色组成 接口方法由消息发送对象触发 --支持消息:时序图和协作图都支持消息时序图和协作不同点--衡量工具 时序图和协作图可以作为衡量系统耦合性的工具耦合性就是系统中模型之间的依赖性两个模型之间的依赖关系通过查看两个模型之间的消息数量和类型就可以看岀,消息交互少的耦合性高;--规定责任 时序图和协作图 都规定了消息发送对象 和消息接收对象 的责任,每个接收对象都有消息对应的接口这个--对象创建撤销侧重点:时序图侧重描述对象的创建和撤销,新创建的对象放在对象生命线上对应的时间点,撤销的对象在结束的地方放一个X表示该对象不能再继续使用;协作图中创建撤销的概念不存在,对象时始终存在的,只能通过消息描述或约束来说明对象的创建和撤销;--链接侧重点:时序图中的链没有表示岀来,可以随意绘制消息,有些逻辑交互可能不会发生;协作图的消息是映射在链上的,消息和链平行放置,如果想要通过消息查看对象之间的关联使用协作图最好;--激活和去激活:时序图表现有激活和去激活,协作图上没有时间概念的描述,无法清晰地表示对象的激活和去激活;实例-图书管理系统1. 管理员为图书添加类别控制流说明:-- 涉及到的对象:Admin (管理员),BooklnfoWindow (图书信息窗口),Tittle (图书类别),Item (图书条目);--流程:管理员查询图书信息窗口,查看有没有相应的图书类别,如果有插入该图书条目;时序图:192. 管理员删除图书协作图BooktafaVViidoTittleVVnu::nu ........ .1添加图书2查询粪别 3类别有在 < .控制流说明:-- 涉及到的对象:Admin (管理员),BooklnfoWindow (图书信息窗口), Tittle (图书类别),ltem(图书条目); --控制流程:管理员登陆图书信息窗口删除图书,查表图书类别是否存在,查找图书是否存在,如果都返回true, 删除图书条目;时序图:Admin菅理员Be oh Info'//in dowTjttb协作图:AdminWJf 员3. 管理员借书时序图nu';nu. ................................... 1刪除團书 ------------ >nu2查找圈书类别丨 -------------------------------- ---- -------------- --- ------------------------3存在< ................ 4查找由书条目I~~i~■5存在< --------------- -:---- G删除歯书衆目nu……r 1睛除图毛Booklnfo ItemWindow控制流说明:21-- 参与的对象:Admin ( 管理员),BooklnfoWindow (图书信息窗口 ), Tittle ( 图书类别),Borrower ( 借阅者),Loan(借书记录),item ( 图书条目); --流程:管理员登陆图书信息窗口,查询图书类别是否存在,查询图书条目是否存在,查询借阅者是否存在,创建借书 记录; 时序图:3存在 < -----------5存在7有在3创建倍阅记录:协作图 Booklnfo'A'indcTit" BorrowerLoan□ □ 0 t □1借书请或 2査询娄别------------ - -----------。

UML时序图的绘制指南与实例解析

UML时序图的绘制指南与实例解析

UML时序图的绘制指南与实例解析UML(统一建模语言)是一种用于软件开发的标准化建模语言,它提供了一种图形化的方式来描述系统的结构和行为。

在UML中,时序图(Sequence Diagram)是一种常用的建模工具,用于展示系统中各个对象之间的交互过程。

本文将为读者提供一份UML时序图的绘制指南,并通过实例解析来帮助读者更好地理解和运用时序图。

一、时序图的基本概念时序图是一种描述对象之间交互行为的图形化工具,它展示了对象之间的消息传递和时间顺序。

在时序图中,每个对象都表示为一个矩形框,框内写上对象的名称。

对象之间的交互通过箭头表示,箭头上标注的是消息的名称和参数。

时序图按照从上到下的顺序表示时间的流逝,从而展示了系统中对象之间的交互过程。

二、时序图的绘制步骤1. 确定参与者:首先,需要确定在时序图中需要包含哪些对象或者参与者。

参与者可以是系统的各个模块、用户、外部接口等。

将每个参与者表示为一个矩形框,并在框内写上其名称。

2. 确定消息:接下来,需要确定对象之间的交互过程,并将其表示为消息。

消息可以是方法调用、事件触发等。

在时序图中,消息通常用箭头表示,箭头上标注的是消息的名称和参数。

3. 确定时间顺序:在时序图中,对象之间的交互是按照时间顺序展示的,因此需要确定每个消息发生的时间顺序。

可以通过在时序图中添加垂直虚线来表示时间的流逝,从而更清晰地展示对象之间的交互过程。

4. 添加约束条件:有时候,对象之间的交互过程可能会受到一些约束条件的限制,比如并发执行、条件判断等。

在时序图中,可以使用条件框来表示这些约束条件,从而更准确地描述系统的行为。

三、时序图的实例解析为了更好地理解和运用时序图,我们以一个简单的购物系统为例进行实例解析。

在这个购物系统中,主要包含三个参与者:用户、购物车和商品。

用户可以将商品添加到购物车,并进行结算。

首先,我们将用户、购物车和商品分别表示为三个矩形框,并在框内写上其名称。

接下来,我们确定对象之间的交互过程。

时序图?——精选推荐

时序图?——精选推荐

时序图?
1.为什么要画时序图
我们编码的时候,知道有的⽤例的业务逻辑按照⽐较确定的时间先后顺序进⾏展开。

这时候,我们就需要知道我们设计的系统中的不同类之间传递消息(可以认为是不同对象函数间的调⽤)要按照怎么样的顺序、传递什么消息、返回什么消息。

这时候⽤时序图是最好不过的了。

此外,⼤公司都在⽤,,这样也为了深刻把握软件在执⾏过程中的发⽣的变化。

2.时序图的定义
时序图是描述消息时间顺序的交互图。

在图形上,时序图是⼀张表,其中显⽰的对象沿横轴排列,从左到右分布在图的顶部;⽽消息则沿纵轴按时间顺序排序。

创建时序图时,以能够使图尽量简洁为依据布局。

3.画时序图的⼯具
⼀般来说都是使⽤visio,当然,如果项⽬⽐较⼩,也可以⼿绘,但是⼀般不提倡⼿绘。

4.如何绘制时序图??。

时序图

时序图

时序图百科名片时序图时序图(Sequence Diagram),亦称为序列图或循序图,是一种UML行为图。

它通过描述对象之间发送消息的时间顺序显示多个对象之间的动态协作。

它可以表示用例的行为顺序,当执行一个用例行为时,时序图中的每条消息对应了一个类操作或状态机中引起转换的触发事件。

目录[隐藏]时序图元素时序图结构时序图创建步骤举例说明[编辑本段]时序图元素时序图中包括如下元素:类角色,生命线,激活期和消息1,类角色(Class R ole)类角色代表时序图中的对象在交互中所扮演的角色,位于时序图顶部和对象代表类角色。

类角色一般代表实际的对象2,生命线(Lif eline)生命线代表时序图中的对象在一段时期内的存在。

时序图中每个对象和底部中心都有一条垂直的虚线,这就是对象的生命线,对象间的消息存在于两条虚线间。

3,激活期(Activ ation)激活期代表时序图中的对象执行一项操作的时期,在时序图中每条生命线上的窄的矩形代表活动期。

它可以被理解成C语言语义中一对花括号“{}”中的内容4,消息(Message)消息是定义交互和协作中交换信息的类,用于对实体间的通信内容建模,信息用于在实体间传递信息。

允许实体请求其他的服务,类角色通过发送和接受信息进行通信[编辑本段]时序图结构时序图描述对象是如何交互的,并且将重点放在消息序列上。

也就是说,描述消息是如何在对象间发送和接收的。

时序图有两个坐标轴:纵坐标轴显示时间,横坐标轴显示对象。

每一个对象的表示方法是:矩形框中写有对象和/ 或类名,且名字下面有下划线;同时有一条纵向的虚线表示对象在序列中的执行情况( 即发送和接收的消息对象的活动) ,这条虚线称为对象的生命线。

对象间的通信用对象的生命线之间的水平的消息线来表示,消息线的箭头说明消息的类型,如同步,异步或简单。

浏览时序图的方法是,从上到下查看对象间交换的消息,分析那些随着时间的流逝而发生的消息交换。

时序图中的消息可以是信号、操作调用或类似于C++ 中的R PC (Rem ote Proc edure C all,远程过程调用)或Jav a 中的R MI(R emot e Method Inv ocat ion ,远程方法调用)。

第八讲 等精度测频

第八讲 等精度测频

第八讲三、设计实例等精度频率、占空比测量仪1.综述传统频率测量方法是对设定的闸门时间内脉冲进行计数,有两个主要因素影响精度,其一是闸门时间的准确度,其二是对低频信号的取整误差,为了消除以上两个因素的影响可选择等精度测频法。

但等精度测频法占用可编程器件资源量大,如选用24位计数器的频率计,仅测频部分就占用了EPM7128芯片的百分之九十以上的资源;若选用100MHz标准时钟,其闸门时间仅能选择在0.168s以下,测频范围在6Hz以上,限制了对低频的测量。

若要扩大低频量程,需要相应增大可编程器件容量,则体积、功耗和价格相应增加。

本文所述等精度频率、占空比测量仪采用将复杂可编程逻辑器件(CPLD)与低功耗单片机相结合,由CPLD完成高频信号计数,单片机完成低频信号计数、频率和占空比计算和显示控制等功能,即简化了仪器的结构,又扩大了低频量程。

如单片机采用长整形变量计数(32位),再加上CPLD中16位计数器,等效为48位计数器构成的等精度测量仪,当选用100MHz标准时钟时,低频范围可达3.55×10-7Hz。

本文所述等精度频率、占空比测量仪结构框图如图8-1所示,CPLD可编程逻辑器件选用的是EPM7064芯片,单片机可根据实际情况选用。

图8-1 等精度频率、占空比测量仪结构框图单片机发出如下所示控制信号:CLEAR:SLCE为高时CPLD芯片内各计数器清零信号;SLCE为低时占空比清零和测量启动信号。

SLCE:功能选择控制信号。

高电平测频;低电平测占空比。

CONTRL:闸门时间信号。

高电平测频;低电平测占空比。

S[2..0]:输出选择控制信号。

000—CPLD 输出标准时钟信号四位计数值最低位;001—CPLD 输出标准时钟信号计数值次低位;010—CPLD 输出标准时钟信号计数值第三位;011—CPLD 输出标准时钟信号计数值第四位;100—CPLD 输出被测信号四位计数值最低位;101—CPLD 输出被测信号计数值次低位;110—CPLD 输出被测信号计数值第三位;111—CPLD 输出被测信号计数值第四位。

时序图设计:根据流程,绘制时序图,理清对象间交互和调用顺序

时序图设计:根据流程,绘制时序图,理清对象间交互和调用顺序

时序图设计:根据流程,绘制时序图,理清对象间交互和调用顺序一、引言时序图是一种重要的UML图,用于描述对象之间的交互和调用顺序。

它可以帮助开发人员更好地理解系统中各个对象之间的关系,从而更好地设计和实现软件系统。

本文将介绍时序图的设计过程,并提供一些实例来帮助读者更好地理解时序图的绘制方法。

二、时序图概述时序图是一种表示对象之间交互的UML图,它展示了系统中各个对象之间的调用顺序和时间流逝。

时序图由对象(也称为参与者)和消息组成。

对象代表系统中的实体,消息表示对象之间的交互。

时序图以垂直方向表示时间的流逝,从上到下依次展示对象的调用顺序。

时序图的绘制过程包括确定参与者、标识参与者、确定消息流、绘制时序图。

下面将逐步介绍这些步骤。

三、确定参与者在绘制时序图之前,首先需要确定参与者。

参与者是系统中的实体,它们在时序图中表示为对象。

确定参与者的过程需要分析系统的功能和需求,确定哪些实体在系统中起到关键作用,需要与其他实体进行交互。

参与者可以是人、软件模块、外部系统等。

对于复杂的系统,可能会存在多个参与者,需要通过分析系统的业务逻辑来确定它们。

四、标识参与者确定了参与者之后,需要为每个参与者标识一个唯一的名称。

参与者的名称应该能够清晰地表达其在系统中的角色和责任。

为了增加时序图的可读性,可以在参与者的名称旁边添加一个图标或者简短的描述,帮助读者更好地理解参与者的作用。

标识参与者的过程需要结合系统的设计和需求,确保参与者的名称准确地表示其在系统中的角色。

五、确定消息流在绘制时序图之前,还需要确定对象之间的消息流。

消息是对象之间交互的基本单位,它表示一个对象向另一个对象发送的信息。

消息可以是同步的(表示调用一个方法并等待返回结果)或者异步的(表示发送一个消息并不等待返回结果)。

确定消息流的过程需要分析系统的业务逻辑和交互规则,确定哪些对象需要交互,以及交互的方式和顺序。

可以使用箭头表示消息的流向,箭头的方向表示消息的发送方向。

时序图的流程和算法

时序图的流程和算法

时序图的流程和算法下载温馨提示:该文档是我店铺精心编制而成,希望大家下载以后,能够帮助大家解决实际的问题。

文档下载后可定制随意修改,请根据实际需要进行相应的调整和使用,谢谢!并且,本店铺为大家提供各种各样类型的实用资料,如教育随笔、日记赏析、句子摘抄、古诗大全、经典美文、话题作文、工作总结、词语解析、文案摘录、其他资料等等,如想了解不同资料格式和写法,敬请关注!Download tips: This document is carefully compiled by theeditor. I hope that after you download them,they can help yousolve practical problems. The document can be customized andmodified after downloading,please adjust and use it according toactual needs, thank you!In addition, our shop provides you with various types ofpractical materials,such as educational essays, diaryappreciation,sentence excerpts,ancient poems,classic articles,topic composition,work summary,word parsing,copy excerpts,other materials and so on,want to know different data formats andwriting methods,please pay attention!1. 确定系统边界和参与者:明确要描述的系统或业务流程的范围。

识别参与该流程的各个实体或角色,即参与者。

第8章_时序图

第8章_时序图
在交互期间,参与者可以以任意数目的状态存在。当系 统对象接收到一个事件时,它处一种特定的状态。接着, 系统对象会一直处于该状态,直到另一个事件发生。时 序图上的状态位于系统对象的旁边,如图。
:Loan :Book
New Idle Borrowed Available Idle Invalid Avaliably Idle Entering BookID Entering new Borrower Idle 系统对象的状态
北方民族大学计算机科学与工程学院
课程名称:
UML建模技术
第19-20讲 任课教师: E-mail:
2014-8-23
第 8章 时序图 (定时图)
丁红胜
tsgding@
1
第 8章 时序图(定时图)
本章学习要点: 理解为什么要建模时序图 了解时序图的构成 理解时序图中的时间约束 理解时序图的替代表示法 掌握时序图的一般表示法与替代表示法之 间的转换,根据系统的时间需求,能够为 系统建模时序图
2014-8-23
13
时间约束通常应用于系统对象处于特定状态的时间量, 或者应该花多长时间调用及接收事件。即时间约束可 以限制消息或对象的状态,如图 7-9 所示。通常将约 束用于时序图。
2014-8-23
14
7 . 3 时序图的替代表示法

使用时序图为系统交互建模的代价是比较昂 贵的,对于任何包含少数状态的小交互而言, 这种代价还可以接受:而当系统对象的状态 比较多时,创建时序图无疑是非常麻烦的。 为此, UML 引用了一种简单的替代表示方 法,可以在交互包含大量的状态时使用。如 下图所示。
5
2014-8-23
7 . 1 . 1 时序图中的对象

时序图

时序图
在Class下拉列表框中选择类名; 或者, 将浏览器中的类拖动到框图中的对象上。
2)对象持续性(Persistence) )对象持续性( )
Persistent:对象保存到数据库或者其他 形式的永久存储体中 Static:对象保存在内存中直到程序中止 Transient:对象只在短时间内保存在内 存中
如果要撤销一个对象,只要在其生命线终 止点放置一个“X”符号即可,该点通常是 对删除或取消消息的回应。
16
10.4 时序图建模技术
① ② ③ ④ 设置交互的语境。 通过识别对象在交互中扮演的角色,设置交互的场景。 为每个对象设置生命线。 从引发某个消息的信息开始,在生命线之间画出从顶 到底依次展开的消息,显示每个消息的特性(如参 数)。 ⑤ 如果需要可视化消息的嵌套或实际计算发生时的时间 点,可以用激活修饰每个对象的生命期。 ⑥ 如果需要说明时间或空间的约束,可以用时间标记修 饰每个消息,并附上合适的时间和空间约束。 ⑦ 如果需要更形式化的说明某控制流,可以为每个消息 附上前置和后置条件。
22
为消息分配操作
为消息分配操作
要给消息分配操作:
双击框图中的消息图标; 从弹出的列表中选择一个操作。或者单击 <new operation>定义一个新操作。
改变消息指定的操作:
双击框图中的消息; 在消息规范窗口“Name”字段列表框中选择新的操 作名 。
23
对象规范与应用
对象规范
1)映射类(Class) )映射类( )
28
消息编号
Top-Level 编号
定义
顶级编号。编号由1开始,后续消息的编号单调递增,消息 编号只有一个单一的数字,没有数字子集。
举例
如用户设定了编号为1.,1.1.,1.2.和1.2.1.的消息,在顶级 编号时将被编号为1,2,3和4

时序图编制PLC程序PPT学习课件

时序图编制PLC程序PPT学习课件
Q0.0驱动快进电磁阀 Q0.1驱动工进电磁阀 Q0.2启动快退电磁阀
9
课题2:机床动力头运行控制 2.用顺序控制设计法编程 2.1工作要求
某机床动力头在初始状态时停止在最左边, 限位开关I0.3闭合,为1状态,按下启动按钮 I0.0,动力头快进,运行至中段,行程开关 I0.1闭合,转为工进,进行加工到位时,I0.2 闭合,动力头快退,返回原位。 按工作要求画出示意图并设计如图7所示的流 程图,用M0.0~M0.3作步,每步驱动对应的 Q0.0~Q0.2;用开关触点作转换条件。
2020/2/26
图7
10
2.2用S/R指令编制动力头控制程序
初始脉冲SM0.1给M0.0置位,按 下启动按钮I0.0闭合,M0.1置位, M0.0复位,Q0.0输出,动力头快进; 运行至中段,I0.1闭合,M0.2置 位,M0.1复位,Q0.1输出,动力头 转为工进, 动力头加工到位,I0.2闭合, M0.3置位M0.2复位,Q0.2输出,动 力头快退; ④至原位时,I0.3闭合,M0.0置位, M0.3复位,进行下一个循环。
2020/2/26
12
3.2十字路 口交通指示 灯示意图
2020/2/26
13
3.3 十字路口交
通指示灯画面
2020/2/26
14
3.4十字路口交通指示灯时序图
按照十字路口交通指示灯的控制要求,画出时序图如下:第一条 曲线表示按下启动按钮I0.0系统工作;第二条曲线表示南北红灯 亮25秒;第三条曲线表示东西绿灯亮20秒闪亮3秒;第四条曲线 表示东西黄灯闪亮2秒;第五条曲线表示东西红灯亮25秒;第六 条曲线表示南北绿灯亮20秒闪亮3秒。第七条曲线表示南北黄灯 闪亮2秒。每条曲线之间有对应的时刻关系。

时序图

时序图

中央处理单元(CPE)/电子工程师(EE)421微型计算机翻译时序图芯片6800的读周期一个简单的触发器的时序图(图(1)-(4))图(1)时序图的理想形式图(2) D触发器的实际动作图图(3)时序图的普遍形式图(4)时序图的替换形式一、计数器1.一个微处理器需要一个计数器来提供一连串的时间脉冲来来控制其内部操作。

2.一个6800存储器芯片至少有八个时钟状态,是从时钟状态S0到时钟状态S7.图1 存储器开始于状态S0,结束于状态S7图2 计数器最重要的参数就是技术周期,记为图3 在存储器开始工作的时候,CPU就会告知存储器它想读取的数据的位置地址二、地址时序1、我们感兴趣的是:芯片68000在什么时候会在存取存储器内产生一个新的地址以供使用。

2、接下来的图片表明了新地址和68000的时钟状态之间的关系。

图4 (1)起初,在状态S0时,地址总线包含了旧地址(2)在状态S1时,一个新地址对于存取存储器剩余的空间来说是有效的图5 地址总线变化的目录下的时间与计数器边沿有关3、接下来我们看控制地址总线时序的一连串顺序。

4、“旧”地址在状态S0时被移除。

5、地址总线在一个较短的时间内浮动,CPU在状态S1时产生一个新地址。

图6 在状态S0时,旧地址被移除,地址总线处于浮动状态图7 设计者对于地址首次有效的某个时间点感兴趣。

这个点就是在S0的下降沿之后的时间秒处图8 存储器需要知道来自CPU的地址何时是有效的。

地址选通器就用来预测地址的有效性三、地址和地址选通1、我们关心的是地址有效的时间和地址被选通器选定认为有效的时间之间的关系。

2、当选通器是低电平是,就表示地址是有效的。

3、下面我们来看看计数器、地址、地址选通器的时序图。

图9 当地址有效的时候,选通器就会表现出低电平;当地址改变了(无效),选通器呈现出高电平图10 在计数器状态S2时,选通器转变成低电平四、数据选通器1、芯片68000有两个数据选通器和。

时序图(序列图)

时序图(序列图)

时序图(序列图)⼀、什么是时序图?时序图(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)。

时序图详解

时序图详解

除了提供一个图形化边框之外,用于图中的框架元件也有描述交互的重要的功能, 例如序列图。

在序列图上一个序列接收和发送消息(又称交互),能通过连接消息和框架元件边界,建立模型(如图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”,然后那个操作元是要执行的操作元。

时序图提纲

时序图提纲
约束。 如果需要形式化的说明某控制流,可以为每个消息附上前置和后置条件。
建立时序图的步骤 确定交互的范围;
结束;
设置消息;
细化消息。
存款用例的活动图
分析级别的顺序图, 粗略,双斜杠 忽略消息同步异步 类别也无妨
借阅图书用例的时序图 借阅图书的过程为:
?对象object?生命线lifeline?消息message?激活activation时序图简介在类图中的类的对象在类图中的类的对象使用系统的参与者这个系统是为某个用例的某个场景设计的使用系统的参与者这个系统是为某个用例的某个场景设计的窄长方框用以强调这个部分处于活动状态窄长方框用以强调这个部分处于活动状态从参与者到对象和从对象到参与者之间发送的消息从参与者到对象和从对象到参与者之间发送的消息从对象传递给另一个对象的消息从对象传递给另一个对象的消息对象生命线表示从上到下的时间顺序消息1在消息2之前发生消息2在消息3之前发生对象生命线表示从上到下的时间顺序消息1在消息2之前发生消息2在消息3之前发生对象?时序图中对象的符号和对象图中对象所用的符号一样
时序图和用例 登录用例:
用户将用户名和密码提交给LoginAction
由LoginAction调用UserManager UserManager到用户数据库User Server中查找用户对象并返回
由UserManager判断用户名是否为空、密码是否正确
然后将User对象返回 返回后台登录主界面。
当一条消息被传递给对象的时候,它会触发该对象的某个行为,这时就
说该对象被激活了。 在UML中,激活用一个在生命线上的细长矩形框表示。
矩形本身被称为对象的激活期或控制期,对象就是在激活期顶端被激活
的。 激活期说明对象正在执行某个动作。当动作完成后,伴随着一个消息箭

第8讲 时序图

第8讲 时序图


守卫条件(guard-condition)
语法:
[ 条件短语 ] 条件短语通常用伪代码或真正的程序语言来表示, UML并不规定其语法 例如,[x<0] 4: invert(x, color)

序列表达式 (sequence-expression)
语法
[integer | name] [recurrence] : integer为指定消息顺序的序列号,消息1是消息序列的 开始消息消息,1.1是消息1的处理过程中的第一条嵌套 的消息,消息1.2是消息1的处理过程中的第二条嵌套的 消息,一个消息序列的例子如1, 1.1, 1.2, 1.2.1, 1.2.2, 1.3, 等。这样的序列号不仅能够表示消息的顺序而且还 能表示消息的嵌套关系(当消息是异步消息时消息为嵌套 的操作调用及返回) name表示并发控制线程,例如1.2a和1.2b为同时发送 的并发消息

7.2.5 消息

在任何一个软件系统中,对象都不是孤立存在的 ,它们之间通过消息进行通信。 消息是用来说明时序图中不同活动对象之间的通 信。因此,消息可以激发某个操作、创建或撤销 某个对象。 在时序图中,消息是由从一个对象的生命线指向 另一个对象的生命线的直线箭头来表示的,箭头 上面还可以表明要发送的消息名及序号。 在个对象之间,消息的次序由它们在垂直轴上的 相对位置决定。

7.2.2 活动者或对象
活动者和对象按照从左到右的顺序排列 一般最多两个活动者,他们分列两端。启动 这个用例的活动者往往排在最左边;接收消 息的活动者则排在最右端; 对象从左到右按照重要性排列或按照消息先 后顺序排列。

Object1 : ClassA
7.2.2 活动者或对象

教你3步画好时序图,轻松掌握产品经理都在学的流程分析利器

教你3步画好时序图,轻松掌握产品经理都在学的流程分析利器

产品经理简称PM,是指在公司中针对某一项或是某一类的产品进行规划和管理的人员,主要负责产品的研发、制造、营销、渠道等工作。

产品经理是很难定义的一个角色,如果非要一句话定义,那么产品经理是为终端用户服务,负责产品整个生命周期的人。

产品经理需要考虑目标用户特征、竞争产品、产品是否符合公司的业务模式等等诸多因素。

近年来互联网产品经理火热,一起看下为大家精选的互联网产品经理学习文章。

上次介绍了活动图,这次UML 中,另一种流程分析利器——时序图。

以前每次要分析流程,我都会用活动图。

直到有一次,我面对一个业务流程,画活动图,画来画去,总觉得哪里不对,但又表达不出来,感觉如鲠在喉。

后来,我想起时序图,用时序图把流程梳理了一遍,豁然开朗。

原来,用不同的视图去描述同一个流程,能让我们看到自己未曾发现的问题。

就像看足球比赛,在多个不同位置的摄像镜头下,能看到球员更全面的表现。

此后,我用时序图甚至比活动图还多。

那么,它有啥特别之处,居然能替代活动图来分析流程?我们一起来看看。

01 解读时序图时序图,也叫序列图、顺序图,是UML 中常用的动态视图,用于描述多个对象参与实现业务目标时,彼此之间按时间顺序进行交互的过程。

时序图,用来表达对象或角色之间交互的信息传递和时间顺序,特别方便。

每次梳理流程,跟开发沟通,我都会借助它来描述。

绘制时序图,将一个个对象和其交互动作列出来,可以直观反映出,每个对象对其他对象、或其自身做的交互动作,让我们看到业务内部的运作、系统之间的互动,从而搞清楚业务规则、系统逻辑。

在《火球:UML 大战需求分析》一书中,作者总结特别好:“任何复杂的交互,都可以分解为自己与自己、自己与别人、别人与别人的多个简单交互”。

时序图正体现了这种逻辑,所以,它表达交互逻辑时,非常清晰简单。

客户用ATM 取款的时序图作为产品经理,如果我们能掌握这一利器,用来分析业务、定义需求,与开发沟通,定能大大提高效率。

时序图常见的应用场景,是在支付领域。

时序图总结

时序图总结

时序图学习总结时序图(Sequence Diagram),一种交互图.用来显示对象之间的关系,并强调对象之间消息的时间顺序,同时显示了对象之间的交互。

用例就是需求流程说明,时序图则是流程的实际顺序。

时序图中包括如下元素:类角色,生命线,激活期和消息。

1,类角色(Class Role) 类角色代表时序图中的对象在交互中所扮演的角色,位于时序图顶部和对象代表类角色。

3,激活期(Activation) 激活期代表时序图中的对象执行一项操作的时期,在时序图中每条生命线上的窄的矩形代表活动期。

时序图1.按照交互发生的时间顺序,显示对象之间是如何调用的;2.描述了具体用例的详细流程;3.主要用途,是把用例表达的需求,转化为进一步、更加正式层次的精细表达。

4.用例常常被细化为一个或更多的时序图。

例如:读者还书的时序图序列图要达到某个特定的目标,必然要执行一系列的方法调用。

UML 序列图的典型用途就是显示出方法调用过程。

图二显示了一个交易事务中计算累计金额的序列图,调用从Sale 类的calcTotal() 方法开始,相关的代码片断在序列图之后给出。

术语说明:UML 把操作(Operation)定义为方法的特征(Signature)。

“方法”(Me thod)这一术语被保留给实现操作的代码。

但在Java 环境中,“方法”这一术语的应用范围更广泛一些。

在UML 序列图中,调用一个操作就叫做发送一个消息(Message)。

序列图实际上阐述了操作的具体实现,所以下面我们会较多地用到“方法”这个术语(偶尔也会用到“消息”这个术语)。

图二计算交易总金额的序列图为了便于把握序列图的总体情况,图一只显示了方法的名称。

详细的序列图可以显示出方法的参数和返回值。

在序列图中,对象以常规的UML 符号显示,即使用与对象所属的类一样的形状或符号(默认是矩形),再注明对象的名称,加上一个冒号,再加上相应的类名称。

然后再为整个名字加上下划线(例如,图二中的aProduct:Product)。

时序图和协作图PPT课件

时序图和协作图PPT课件
⑤ 设置对象的激活期,可视化消息的嵌套或可视 化实际计算发生时的时间点。
⑥ 如果需要设置时间或空间的约束,可以为每个 消息附上合适的时间和空间约束。
⑦ 如果需要形式化的说明某控制流,可以为每个 消息附上前置和后置条件。
2021/7/23
24
7.4 时序图建模实例
例:图书管理系统时序图建模
1.添加借阅者
❖ 在UML中,时序图用一个二维图描述系统 中各个对象之间的交互关系。其中,纵轴
是时间轴,时间沿竖线向下延伸,由上至
下表示时间的先后顺序。横轴代表了参与 相互作用的对象。
❖ 当对象存在时,生命线由一条虚线表示;
当对象的过程处于激活状态时,生命线上
用一个激活条表示。消息用从一个对象到
另一个对象生命线的箭头表示,箭头以时
第7章 时序图
❖ 系统或对象的动态模型主要包括状态模型 和交互模型。
❖ 状态模型用来描述系统或对象的动态行为, 用状态图和活动图进行描述,因此状态图和 活动图又统称为行为图;
❖ 交互模型主要用来帮助人们观察和分析系 统的交互行为,用时序图和协作图进行描述, 因此时序图和协作图又统称为交互图。
2021/7/23
❖ 消息流上标有消息的序号和对象间发送的消 息,消息的序号表明了消息发送的先后顺序。
❖ 一条消息会触发接收对象中的一项操作。
2021/7/23
36
对象
1: Create()
2: Return Message
2021/7/23
20
❖ 在新创建的对象时,都可以发送“destroy”消息 来撤销新创建对象。
❖ 要想说明某个对象被撤销,需要在被撤销对象的 生命线末端放一个“×”符号进行标识。
ObjectA
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
异步消息表示发送消息的对象不用等待回 应的返回消息,即可开始另一个活动。 异步消息在某种程度上规定了发送方和接 收方的责任,即发送方只负责将消息发送 到接收方,至于接收方如何响应,发送方 则不需要知道。对接收方来说,在接收到 消息后它既可以对消息进行处理,也可以 什么都不做。

反身消息(Message to Self)
7.2.4 激活期



当一条消息被传递给对象的时候,它会触发该对 象的某个行为,这时就说该对象被激活了。 在UML中,激活用一个在生命线上的细长矩形框 表示。 矩形本身被称为对象的激活期或控制期,对象就 是在激活期顶端被激活的。 激活期说明对象正在执行某个动作。当动作完成 后,伴随着一个消息箭头离开对象的生命线,此 时对象的一个激活期也宣告结束。
简单消息 带返回值的嵌套消息 条件消息 在发送线程c的第2个消 息之前,必须先发送线 循环消息 程a的第3个消息和线程b 的第4个消息 线程同步 在发送消息1.2之前必须 已经同时发送并发消息给 带前缀消息 线程a和b

前缀(predecessor)
语法:消息序列号,消息序列号,
... / 前缀是一个用来同步线程或路径(path)的表达式 意思是在发送当前消息之前指定序列号的消息被处理 (必须连续执行) 消息序列号之间用逗号隔开,用斜杠结束 例如 1.1a, 1.1b/1.2: continue() ,在发送消息1.2之前 必须已经同时发送并发消息给线程a和b

7.2.2 活动者或对象
活动者和对象按照从左到右的顺序排列 一般最多两个活动者,他们分列两端。启动 这个用例的活动者往往排在最左边;接收消 息的活动者则排在最右端; 对象从左到右按照重要性排列或按照消息先 后顺序排列。

Object1 : ClassA
7.2.2 活动者或对象

对象的命名方式有三种:
当时序图中的消息比较多时,还可以通过对消息 前置序号表达式的方式指定消息的顺序。
Байду номын сангаас

7.2.5 消息

消息内容标识的格式为:
[序号][监护条件]*[重复次数][返回值表:=]操作名(参数表)
例:



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()
简单时序图
顺序图与用例图和类图的关系
UML
7.2.1 顺序图的组成

活动者(actor)或者 对象(object) 生命线(lifeline) 激活(activation)/ 控制焦点(focus of control) 消息(message)

当执行一个用例行为时,顺序图中的每条消息对 应了一个类操作或状态机中引起转换的事件。


顺序图
面向时间描述对象交互的图

协作图
对象间消息的结构化视图
7.2 时序图

按照时间顺序显式对象之间交互的图

时序图(Sequence Diagram)在一些参考书中也被 称为顺序图,是一种详细地表示对象之间行为交互关 系的图 按时间顺序把各个对象所执行的操作以及它们之间所 传送的消息展现出来 可以清晰而直观的表示对象之间的行为交互关系以及 操作和消息的时序关系。
消息: 向哪个对象发消息实际上就是调用它的类中的操作,就是 调用箭头指向的对象所在类的 一个operation。
订单类发消息给客户类调用客户类中的“验证客户”操 作
UML - 14 -
使用系统的参 与者,这个系 统是为某个用 例的某个场景 设计的
在类图中的 类的对象
窄长方框用以 强调这个部分 处于活动状态
7.2.5 消息
面向对象方法中,消息是对象间交互信息的主 要方式。 结构化程序设计中,模块间传递信息的方式主 要是过程(或函数)调用。 对象A向对象B发送消息,可以简单地理解为 对象A调用对象B的一个操作(operation)。

7.2.5 消息
顺序图中,尽力保持消息的顺序是从左到 右排列的。 一个顺序图的消息流开始于左上方,消息2 的位置比消息1低,这意味着消息2的顺序 比消息1要迟。因为西方的阅读习惯是从左 到右。 顺序图中消息编号可显示,也可不显示。 协作图中必须显示。

守卫条件(guard-condition)
语法:
[ 条件短语 ] 条件短语通常用伪代码或真正的程序语言来表示, UML并不规定其语法 例如,[x<0] 4: invert(x, color)

序列表达式 (sequence-expression)
语法
[integer | name] [recurrence] : integer为指定消息顺序的序列号,消息1是消息序列的 开始消息消息,1.1是消息1的处理过程中的第一条嵌套 的消息,消息1.2是消息1的处理过程中的第二条嵌套的 消息,一个消息序列的例子如1, 1.1, 1.2, 1.2.1, 1.2.2, 1.3, 等。这样的序列号不仅能够表示消息的顺序而且还 能表示消息的嵌套关系(当消息是异步消息时消息为嵌套 的操作调用及返回) name表示并发控制线程,例如1.2a和1.2b为同时发送 的并发消息
(2) 由LoginAction调用UserManager (3) UserManager到用户数据库User Server中查找用户 对象并返回

(4) 由UserManager判断用户名是否为空、密码是否正确 (5) 然后将User对象返回 (6)返回后台登录主界面。
例子

时序图的最大特点是:它以二维的平面上的一维来 表示时间进度,在时间维上展开了一组相互协作的 对象在完成某项功能时所发生的行为与事件

同步消息 (Synchronous Message)
同步消息最常见的情况是调用,即消息发 送者对象在它的一个操作执行时调用接收 者对象的一个操作,此时消息名称通常就 是被调用的操作名称。 当消息被处理完后,可以回送一个简单消 息,或者是隐含的返回。

异步消息 (Asynchronous Message)
时序图建模过程中,一个对象也可以将一 个消息发送给它自己,这就是反身消息。 如果一条消息只能作为反身消息,那么说 明该操作只能由对象自身的行为触发。 这表明该操作可以被设置为private属性, 只有属于同一个类的对象才能够调用它。 在这种情况下,应该对时序图进行彻底的 检查,以确定该操作不需要被其他对象直 接调用。
各个对象所执行的操作以及它们之间所传送的消息 ,从而能够在逻辑上清晰的刻画这些操作和消息的 时序关系乃至因果关系。 时序图提供了对象所执行的操作以及对象之间传送 的消息随时间推移的、清晰的和可视化的轨迹。


7.2.1 时序图的组成
: Actor
:Object1
:Object2
1: Message 2: Operation :Object3 3: Operation 4: Message 5: Message
包括对象名和类名 类名(匿名对象) 对象名(不关心类)
7.2.3 生命线

生命线(Lifeline):
每个对象都有自己的生命线,用来表示在该用例中一个对
象在一段时间内的存在 垂直的虚线 如果对象生命期结束,则用注销符号表示 对象默认的位置在图顶部,表示对象在交互之前已经存在 如果是在交互过程中由另外的对象所创建,则位于图的中 间某处。
Object2
2: Synchronous Message 3: Asynchronous Message 4: Message to Self 5: Return Message
简单消息(Simple Message)
简单消息是在同步和异步之间没有区别的 消息。 使用简单消息是因为有时消息是同步还是 异步无关紧要,或者在不知道消息的类型 的情况下就需要用到简单消息。 在对系统进行时序图建模时,可以对所有 的消息都使用简单消息进行表示,然后再 根据情况确定消息的类型。

7.2.5 消息

在任何一个软件系统中,对象都不是孤立存在的 ,它们之间通过消息进行通信。 消息是用来说明时序图中不同活动对象之间的通 信。因此,消息可以激发某个操作、创建或撤销 某个对象。 在时序图中,消息是由从一个对象的生命线指向 另一个对象的生命线的直线箭头来表示的,箭头 上面还可以表明要发送的消息名及序号。 在个对象之间,消息的次序由它们在垂直轴上的 相对位置决定。
简单消息(Simple
Message) 同步消息(Synchronous Message) 异步消息(Asynchronous Message) 反身消息(Message to Self) 返回消息(Return Message)
Object1 1: Simple Message



时序图的主要用途之一是用来为某个用例的 泛化功能提供其所缺乏的解释,即把用例表 达的要求转化为更进一步的精细表达。 用例常常被细化为一个或多个时序图。


时序图除了在设计新系统方面的用途之外, 它还能用来记录一个存在系统的对象现在如 何交互。
例子

登录


(1)用户将用户名和密码提交给LoginAction


时序图和协作图从不同的角度描述了为完成某种系统功 能,系统中各对象间的交互与协作,可以有效地帮助人 们观察和理解系统的动态行为。
通常用来描述一个用例的行为,实现一个用例,完成对 系统的动态行为建模;
相关文档
最新文档