顺序图和协作图ppt课件.ppt
《顺序图和协作图ppt课件.ppt》由会员分享,可在线阅读,更多相关《顺序图和协作图ppt课件.ppt(74页珍藏版)》请在三一办公上搜索。
1、顺序图和协作图,交互图概述,交互图(interaction diagram)是用来描述对象之间以及对象与参与者之间的动态协作关系以及协作过程中行为次序的图形文档.,交互图通常用于描述一个用例的行为, 显示该用例中所涉及的对象及对象之间消息传递情况.,交互图包括:顺序图(sequence diagram), 描述对象按照时间顺序的消息交换;协作图(collaboration diagram), 描述系统成分如何协同工作.,顺序图,1. 顺序图 顺序图也称为时序图,它描述了系统中对象间通过消息进行的交互,它强调了消息在时间轴上的先后顺序。2. 顺序图的作用 顺序图常用来描述用例的实现,它表明了由哪
2、些对象,通过消息相互协作来实现用例的功能,在顺序图中,标识了消息发生交互的先后顺序。,赤壁之战的顺序图,顺序图的组成元素参与者(actor)或者 对象(object)生命线(lifeline)激活期(activation)/ 控制焦点(focus of control)消息(message),参与者或对象,参与者和对象按照从左到右的顺序排列;一般最多两个参与者,他们分列两端。启动这个用例的参与者往往排在最左边,接收消息的参与者则排在最右端;对象从左到右按照重要性排列或按照消息先后顺序排列;将对象置于顺序图的顶部意味着在交互开始的时候对象就已经存在了,如果对象的位置不在顶部,那么表示对象是在交互
3、的过程中被创建的。,对象的命名方式有三种:包括对象名和类名类名(匿名对象)对象名(不关心类),生命线(Lifeline)每个对象都有自己的生命线,用来表示在该用例中一个对象在一段时间内的存在垂直的虚线如果对象生命期结束,则用注销符号表示,消亡点,激活期(activation)/控制焦点(focus of control)对象在一段时间内获得了焦点,也称激活期对象执行某个动作的时期空心矩形条激活期的长短意味着对象执行某个动作的时间有多长,可以通过约束10ms来限制执行时间的长短。,顺序图中的消息,面向对象方法中,消息是对象间交互信息的主要方式。结构化程序设计中,模块间传递信息的方式主要是过程(或
4、函数)调用。对象A向对象B发送消息,可以简单地理解为对象A调用对象B的一个操作(operation)。,顺序图中,尽力保持消息的顺序是从左到右排列的。一个顺序图的消息流开始于左上方,消息2的位置比消息1低,这意味着消息2的顺序比消息1要迟。顺序图中消息编号可显示,也可不显示。,UML1.4后定义的消息有:调用消息 procedure call异步消息 asynchronous返回消息 returnUML1.3前的消息还有:简单消息 simpleRose扩充的消息阻止消息 balking超时消息 time-out,调用消息:消息的发送者把控制传递给消息的接收者, 等待接收者返回或放弃控制,可以表
5、示同步。实心箭头符号,调用消息必有一个与之配对的返回消息, 但是可以不用画出.,异步消息:消息的发送者把控制传递给消息的接收者, 然后继续自己的工作,不等待接收者返回或放弃控制.,UML1.4及以后,UML1.3及以前,返回消息(Return):表示消息的返回。消息上方放置返回值同步消息的返回可以画出(如果想明确表达返回值),也可以不画出,直接隐含。异步消息可以有返回,也可以没有。(可以响应异步消息,也可以不响应该异步消息。)虚线箭头表示,和依赖关系不要混淆,阻止消息:消息的发送者传递消息给接收者, 如果接收者无法立即接收, 则发送者放弃该消息.超时消息:消息的发送者发出消息给接收者并按指定时
6、间等待, 若接收者无法在指定时间内接收, 则发送者放弃该消息.,自调用(Self Call)某对象自己调用自己的操作嵌套的矩形条,消息的语法格式,前置消息列表警戒条件消息顺序表达式返回值:=消息名称(参数列表),前置消息列表(predecessor)语法:消息序列号,消息序列号, . /前置消息列表是一个用来同步线程或路径(path)的表达式意思是在发送当前消息之前指定序列号的消息被处理(必须连续执行)消息序列号之间用逗号隔开,用斜杠结束例如 1.1a, 1.1b/1.2: continue() ,在发送消息1.2之前必须已经同时发送并发消息给线程a和b,警戒条件(guard-conditio
7、n)语法: 条件短语 条件短语通常用伪代码或真正的程序语言来表示,UML并不规定其语法例如,x0 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, 等。这样的序列号不仅能够表示消息的顺序而且还能表示消息的嵌套关系(当消息是异步消息时消息为嵌套的操
8、作调用及返回)name表示并发控制线程,例如1.2a和1.2b为同时发送的并发消息,消息编号:按消息产生的先后顺序,给消息编号,有两种编号方案,一种是顺序编号,另一种是嵌套编号,(1)顺序编号 整个消息的传递过程就形成了一个完整的序列,因此通过在每个消息的前面加上一个用冒号隔开的顺序号(按照消息的先后顺序,从1开始对消息编号)来表示其顺序。(2) 嵌套编号 由于顺序图本身已经充分表现出消息执行的顺序,因此在UML模型中并没有要求对消息进行编号。只是要求在协作图中,对消息进行了编号。但在Rose等建模工具中,为了能够自动实现顺序图与协作图的转换,在顺序图中也默认采取嵌套编号方案。,嵌套编号,re
9、currence表示一个条件或循环的执行,有两种选择* 循环子句 循环子句(iteration-clause)用来指定一个循环(重复执行)例如:一个包括循环的消息 1.1 *x = 1.10 : doSomething() 条件子句 条件子句一般用来表示分支而不是用作警戒条件x0,是两个可以用来分支的条件子句,这两个条件只能有一个为真,因而只有一个分支被执行(即发送与分支有关的消息)条件子句和循环子句都可以用伪代码或真正的编程语言来表示消息顺序表达式用冒号结束,返回值、消息名和参数表返回值表示一个操作调用(即一个消息)的结果,消息的语法格式,前置消息列表警戒条件消息顺序表达式返回值:=消息名称
10、(参数列表),例:2: display () 1.3.1: p:=find()x0 4: invert(x, color)3.1 *x = 1.10 : update()1.1a, 1.1b/1.2: continue(),Rose中的消息,建立顺序图的步骤,确定交互过程的上下文识别参与交互过程的对象为每个对象设置生命线从引发这个交互过程的初始消息开始, 在生命线之间自顶向下依次画出随后的各个消息.如果需要嵌套或(和)表示消息发生的时间点, 使用控制焦点.如果需要说明时间约束, 则在消息旁边加上约束说明.如果需要, 可以为每个消息设置前置条件和后置条件.,下面以饮料自动销售系统为例,来学习怎样
11、绘制顺序图下面对“买饮料”的一种场景进行建模,绘制其对应的顺序图买饮料的正常场景下面是买到饮料的一般事件流:(1)顾客从机器的前端钱币口投入钱币,然后选择想要的饮料;(2)钱币到达钱币记录仪,记录仪更新自己的存储;(3)记录仪通知分配器分发饮料到机器前端.,边界类、控制类和实体类,UML中三种主要的类版型边界类, boundary class控制类, control class实体类, entity class,引入多种类版型帮助分析和设计人员确定系统中的类.,边界类,边界类位于系统与外界的交界处,包括:,用户界面类, 如: 窗口、对话框、报表类等通讯协议类, 如: TCP/IP的类直接与外部
12、设备交互的类直接与外部系统交互的类,边界类的UML表示方法:,边界类,通过用例图可以确定需要的边界类, 每个Actor/User case对至少需要一个边界类.边界类一般可以没有属性,只有操作.,但并不是每个Actor/Use case都需要生成惟一边界类, 多个actor启动同一use case可以使用同一边界类.,实体类,实体类保存要放进持久存储体(数据库/文件等)的信息.,实体类通过事件流和交互图发现, 采用目标领域术语命名.通常实体类对应数据库中的表, 其属性对应表的字段, 但实体类与数据库中的表不一定是一一对应关系.,控制类,控制类是负责管理或控制其他类工作的类.,每个用例通常有一个
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 顺序 和协 作图 ppt 课件
链接地址:https://www.31ppt.com/p-1930228.html