时序图和协作图
系统分析设计实验05交互图(时序图协作图)_May5
交互图建模
内 容
基本概念 时序图 协作图 时序图和协作图共有的元素 对象规范与应用 消息规范与应用 消息编号 协作图特有的要素——链 时序图所特有的元素——控制焦点 时序图与协作图之间的转换
引
言
交互图可以用于对一个用例的事件流程进行 建模,也可以单独使用,用于可视化、详述、构造 和文档化一个特定对象群体的动态方面。交互图显 示一个交互,由一组对象和它们之间的关系构成, 其中包括:需要什么对象、对象相互发送什么消息、 什么角色启动消息以及消息按什么顺序发送。
一个例子
1 基本概念
1.1 交互图
分类
交互图分为两种:时序图和协作图
时序图强调消息发送的时间顺序 协作图则强调接收和发送消息的对象的组织结构
时序图和协作图语义等价
时序图和协作图在语义上是等价的,共享相同的基本 模型 两个图都可以表示另一个图所不能表示的某些东西 时序图和协作图可以实现两者之间的等价转换,而不 丢失任何信息
撤销方法
选择脚本和消息中的任意一项; 选择Edit > Detach Script。
2 时序图
2.4 时序图的删除
方法步骤
右键单击浏览器中的顺序框图名; 在快捷菜单中选择“Delete”。
2 时序图
2.5 时序图工具箱
12种常见工具按钮 可以定制
时序图注意事项
2 时序图
2.1 时序图中的要素
时序图包含的内容 1)对象 2)对象生命线 3)消息 4)控制焦点 对象、对象生命线和控制焦点 表示方法
对象向下方垂直伸展的虚线称为该对象 的生命线 ,表示该对象存在的时间长度 大“X”标记表明生命的结束 在生命线上的窄矩形条称为控制焦点, 控制焦点表示该对象正在执行某个操作。 窄矩形的长度表示操作的持续时间。
图书馆管理系统动态视图3
它可被理解为一个组合,它的控制流由其他活动状态或动 作状态组成
– 转移 – 分支(Ex6: Activity_Diagram_Transition)
6.4 活动图(Activity Diagram)
Activity Diagram包括:
– 分叉和汇合(Ex6: Activity_Diagram_Branch) – 泳道
Sequence Diagram是强调消息时间顺序的交 互图 Sequence Diagram它描述类系统中类和类之 间的交互,它将这些交互建模成消息交换,也 就是说,时序图描述了类以及类相互交换以完 成期望行为的消息
6.1 时序图(Sequence Diagram)
Sequence Diagram包括如下元素:
6.1 时序图(Sequence Diagram)
时序图建模技术 使用时序图建模时,可遵循如下策略:
– 从引发某个交互的信息开始,在生命线之间按从上向下的顺 序画出随后的消息
– 设置对象的激活期,这可以可视化实际计算发生的时间点、 可视化消息的嵌套
– 如动作 – 对建模结果进行精化和细化
6.3 状态图(Statechart Diagram)
手机的状态图 Ex6:CellPhone
6.3 状态图(Statechart Diagram)
Java 源代码
– 10个数的和 – Ex6:Statechart_Diagram_Sum
6.4 活动图(Activity Diagram)
– 消息(Message):消息是定义交互和协作中交换信息的类, 用于对实体间的通信内容建模。消息用于在实体间传递信息, 允许实体请求其他的服务,类角色通过发送和接收消息时行 通 信
时序图、活动图、状态图、协作图的区别
时序图、活动图、状态图、协作图的区别时序图时序图用于描述对象之间的传递消息的时间顺序, 即用例中的行为顺序.当执行一个用例时, 时序图中的每条消息对应了一个类操作或者引起转换的触发事件.在 UML 中, 时序图表示为一个二维的关系图, 其中, 纵轴是时间轴, 时间延竖线向下延伸. 横轴代表在协作中各个独立的对象. 当对象存在时, 生命线用一条虚线表示, 消息用从一个对象的生命线到另一个对象的生命线的箭头表示. 箭头以时间的顺序在图中上下排列.ATM 用户成功登陆的时序图时序图中的基本概念对象: 时序图中对象使用矩形表示, 并且对象名称下有下划线. 将对象置于时序图的顶部说明在交互开始时对象就已经存在了. 如果对象的位置不在顶部, 表示对象是在交互的过程中被创建的.生命线: 生命线是一条垂直的虚线. 表示时序图中的对象在一段生命周期内存在. 每个对象底部中心的位置都带有生命线.消息: 两个对象之间的单路通信. 从发送方指向接收方. 在时序图中很少使用返回消息.激活: 时序图可以描述对象的激活和钝化. 激活表示该对象被占用以完成某个任务. 钝化指对象处于空闲状态, 等待消息. 在 UML 中, 对象激活时将对象的生命线拓宽为矩形来表示的. 矩形称为计划条或控制期. 对象就是在激活条的顶部被激活的. 对象在完成自己的工作后被钝化.对象的创建和销毁: 在时序图中, 对象的默认位置是在图的顶部. 这说明对象在交互开始之前就已经存在了. 如果对象是在交互过程中创建的, 那么就应该将对象放到中间部分. 如果要撤销一个对象, 在其生命线终止点处放置 “ X” 符号.练习:孙中山的……活动图在 UML 中, 活动图本质上就是流程图. 它用于描述系统的活动, 判定点和分支等.活动图中的基本概念动作状态: 原子的, 不可中断的动作, 并在此动作完成之后向另一个动作转变. 在 UML 中动作状态用圆角矩形 表示, 动作状态所表示的动作写在圆角矩形内部.分支与合并: 分支在软件系统中很常见. 一般用于表示对象类所具有的条件行为. 用一个布尔型表达式的真假来判定动作的流向. 条件行为用分支和合并表达.在活动图中, 分支用空心小菱形 表示. 分支包括一个入转换和两个带条件的出转换, 出转换的条件应该是互斥的, 须保证只有一条出转换能够被触发. 合并包含两个带条件的入转换和一个出转换.状态图状态图: 通过建立对象的生存周期模型来描述对象随时间变化的动态行为.状态图中的基本概念状态: 用圆角矩形表示. 状态名称表示状态的名字, 通常用字符串表示. 一个状态的名称在状态图所在的上下文中应该是唯一的.转换: 用带箭头的直线表示. 一端连着源状态, 一端连着目标状态.初始状态: 每个状态图都有一个初始状态. 此状态代表状态图的起始位置. 初始状态只能作为转换的源, 不能作为转换的目标, 并且在状态图中只能有一个. 初始状态用一个实心圆表示.终止状态: 模型元素的最后状态, 是一个状态图的终止点. 终止状态在一个状态图中可以有多个.协作图协作图(也叫合作图)是一种交互图.时序图主要侧重于对象间消息传递在时间上的先后关系, 而协作图表达对象间的交互过程及对象间的关联关系。
(五)UML之协作图
(五)UML之协作图
⼀、什么是协作图?
顾名思义协作图就是合作图,有合作就涉及到多个对象。
协作图(Collaboration Diagram /Communication Diagram,也叫合作图)是⼀种交互图(interaction diagram),显⽰某组对象如何为了由⼀个⽤例描述的⼀个系统事件⽽与另⼀组对象进⾏协作的,使⽤协作图可以显⽰对象⾓⾊之间的组织关系。
⼆、对⽐
1、协作图和时序图。
两者表的消息时⼀样的,只是强调的重点不同。
协作图表达的是在实现某个⽤例期间,对象之间的合作关系,⽽时序图表达的是对象之间产⽣合作发⽣消息的时间顺序。
两者可以相互转化。
(rational rose 快捷键F5。
)
三、协作图的构成
时序图跟协作图可以相互转化,不难理解,协作图的构成有⾓⾊,对象,连接,消息。
具体含义同时序图。
协作图表现的是对象在空间上的联系,所以不存在时序图中的⽣命线和激活器。
图⼆是图⼀转换的时序图。
顺序图和协作图
对象执行某个动作的时期 空心矩形条
激活期的长短意味着对象执行某个动作的时间有多长,可
以通过约束{10ms}来限制执行时间的长短。
顺序图中的消息
面向对象方法中,消息是对象间交互信息的主要方式。
结构化程序设计中,模块间传递信息的方式主要是过 程(或函数)调用。
(3 )图书管理员做出选择后,显示相应界面,让图 书管理员输入信息,并自动根据书号规则生成书号-------此句中可以发现最为关键的一个边界类------“新 书信息录入”窗口以及辅助的“提交”按钮。 而且,还可以发现新增书籍信息按钮是组成主窗口的 一部分。书籍类别列表框、提交按钮则是组成新书 信息录入窗口的一部分。根据以上信息,可以先将参 与者和边界对象绘制出来,其结果如图所示。
[前置消息列表][警戒条件][消息顺序表达式][返回值:=]消息名称([参数列表])
前置消息列表(predecessor)
语法:消息序列号,消息序列号, ... / 前置消息列表是一个用来同步线程或路径(path)的表达式 意思是在发送当前消息之前指定序列号的消息被处理(必须
连续执行) 消息序列号之间用逗号隔开,用斜杠结束 例如 1.1a, 1.1b/1.2: continue() ,在发送消息1.2之前必 须已经同时发送并发消息给线程a和b
Rose中的消息
建立顺序图的步骤
确定交互过程的上下文 识别参与交互过程的对象 为每个对象设置生命线 从引发这个交互过程的初始消息开始, 在生命线之间 自顶向下依次画出随后的各个消息. 5. 如果需要嵌套或(和)表示消息发生的时间点, 使用控 制焦点. 6. 如果需要说明时间约束, 则在消息旁边加上约束说明. 7. 如果需要, 可以为每个消息设置前置条件和后置条件. 1. 2. 3. 4.
时序图-协作图-详解
动态图概念 : 从静态图中抽取瞬间值的变化描述系统随时间变化的行为, 动态图包括交互图活动图状态图, 这篇博客研究交互图包括时序图和协作图;-- 时序图 : 显示对象之间的关系, 强调对象之间消息的时间顺序, 显示对象之间的交互;-- 协作图 : 描述对象之间的交互关系;一.时序图 (Sequence Diagram)1.时序图的概念时序图定义 : 描述了对象之间传递消息的时间顺序, 用来表示用例中的行为顺序, 是强调消息时间顺序的交互图;时序图描述的事物: 时序图描述系统中类和类之间的交互, 将这些交互建模成消息交换, 时序图描述了类以及类之间的交换以完成的期望行为的消息, 时序图中每条消息都代表了类的一个操作或者引起状态机改变的触发事件;时序图表示 : 参与交互的对象在时序图顶端水平排列, 每个对象的底端绘制了一条垂直虚线, 对象A像对象B发送消息, 用一条带箭头的实线表示, 该实线起始于对象A底部的虚线, 终止于对象B底部的虚线; 实线箭头水平放置, 越靠近顶端越早被发送.时序图轨迹 : 时序图提供了随时间推移的, 清晰的可视化的轨迹;2. 时序图组成时序图组成 : 时序图包括四个元素对象(Object), 生命线(Lifeline), 激活(Activation), 消息(Message);(1) 对象(Object)对象: 时序图中的对象在交互中扮演的角色就是对象;对象的符号 : 时序图中的对象与对象图中的表示方法一样, 使用矩形将对象名称包含起来, 并且对象名称下有下划线;对象创建时机 : 对象可以在交互开始的时候创建, 也可以在交互过程中进行创建;-- 处于顶部 : 如果对象的位置在时序图顶部, 说明在交互开始的时候对象就已经存在了;-- 不在顶部: 如果对象的位置不在顶部, 那么对象在交互过程中创建的;(2)生命线(Lifeline)(3)生命线 : 生命线是一条垂直的虚线, 这条虚线表示对象的存在, 在时序图中, 每个对象的底部都有生命线;生命线作用 : 生命线是一个时间线, 从时序图顶部一直到底部都存在, 其长度取决于交互的时间;对象的生命线 : 对象与生命线结合在一起就是对象的生命线, 这个概念包含对象图标以及对象下面的生命线图标如上图;(3) 激活(Activation)激活(Activation): 代表时序图中对象执行一项操作的时期, 激活期可以理解为语义中 {} 中的内容, 表示该对象被占用以完成某个任务;去激活(Deactivation) : 指对象处于空闲状态, 在等待消息激活这个对象;激活的表示 : 当对象处于激活时期, 生命线可以拓宽为矩形, 这个矩形条成为激活条;激活去激活的时机 :-- 激活 : 对象激活是在激活条的顶部激活;-- 去激活 : 激活条的底部去激活, 通常发生在一个消息离开对象生命线;(4) 消息消息概念 : 定义交互和协作中交换信息的类, 对对象之间的通信内容建模;消息动作 :--动作种类: 消息允许在实体间传递信息 (传递参数), 允许实体请求其它服务, 对象之间通过发送和接收消息进行通信;--产生结果: 消息可以触发操作, 唤起信号, 或使目标对象创建或销毁;消息的异步和同步通信 :-- 异步通信 : 消息是信号的时候, 发送信号之后, 等待对方触发相应方法, 这是明确的命名的对象间的异步通信;-- 同步通信 : 直接调用对象的方法, 执行方法返回结果, 这种具有返回控制机制的操作是同步通信;时序图和协作图中消息的区别 : 时序图中的消息强调顺序, 协作图中的消息强调交换消息的对象间的关系;消息类型 :-- : 两个对象间绘制消息;-- : 两个对象之间的过程调用;-- : 两个对象之间的异步消息;-- : 过程调用中返回的消息;-- : 绘制反身消息;3. 时序图示例示例简介 :-- 使用场景: 汽车租赁公司;-- 使用的对象 : Customer (客户), Worker (工作人员), Order (请求), Record (记录), Car (汽车);-- 工作流程 : ①客户向工人提出租车要求, ②工人检查请求, ③客户付款, ④工人填写记录, ⑤工人取车;时序图 :4. 对象的创建和撤销对象位置:-- 顶部 : 时序图中对象的默认位置是在时序图顶部, 这表明对象在交互开始之间就已经存在;-- 中间 : 如果对象在时序图中间部分, 说明对象时在交互过程中创建的;交互过程中创建对象的方法 :--消息指向对象 : 消息是构造方法, 箭头指向对象所代表的的矩形;-- 消息指向激活条 : 消息是构造方法, 箭头指向对象下面的激活条;撤销对象 : 如果想要在时序图中撤销一个对象, 因为如果同时有几个对象, 如果不进行特殊操作其生命周期将会一样长; -- 效果图 : 下图中将 Customer 和 Order 对象撤消了, 因为它们基本没有参与后期的交互;5. 时序图建模技术时序图使用时机 : 对动态行为建模, 强调时间展开信息的次序的时候, 使用时序图;时序图管理策略 :-- 单一控制流 : 一个单独的时序图只能显示一个控制流;-- 多个时序图 : 完整的控制流很复杂, 可以绘制多个时序图, 一个主干时序图, 多个分支时序图, 使用包对这些时序图进行管理;时序图建模策略 :-- 设置交互语境 : 交互所在的环境, 包括哪些对象, 属于什么系统, 子系统, 相关的操作类用例等;-- 对象排列顺序 : 根据对象重要性, 从左到右排列在时序图中;-- 对象生命线 : 对象通常存在于交互的整个过程, 也可以在交互过程中被创建和撤销;-- 消息排列 : 引发交互信息之后, 消息按照时间顺序从上向下画出, 先发出的消息在后发出的消息上面;-- 激活期设置 : 可以将实际操作发生的时间点消息明确的显示出来;-- 时间空间约束: 每个消息都可以附加合适的时间和空间约束;-- 前置后置条件: 每条消息可以附加前置或后置条件;6. Rational Rose 时序图操作(1) 创建时序图新建时序图 : 在视图浏览器中右键点击Logical View (逻辑视图), 选择New(新建) -> Sequence Diagram(时序图);(2) 添加对象添加对象 : 时序图中有两种对象, 一种是参与者Actor, 一种是普通的对象;-- 参与者对象 : 在类图中创建一个对象, 将其 Stereotype 修改为 Actor, 就变成了参与者, 然后在视图浏览器中将这个元素拖到时序图中即可;-- 普通对象 : 直接在时序图中点击按钮, 在界面中创建对象; -- 两种对象效果 :设置对象属性 : 双击对象, 在弹出的 General 对话框中修改对象属性;-- Name: 对象名称, 不输入也可以;-- Document : 描述对象的文档;设置对象持续性 :-- 持续 (Persistent) : 对象保存在数据库或其它形式的永久存储体中;-- 静态 (Static) : 对象保存在内存中知道程序终止;-- 临时 (Transient) : 短时间内保存在内存中;(3) 添加消息消息作用 : 消息用两个对象生命线之间的箭头表示, 一个对象可以通过消息请求另一个对象执行某个操作;增加消息 :-- 发送消息 : 将从发送消息对象的生命线拖到接收消息对象的生命线上;-- 显示取消编号和激活条 : 菜单栏 Tools -> Options -> Diagram 选项卡, Sequence numbering 是消消息编号 , Focus of control 显示激活条;二. 协作图 (Collaboration Diagram)1. 协作图概念协作图: 协作图是一种类图, 包含类元角色和关联角色,不仅仅是类元和关联;-- 强调 : 强调参与交互的各个对象的结构信息和组织;协作图建模对象 : 对有交互的对象和这些对象之间的关系建模, 不参与交互的对象及它们的关系忽略;协作图内容: 协作图中表现了类操作中用到的参数, 布局变量, 操作中的永久链;对象图扩展 : 协作图可以看做对象图的扩展, 该图展示了对象之间的关联, 显示出了对象间的消息传递;2. 协作图内容(1) 对象(Object)对象 : 代表协作图交互中的主体, 和时序图中对象的概念类似;协作图和时序图中对象区别 : 协作图中对象无法创建和撤销, 因此对象在协作图的位置没有限制;(2) 链(Link)链的表示 : 链的符号和对象图中链所用的符号是一样的, 用来连接两个类角色的实线;-- : 创建对象之间的通信路径;-- : 显示对象可以调用自己的属性;-- : 在两个对象之间或一个对象本身增加消息;-- : 在两个对象之间或一个对象本身从反方向增加消息;-- : 显示两个对象之间的信息流;-- : 在反方向显示两个对象之间的信息流;路径构造性 : 对象之间的连接可以由链末尾附加的路径构造型表示;-- 添加方式 : 双击链, 选择 visibility属性即可;(3) 消息 (Message)消息概念 : 对象间通过链接发送的就是消息;--消息传递方向 : 对象之间的箭头表明对象间交换的消息流, 一个对象发出消息, 链指向的对象接收消息, 链用于实现消息传输;-- 消息标识 : 消息流标有消息的序列号和对象间发送的消息名称;-- 消息结果 : 每条消息否会触发接收对象的一系列操作;消息序号 : 协作图与时序图中的消息类型是一样的, 为了表明消息顺序, 需要为消息添加序号;3. 协作图示例示例简介 : 汽车租赁流程;-- 涉及到的对象 : Customer (客户), Order (订单), Worker (工人), Record (记录), Car (汽车);-- 流程简介 : 客户写好订单, 工人核对订单, 核对后订单存在, 允许客户取车, 工人填写记录, 并将车取出;4. 协作图建模策略协作图使用场景 : 对系统动态行为建模, 按组织对控制流建模使用协作图;协作图管理策略 :-- 单个协作图: 单个协作图只能显示一个控制流;--多个协作图 : 描述复杂系统的时候, 需要许多协作图共同描述, 一些图是主干协作图, 还有许多分支路径的控制流的协作图, 使用包管理这些协作图;协作图的建模策略 :-- 设置语境 : 设置协作图所在的环境 , 如系统, 子系统, 类, 操作, 用例或用例脚本;-- 对象顶点 : 识别对象在协作图中扮演的角色, 协作图中, 对象是图的顶点;-- 变化修改 : 每个对象最初都会设置初始值, 如果期间对象发生了变化, 修改的方式是 : 协作图中放置一个复制对象, 更新复制对象, 同过后造型 become copy 连接二者;-- 确定链接顺序 : 先确定关联链接,哪些对象相互链接; 在确定消息链接, 路径构造型等表示对象间如何连接;-- 消息顺序 : 从引起交互的消息开始编号, 将编号信息和描述信息附到链接上, 描述了对象之间的传递次序;-- 时间空间约束 : 可以为每个消息附加时间和空间上的约束;-- 前置后置条件 : 可以为每个消息附加前置和后置条件;5. Rational Rose 绘制协作图(1) 创建协作图创建流程 : 视图浏览器 -> Logical View (逻辑视图) -> New (新建) -> Collaboration Diagram (协作图);(2) 添加对象协作图中添加对象 : 与时序图基本类似;-- 添加参与者对象 : 在类图中创建好类, 然后将类型设置为Actor, 然后在视图浏览器中将Actor拖到协作图中;-- 添加普通对象 : 直接点击工具栏中的图标设置即可;(3) 添加消息添加对象间消息 : 在两个对象之间添加消息;-- 建立通信路径 : 使用连接两个对象, 建立两个对象间的通信路径;-- 添加消息 : 使用或在通信路径上添加消息;-- 设置消息名称 : 双击消息箭头, 可以在弹出的对话框中修改消息名称;添加反身消息 : 选择点击对象, 就会出现指向对象本身的路径, 选择点击这个指向本身的路径, 可以为该对象添加消息;(4) 添加数据流数据流概念 : 数据流是一个对象向另一个对象发送消息返回的消息;-- 使用场景 : 没必要在每个消息上都加上数据流, 只要在中药消息上附加数据流即可;数据流添加方法 : 选择或按钮, 单击要返回的数据消息, 数据流箭头就会被添加到这个消息上;.6. 时序图与协作图转换各自侧重点 : 时序图和协作图是等价的, 可以任意转换, 而不丢失信息;--时序图: 描述交互过程中的时间顺序, 没有明确表达对象间关系;--协作图: 描述了对象间的关系, 但是时间顺序必须从消息的序号中获取;转换示例 :-- 场景介绍 : 学生毕业管理;-- 对象介绍 : 教务人员, 学位评价, 成绩管理, 奖惩管理, 信息打印;-- 控制流介绍 : ①教务人员输入学号进入学位评价模块, ②学位评价模块会向成绩管理模块查询成绩, ③向奖惩管理模块查询奖惩记录, ④学位评价模块会将结果打印到信息打印模块, ⑤信息打印模块将结果返回给教务人员;时序图:协作图 :7. 时序图和协作图对比时序图和协作图共同点 : 都是有消息和类角色组成;-- 规定责任 : 时序图和协作图都规定了消息发送对象和消息接收对象的责任, 每个接收对象都有消息对应的接口, 这个接口方法由消息发送对象触发;-- 支持消息 : 时序图和协作图都支持消息;-- 衡量工具 : 时序图和协作图可以作为衡量系统耦合性的工具, 耦合性就是系统中模型之间的依赖性, 两个模型之间的依赖关系通过查看两个模型之间的消息数量和类型就可以看出, 消息交互少的耦合性高;时序图和协作不同点 :-- 对象创建撤销侧重点 : 时序图侧重描述对象的创建和撤销, 新创建的对象放在对象生命线上对应的时间点, 撤销的对象在结束的地方放一个 X 表示该对象不能再继续使用;协作图中创建撤销的概念不存在, 对象时始终存在的, 只能通过消息描述或约束来说明对象的创建和撤销;-- 链接侧重点 : 时序图中的链没有表示出来, 可以随意绘制消息, 有些逻辑交互可能不会发生; 协作图的消息是映射在链上的, 消息和链平行放置, 如果想要通过消息查看对象之间的关联使用协作图最好;-- 激活和去激活 : 时序图表现有激活和去激活, 协作图上没有时间概念的描述, 无法清晰地表示对象的激活和去激活;三. 实例 - 图书管理系统1. 管理员为图书添加类别控制流说明 :-- 涉及到的对象 : Admin (管理员), BookInfoWindow (图书信息窗口), Tittle (图书类别), Item (图书条目);-- 流程 : 管理员查询图书信息窗口, 查看有没有相应的图书类别, 如果有插入该图书条目;时序图 :\协作图 :2. 管理员删除图书控制流说明 :-- 涉及到的对象 : Admin (管理员), BookInfoWindow (图书信息窗口), Tittle (图书类别), Item(图书条目);-- 控制流程 : 管理员登陆图书信息窗口删除图书, 查表图书类别是否存在, 查找图书是否存在, 如果都返回true, 删除图书条目;时序图 :协作图 :3. 管理员借书时序图控制流说明 :-- 参与的对象 : Admin (管理员), BookInfoWindow (图书信息窗口), Tittle (图书类别), Borrower (借阅者), Loan (借书记录), item (图书条目);-- 流程 : 管理员登陆图书信息窗口, 查询图书类别是否存在, 查询图书条目是否存在, 查询借阅者是否存在, 创建借书记录;时序图 :协作图 :21。
11-协作图和时序图
2. 协作图样式和元素
消息
对象
2. 协作图样式和元素 协作图中无法表示对象的创建和撤销,所以对象在图 中的位置没有限制。 ① 主动对象 主动对象是有一方法可以自动启动执行,框加粗。
框加粗
2. 协作图样式和元素 ① 主动对象 主动对象是有一方法可以自动启动执行,框加粗。 ② 多对象 表示同属于一个类的多个对象集合。
零售业务协作图
② 识别参与交互过程的对象; 零售客户、销售员、客户、订单、产品
零售业务协作图
③ 确定对象之间的链,以及链上的消息;
零售客户和销售员 销售员和客户 销售员和订单 销售员和产品 订单和产品 订单和订单
打电话、建立客户、添加个人消息、订购产品、统计金额、产 生订单、产生产品、添加产品、完成订单等。
5b. 该借阅者所借图书数量超过了上限, 则提示, 本次拒借。
实例:图书馆借书处理的顺序图
① 识别交互过程。 读者在借书时,先由管理员把借书证上的读者编号扫
描给系统,系统检查这个读者的借书证合法信息,如果
不合法,则系统给出提示,如果正确系统返回读者的身份 信息,以及读者的借阅信息。 如果读者借书数量没有超过借书的上限,则把要借书 的图书编号输入系统,系统登记借书信息,并返回借书
● 用例:借书 ●参与者:管理员,借阅者 ●基本事件流: 1. 借阅者带着借书证和书来到柜台。 2. 管员输入借阅者的借书证编码。 3. 系统检查借阅者的合法性。 4. 系统显示借阅者的信息。 5. 系统检查借阅者的借阅信息。 6. 管员输入所借图书的条码。 7. 系统显示所借图书的信息,并登记图书。 管员重复6~7步,直到结束。 8. 系统登记借阅者的本次借阅信息,并显示。 ●扩展事件流: 3a. 借阅者身份非法,则提示,本次拒借。 5a. 该借阅者所借图书中有超期的, 则提示, 本次拒借。
时序图和协作图
时序图的最大特点是:它以二维的平面上 的一维来表示时间进度,在时间维上定义 各个对象所执行的操作以及它们之间所传 送的消息。从而能够在逻辑上清晰的刻画 这些操作和消息的时序关系乃至因果关系。
简单时序图
7.2 时序图元素及表示法
在UML中,时序图用一个二维图描述系统 中各个对象之间的交互关系。其中,纵轴 是时间轴,时间沿竖线向下延伸,由上至 下表示时间的先后顺序。横轴代表了参与 相互作用的对象。 当对象存在时,生命线由一条虚线表示; 当对象的过程处于激活状态时,生命线上 用一个激活条表示。消息用从一个对象到 另一个对象生命线的箭头表示,箭头以时 间顺序从上到下排列。
时序图(Sequence Diagram)也被称为 顺序图,是一种详细地表示对象之间行为 交互关系的图,主要用来描述对象之间信 息交换时的时间顺序。因此可以清晰而直 观的表示对象之间的行为交互关系以及操 作和消息的时序关系。
时序图的主要用途把用例表达的要求转化 为更进一步的精细表达。它还能用来记录 一个存在系统的对象现在如何交互。 用例常常可被细化为一个或多个时序图。
7.2 时序图元素及表示法
时序图有4种基本图形元素,包括:
对象(object) 生命线(lifeline) 激活(activation) 消息(message)
1. 对象
时序图中的对象在概念上和它在对象图中 的定义是一致的,其图形表示也相同。 每个对象显示在单独的列里,用一个矩形 框代表一个对象,框内填写对象名和它所 属的类名,中间用一个冒号隔开。
2.链接
链接是两个对象间的连接。 它的图形符号也是用一条连接在两个对象间 的实线表示。在连接线上可以标明对象名。
3.消息
图书管理系统时序图与协作图(UML)
学号 **********
统一建模语言UML B
实验报告
实验2 顺序图和协作图
学生姓名黄源
专业、班级14软件(2)班
指导教师高天迎
成绩
计算机与信息工程学院
2016年 10 月 18 日
一、实验目的
在熟悉顺序图概念与应用的基础上,掌握顺序、协作图的建立。
1.理解顺序、协作图的基本概念。
2.掌握顺序、协作图的建立。
二、实验内容
建立图书管理系统的顺序、协作图。
三、实验思想
1.利用需求分析和用例模型,分析图书馆管理人员的行为活动,完成系统行为交互建模。
2.使用Rose完成图书馆管理系统中的时序图。
四、实验结果
五、实验心得
通过Rose2003绘制出图书管理系统的时序图和协作图,使我进一步了解并更加熟练绘制。
本次实验根据书本,网络及同学帮助顺利完成。
今后会更加熟练地掌握。
UML中的顺序图和协作图的区别与实际应用案例解析
UML中的顺序图和协作图的区别与实际应用案例解析UML(Unified Modeling Language)是一种用于软件系统建模的标准语言,被广泛应用于软件开发过程中。
在UML中,顺序图和协作图是两种常用的建模工具,用于描述系统中对象之间的交互关系。
本文将探讨顺序图和协作图的区别,并通过实际应用案例解析它们的使用。
顺序图是一种时序图,用于展示对象之间的交互顺序。
它通过显示对象之间的消息传递和时间顺序来描述系统的动态行为。
顺序图以垂直方向表示时间轴,从上到下按照时间顺序排列对象和消息。
每个对象用一个矩形表示,对象之间的消息通过箭头表示。
顺序图强调对象之间的交互和消息的顺序,能够清晰地展示系统中的动态行为。
协作图是一种静态图,用于描述对象之间的合作关系。
它通过展示对象之间的连接和消息传递来描述系统的结构和交互。
协作图以水平方向表示对象之间的连接关系,每个对象用一个矩形表示,对象之间的连接通过实线和虚线表示。
协作图强调对象之间的连接和合作关系,能够清晰地展示系统中的结构和交互。
为了更好地理解顺序图和协作图的区别,我们可以通过一个实际应用案例来解析它们的使用。
假设我们正在开发一个在线购物系统,其中包含用户、购物车和商品三个对象。
首先,我们可以使用顺序图来描述用户购买商品的过程。
顺序图可以展示用户选择商品、将商品添加到购物车、结算支付等交互过程。
通过顺序图,我们可以清晰地了解用户与系统之间的交互顺序和消息传递。
接下来,我们可以使用协作图来描述购物车和商品之间的合作关系。
协作图可以展示购物车和商品之间的连接关系,以及它们之间的消息传递。
通过协作图,我们可以清晰地了解购物车和商品之间的合作关系,从而更好地设计系统的结构和交互。
通过以上案例,我们可以看到顺序图和协作图在描述系统中的对象交互和合作方面有着不同的应用场景。
顺序图适用于描述对象之间的交互顺序和消息传递,而协作图适用于描述对象之间的连接关系和合作关系。
UMLPPT06时序协作图
时序图的用途
时序图强调按时间展开的消息传送,便于用户 从用例图(需求)向动态建模转化(设计)。
上图转化为代码可能的情形为:
Public class A { private B myB=new B(); public viod doOne() { myB.doTwo(); myB.doThree(); } }
画出饮料已售完的时序图
:Customer :Panel :Recorder Distributor
1: getmoney&Choice 2: getinput 3: chekWarehouse 4: soldout
5: showHintMessage 6: returnMoney
协作图是动态图的另一种表现形式,它强调参加交互的各对象结构的 信息。协作图是一种类图,它包含类元角色和关联角色,而不仅仅是 类元和关联。协作图强调参加交互的各对象的组织。 协作图只对相互间有交互作用的对象和这些对象间的关系建模,而忽 略了其他对象和关联。 1. 对象(Object)。对象代表协作图交互中所扮演的角色,和时序 图中对象的概念类似。 2. 链(Link)。协作图中链的符号和对象图中链所用的符号是一样 的,即一条连接两个类角色的实线。 3. 消息(Message)。消息代表协作图中对象间通过链接发送的消 息。
适用的场合
时序图常用于场景显示; 协作图更适合显示过程设计的细节。
UML1.4和UML2.0的区别 时序图继续保持; 协作图变成通信图。
添加图书
删除图书
: DeleteBookInfoForm Admin : 系统管理 员 1: remove item 2: find(String) 3: return true 4: find_on_title(title) 5: return true 6: destroy() 7: destroy() : Title : Item
图书管理系统-OOD-协作图与时序图
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)
• 时序图可供不同的用户使用,以帮助他们进一步 了解系统: • 用户:进一步了解业务细节 • 分析人员:进一步明确事件的处理流程 • 开发人员:进一步了解需要开发的对象和对这些 对象的操作 • 测试人员:通过过程的细节开发测试案例
UML建模工具中的五大视图
UML建模工具中的五大视图本节和大家一起学习一下UML建模工具方面的知识,本节主要包括面向对象建模概念和UML中的五大视图等内容,相信通过本节的介绍你对UML建模工具有一定的认识。
下面让我们一起来学习UML建模工具吧。
UML建模工具1.面向对象建模建模把复杂得问题分解为易于理解的小元素,以达到问题的求解模型帮助你具体化和指出系统的不同方面,模型也显示不同的部分如何彼此相关并有助于它们的工作形象化。
UML定义了软件工程领域中的不同模型。
下面给出模型和它们的描述:.类模型描述其静态结构,状态模型表示对象的动态行为,用例模型解释用户的要求,交互模型描述消息流,实现模型包含工作单元,部署模型包含属于进程分配的细节。
提供一种简单的、准备使用的、表现为可视的建模语言,是独立于过程的,是独立于语言的2.UML建模工具的五大视图:UML定义了软件工程领域中的不同模型。
下面给出模型和它们的描述:.类模型描述其静态结构,状态模型表示对象的动态行为,用例模型描述用户的要求,交互模型描述消息流,实现模型描述工作单元,部署模型属于进程分配的细节。
◆用户视图–表示系统的目的和目标◆结构视图–表示系统的静态或空闲的状态◆行为视图–表示系统的动态状态或状态的变动◆实现视图–表示系统的逻辑元素的分布◆环境视图–表示系统物理元素的分布3.用户视图系统的用户视图由用例图组成,用例图包含执行者、用例、及它们的关系,用例图表示了系统对外部实体提供的功能,用例图由执行者和用例组成(执行者对系统做什么的)执行者主要可分为四类:主要执行者–直接与系统交互的人,次要执行者–涉及到系统维护的人,外部硬件–运行应用的非计算机的系统部分,其他系统–为其工作需要与你系统交互的外部系统4.结构视图UML建模工具中结构视图代表系统的静态方面,包含类图(描述不同的类和它们的关联,描述系统中声明的类)和对象图(描述不同的对象和它们彼此间的链接)。
类:用来描述具有特征的现实世界的实体。
实验三+时序图和协作图
实验三时序图和协作图[实验目的]1.掌握时序图、协作图的绘制方法。
2.验证Rose的交互图自动生成功能。
[实验内容]1.用Rose绘制图书馆管理系统的时序图与协作图。
2.利用Rose的交互图自动生成功能,将已经设计好的时序图转换成协作图。
[实验要点及说明]一、时序图建模技术按时间顺序对控制流建模,要遵循如下策略。
①设置交互的语境。
②通过识别对象在交互中扮演的角色,设置交互的场景。
③为每个对象设置生命线。
④从引发某个消息的信息开始,在生命线之间画出从顶到底依次展开的消息,显示每个消息的特性(如参数)。
⑤如果需要可视化消息的嵌套或实际计算发生时的时间点,可以用激活修饰每个对象的生命期。
⑥如果需要说明时间或空间的约束,可以用时间标记修饰每个消息,并附上合适的时间和空间约束。
⑦如果需要更形式化的说明某控制流,可以为每个消息附上前置和后置条件。
实例1——图书馆管理系统的时序图1.使用Rational Rose绘制时序图的步骤。
①创建时序图。
在浏览器窗口中,在“Use Case View”的图标上单击鼠标右键,在弹出的菜单中选择New →Sequence Diagram。
此时,在“Use Case View”树形结构下多了一个名为“New Diagram”的图标,右键单击此图标,在弹出的菜单中选择Rename菜单项,可以更改新创建的时序图的名字。
双击时序图图标,出现时序图的编辑区和编辑工具栏。
②时序图工具栏按钮简介。
时序图工具栏中各个按钮的图标及其作用如图3-1所示。
③添加对象。
向时序图添加对象。
首先点击工具栏中的对象图标按钮,然后在编辑区要放置对象的位置单击鼠标左键。
图3-1 时序图工具栏各个按钮的图标及作用⏹设置对象属性。
可以双击相应的对象图标,弹出对象属性设置对话框。
也可以选中要改变属性的对象,单击右键,在弹出的菜单中选择“Open Specification...”,打开属性设置对话框。
⏹设置对象持续性。
UML与ROSE建模基础时序图协作图等
主要内容
1. 协作图的组成 2. 运用协作图 3. 实例图与一般图 4. 对象的创建与销毁 5. 其他概念
14
1.2.1 协作图的组成
协作图由下列图形元素构成:对象、关联线、导航箭线和 消息。 (1)对象:一般只给出名称,其命名规则与在对象图中相 同。可以使用匿名对象。 (2)关联线:表示在对象之间存在交互协作的关系。 (3)导航箭线:指出消息传递的方向和消息的类型。 (4)消息:表示对象之间的通讯。消息的含义与格式跟顺 序图中相同。 序号[保护条件] *[循环]返回表:=操作名(参数 表)
16
1.2.2 协作图[2] 协作图
1: Keystroke
: GUI
2: notify(keystroke) 7: feedback() 4: update(keystroke) : OperatingSystem
: Monitor
3: notify(keystroke) 6: display(keystroke)
源对象 Simple Message
目标对象
7
1.1.1 顺序图的组成 顺序图的组成[3]
消息内容: 消息内容
序号[保护条件 循环]返回表 操作名( 序号 保护条件]*[循环 返回表 操作名(参数表) 保护条件 循环 返回表:=操作名 参数表) 为消息在整个交互中的顺序号,可缺省。 序号 为消息在整个交互中的顺序号,可缺省。 保护条件 在方括号中,含有一个布尔表达式,只有当条件满足时 在方括号中,含有一个布尔表达式, 才能发送该消息。当缺省时,表示该消息是无条件发送的。 才能发送该消息。当缺省时,表示该消息是无条件发送的。 *[循环 循环] “*”表示该消息重复发送。循环说明发送的重复次数, 表示该消息重复发送。 循环 表示该消息重复发送 循环说明发送的重复次数, 缺省表示次数未规定。 缺省表示次数未规定。 操作名(参数表) 操作名或是一般消息名, 操作名(参数表) 操作名或是一般消息名,或是接受该消息对象 中的操作名。参数表是一个以逗号分隔的实在参数表,实在参数的 中的操作名。参数表是一个以逗号分隔的实在参数表, 次序、个数、类型必须与该操作的形式参数一致。 次序、个数、类型必须与该操作的形式参数一致。 返回表: 返回表是一个以逗号分隔的名字列表, 返回表:= 返回表是一个以逗号分隔的名字列表,这些名字代表 后面跟的操作所返回的值。 后面跟的操作所返回的值。
uml实验-时序图与协作图
实验四时序图与协作图[实验目的和要求]1、掌握时序图与协作图的概念及作用。
2、掌握UML中静态图形和动态图形的区别和联系。
3、掌握UML时序图与协作图的基本图形,了解它们各自的组成元素、特定作用和适用场合。
4、重点掌握时序图的画法以及其中元素所代表的意义。
[实验内容和步骤]1、UML中的时序图与协作图之间各有什么区别和联系?答:时序图:强调消息的时间顺序,强调交互的时间。
协作图:强调的是发送和接收消息的对象之间的组织结构联系:都是描述对象之间的交互。
2、在顺序图和协作图中,应如何表示“循环”,“判断”等结构?答:循环:一条连接两个角色的实现路径来表示。
判断:增加消息进行判断。
3、什么是消息?消息在交互中扮演什么角色?答:消息是对象之间某种形式的通信,在垂直生命线之间,用带有箭头的线段并附以消息表达式方式表示。
他可以激发某个操作、唤起信号或导致目标对象的创建和撤销。
4、交互图中有哪几种消息?它们之间具体有何分别?应如何表示?答:表示5、已知某一个用例实现的类图如下,画出一个能和该类图对应的时序图。
6、假设有一系统得协作图局部如图所示,print方法的功能是将传入的参数的值打印在屏幕上,fact方法是计算阶乘,如果test的初值为1,那么最终将打印出什么?(写出计算过程)1: print(test)答:消息执行三次:1、test=1+1=2;2、test=2+2!=4;3、test=4+4!=28;所以最后打印的是28.[分析与讨论]1、讨论并总结在建模过程中运用交互图的重要作用及意义答:作用:准确的描述各个对象之间的关系及各种消息。
意义:用于对系统中多个对象的相互作用的过程进行建模。
2、画出网上书店系统购书的时序图。
答:3、下图是购物网站的“编辑购物车”用例中的部分的类图基本事件流:用户在Shopping Cart页面上修改购物车中商品数量,然后单击Update按钮。
系统存储新的数量,然后计算并显示该商品的新价格。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1. 对象
❖ 时序图中的对象在概念上和它在对象图中 的定义是一致的,其图形表示也相同。
❖ 每个对象显示在单独的列里,用一个矩形 框代表一个对象,框内填写对象名和它所 属的类名,中间用一个冒号隔开。
Object1 : ClassA
2.生命线
❖ 生命线是对象标识符在垂直方向上拖出的一 条长虚线,表示时序图中的对象在一段时间 内的存在。
激活示例
激活的应用
❖ 当进行时序图建模时,所用到的消息主要 包括以下几种类型:
简单消息(Simple Message) 同步消息(Synchronous Message) 异步消息(Asynchronous Message) 反身消息(Message to Self) 返回消息(Return Message)
(1)简单消息(Simple Message)
❖ 简单消息是在同步和异步之间没有区别的 消息。
❖ 在不知道消息的类型的情况下就可以使用 简单消息。
❖ 在对系统进行时序图建模时,可以对所有 的消息都使用简单消息进行表示,然后再 根据情况确定消息的类型。
(2)同步消息(Synchronous Message)
如果对象在这个位置上,那么说明在发送 消息时,该对象就已经存在了; ❖ 如果对象是在执行的过程中创建的,那么 它的位置应该处在图的中间部分。
❖ 对象的创建有两种方法:
ObjectA 1: Create() ObjectB 2: ReturnMessage
ObjectA
ObjectB
1: Create()
: Administrator
:ManageWindow
1: UpdateBorrower()
:UpdateBorrowerDialog
2: CreateDialog()
:Borrower
3: FindBorrower() 5: UpdateBorrowerInfo()
4: FindBorrower()
2.链接
❖ 链接是两个对象间的连接。 ❖ 它的图形符号也是用一条连接在两个对象间
的实线表示。在连接线上可以标明对象名。
3.消息
❖ 消息代表协作图中对象间通过链接发送的消 息。
❖ 消息由一个对象发出,由消息所指的对象接 收。形成消息流。
❖ 消息流上标有消息的序号和对象间发送的消 息,消息的序号表明了消息发送的先后顺序。
7.4 时序图建模实例
例:图书管理系统时序图建模
1.添加借阅者
添加借阅者的过程为:系统管理员选择菜单项 “添加借阅者”,弹出AddBorrowerDialog对话框。 系统管理员可以在该对话框中输入借阅者的信息并 提交,随后系统对管理员所提交的借阅者信息进行 验证,查看输入的借阅证号是否已经存在于系统中, 若不存在,则为借阅者创建一个账户,并存储借阅 者信息。
:
:ManagerWindow
Administrator
1: AddBorrower()
:AddBorrowerDialog
2: CreateDialog()
:Borrower
3: AddBorrower()
4: FindBorrower() 5: NewBorrower()
6: Write()
2.修改借阅者
❖ 一个单独的时序图只能显示一个控制流。
❖ 使用时序图建模时,可以参考以下策略:
① 设置交互的语境,这些语境可以是系统、子系统、 类、用例和协作的一个脚本。
② 识别对象在交互语境中所扮演的角色,根据对象 的重要性及相互关系,将其从左至右放置在时序 图的顶部。
③ 设置每个对象的生命线。通常情况下,对象存在 于整个交互过程中,但它们也可以在交互过程中 创建和撤销。
❖ 当对象存在时,生命线由一条虚线表示; 当对象的过程处于激活状态时,生命线上 用一个激活条表示。消息用从一个对象到 另一个对象生命线的箭头表示,箭头以时 间顺序从上到下排列。
7.2 时序图元素及表示法
❖ 时序图有4种基本图形元素,包括:
对象(object) 生命线(lifeline) 激活(activation) 消息(message)
❖ 一条消息会触发接收对象中的一项操作。
对象
消息
2: Message
1: Message
:ObjectA
:Oபைடு நூலகம்jectB
3: Message
链接
协作图与时序图的互换(F5)
❖ 协作图和时序图都是表示对相间的交互作 用,只是它们的侧重点有所不同。
❖ 协作图和时序图在语义上是等价的,它们 可以从一种形式的图转换成另一种形式的 图,而不丢失任何消息。
到被调用对象的参数列表,并且最多包含一个返回给 调用对象的返回值。
❖ 当时序图中的消息比较多时,还可以通过对消息前置 序号表达式的方式指定消息的顺序。
❖ 消息内容标识的格式为:
[序号][监护条件]*[重复次数][返回值表:=]操作名(参数表)
6.对象的创建和撤销
❖ 对象的创建有几种情况: ❖ 时序图中的对象的默认位置是在图的顶部,
❖ 同步消息最常见的情况是调用,即消息发 送者(对象)在它的一个操作执行时调用 接收者(对象)的一个操作,此时消息名 称通常就是被调用的操作名称。
❖ 当消息被处理完后,可以送回一个简单消 息,或者是隐含的返回。
(3)异步消息(Asynchronous Message)
❖ 异步消息表示发送消息的对象不用等待回 应的返回消息,即可开始另一个活动。
❖ 异步消息就是发送方只负责将消息发送到 接收方,至于接收方如何响应,发送方则 不需要知道。对接收方来说,在接收到消 息后它既可以对消息进行处理,也可以什 么都不做。
(4)反身消息(Message to Self)
❖ 反身消息是一个对象将一个消息发送给它 自己的消息。
❖ 如果一条消息只能作为反身消息,那么说 明该操作只能由对象自身的行为触发。
❖ 时 多序附图加用数是条息“次定数的中可件操、无数正1*信的.”1以时作次条未整、息消号默才后序件定数1。息,.2认 能 返 、发。1除、无、的发回类送此22[了重,送的型。项、.1具、复但消系必默3…有2次在息列须认.2…消数协。值与时…表]息作监。该,…时示名图护可操表,。中条默作示称表嵌是件认的只。之示套必默。形发序消外消送不认参号息还息可时一一在多可用少,致次时次以十的表。。序发进包。示图送制含消中,许 ❖ 消息可以与类中的操作等效,即消息可以带有可传递
例:以图书管理系统中借阅图书为例: 时序图与协作图之间转换。
F5 或在Rational Rose中,在 Browse菜单下 选择:
Create Collaboration Diagram或
Create Sequence Diagram (1)根据时序图信息创建协作图 (2)根据协作图信息创建时序图
❖ 每个对象的底部中心的位置都带有生命线。 ❖ 生命线是一条时间线,从时序图的顶部一直
延伸到底部,所用的时间取决于交互的持续 时间。
3.激活
❖ 当一条消息被传递给对象的时候,它会触发该对 象的某个行为,激活了该对象。
❖ 在UML中,激活用一个在生命线上的细长矩形框 表示。
❖ 矩形本身被称为对象的激活期或控制期,对象就 是在激活期顶端被激活的。
8.1 概述
❖ 协作图(Collaboration Diagram)是UML 1.x版本 中的名称。在当时的认识中,认为它就是描述一个 协作的,所以称之为协作图。
❖ UML 2.0重新定义了协作的概念,并认为所谓协作 图与协作概念实际上没有什么必然联系,为了避免 误会,所以将它改名为通信图(Communication Diagram)。因此,在很多参考书中使用通信图而 不是协作图进行说明。
❖ 激活期说明对象正在执行某个动作。当动作完成 后,此时对象的一个激活期也宣告结束。
4.消息
❖ 消息是用来说明时序图中不同活动对象之间的通 信。
❖ 在时序图中,消息是由从一个对象的生命线指向 另一个对象的生命线的直线箭头来表示的,箭头 上面还可以表明要发送的消息名及序号。
❖ 在各个对象之间消息的次序由它们在垂直轴上的 时间顺序决定。
❖ 时序图强调的是交互的时间顺序;而协作图强 调的是交互的情况和参与交互的对象的整体组织。
❖ 从另一个角度来看,时序图按照时间顺序布局; 而协作图按照空间组织布局。
2: Message
1: Message
: Actor
5: Message
4: Message :ObjectB
:ObjectA 3: Message
7.1 概述
❖ 时序图(Sequence Diagram)也被称为 顺序图,是一种详细地表示对象之间行为 交互关系的图,主要用来描述对象之间信 息交换时的时间顺序。因此可以清晰而直 观的表示对象之间的行为交互关系以及操 作和消息的时序关系。
❖ 时序图的主要用途把用例表达的要求转化 为更进一步的精细表达。它还能用来记录 一个存在系统的对象现在如何交互。
❖ 这表明该操作可以被设置为private属性, 只有属于同一个类的对象才能够调用它。
(5)返回消息(Return Message)
❖ 返回消息是表示控制流从过程调用后,处 理结果返回信息。
❖ 返回消息一般可以缺省,隐含表示每一个 调用都有一个配对的调用返回。
5.消息中接收的表可以参该示参选“数消消项,表息数息,”是的在和以区表对对布分“示象序象尔的,消类间号表名”息角交达称区重色互式列分复中的形表的发时式,实送操间表分参的作顺示别表次名序。表,数号满示实。。足完参只一监成的有般护指个
: Librarian
:MainWindow
:BorrowDialog
1: BorrowBook()
2: CreateDialog()