时序图-协作图-详解

合集下载

系统分析设计实验05交互图(时序图协作图)_May5

系统分析设计实验05交互图(时序图协作图)_May5
交互图及其应用
交互图建模
内 容
基本概念 时序图 协作图 时序图和协作图共有的元素 对象规范与应用 消息规范与应用 消息编号 协作图特有的要素——链 时序图所特有的元素——控制焦点 时序图与协作图之间的转换


交互图可以用于对一个用例的事件流程进行 建模,也可以单独使用,用于可视化、详述、构造 和文档化一个特定对象群体的动态方面。交互图显 示一个交互,由一组对象和它们之间的关系构成, 其中包括:需要什么对象、对象相互发送什么消息、 什么角色启动消息以及消息按什么顺序发送。
一个例子
1 基本概念
1.1 交互图
分类
交互图分为两种:时序图和协作图
时序图强调消息发送的时间顺序 协作图则强调接收和发送消息的对象的组织结构
时序图和协作图语义等价
时序图和协作图在语义上是等价的,共享相同的基本 模型 两个图都可以表示另一个图所不能表示的某些东西 时序图和协作图可以实现两者之间的等价转换,而不 丢失任何信息
撤销方法
选择脚本和消息中的任意一项; 选择Edit > Detach Script。
2 时序图
2.4 时序图的删除
方法步骤
右键单击浏览器中的顺序框图名; 在快捷菜单中选择“Delete”。
2 时序图
2.5 时序图工具箱
12种常见工具按钮 可以定制
时序图注意事项
2 时序图
2.1 时序图中的要素
时序图包含的内容 1)对象 2)对象生命线 3)消息 4)控制焦点 对象、对象生命线和控制焦点 表示方法
对象向下方垂直伸展的虚线称为该对象 的生命线 ,表示该对象存在的时间长度 大“X”标记表明生命的结束 在生命线上的窄矩形条称为控制焦点, 控制焦点表示该对象正在执行某个操作。 窄矩形的长度表示操作的持续时间。

时序图-协作图-详解

时序图-协作图-详解

动态图概念:从静态图中抽取瞬间值的变化描述系统随时间变化的行为,动态图包括交互图活动图状态图,这篇博客研究交互图包括时序图和协作图;-- 时序图:显示对象之间的关系,强调对象之间消息的时间顺序,显示对象之间的交互;--协作图:描述对象之间的交互关系;~一.时序图(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 中, 时序图表示为一个二维的关系图, 其中, 纵轴是时间轴, 时间延竖线向下延伸. 横轴代表在协作中各个独立的对象. 当对象存在时, 生命线用一条虚线表示, 消息用从一个对象的生命线到另一个对象的生命线的箭头表示. 箭头以时间的顺序在图中上下排列.ATM 用户成功登陆的时序图时序图中的基本概念对象: 时序图中对象使用矩形表示, 并且对象名称下有下划线. 将对象置于时序图的顶部说明在交互开始时对象就已经存在了. 如果对象的位置不在顶部, 表示对象是在交互的过程中被创建的.生命线: 生命线是一条垂直的虚线. 表示时序图中的对象在一段生命周期内存在. 每个对象底部中心的位置都带有生命线.消息: 两个对象之间的单路通信. 从发送方指向接收方. 在时序图中很少使用返回消息.激活: 时序图可以描述对象的激活和钝化. 激活表示该对象被占用以完成某个任务. 钝化指对象处于空闲状态, 等待消息. 在 UML 中, 对象激活时将对象的生命线拓宽为矩形来表示的. 矩形称为计划条或控制期. 对象就是在激活条的顶部被激活的. 对象在完成自己的工作后被钝化.对象的创建和销毁: 在时序图中, 对象的默认位置是在图的顶部. 这说明对象在交互开始之前就已经存在了. 如果对象是在交互过程中创建的, 那么就应该将对象放到中间部分. 如果要撤销一个对象, 在其生命线终止点处放置 “ X” 符号.练习:孙中山的……活动图在 UML 中, 活动图本质上就是流程图. 它用于描述系统的活动, 判定点和分支等.活动图中的基本概念动作状态: 原子的, 不可中断的动作, 并在此动作完成之后向另一个动作转变. 在 UML 中动作状态用圆角矩形 表示, 动作状态所表示的动作写在圆角矩形内部.分支与合并: 分支在软件系统中很常见. 一般用于表示对象类所具有的条件行为. 用一个布尔型表达式的真假来判定动作的流向. 条件行为用分支和合并表达.在活动图中, 分支用空心小菱形 表示. 分支包括一个入转换和两个带条件的出转换, 出转换的条件应该是互斥的, 须保证只有一条出转换能够被触发. 合并包含两个带条件的入转换和一个出转换.状态图状态图: 通过建立对象的生存周期模型来描述对象随时间变化的动态行为.状态图中的基本概念状态: 用圆角矩形表示. 状态名称表示状态的名字, 通常用字符串表示. 一个状态的名称在状态图所在的上下文中应该是唯一的.转换: 用带箭头的直线表示. 一端连着源状态, 一端连着目标状态.初始状态: 每个状态图都有一个初始状态. 此状态代表状态图的起始位置. 初始状态只能作为转换的源, 不能作为转换的目标, 并且在状态图中只能有一个. 初始状态用一个实心圆表示.终止状态: 模型元素的最后状态, 是一个状态图的终止点. 终止状态在一个状态图中可以有多个.协作图协作图(也叫合作图)是一种交互图.时序图主要侧重于对象间消息传递在时间上的先后关系, 而协作图表达对象间的交互过程及对象间的关联关系。

(五)UML之协作图

(五)UML之协作图

(五)UML之协作图
⼀、什么是协作图?
顾名思义协作图就是合作图,有合作就涉及到多个对象。

协作图(Collaboration Diagram /Communication Diagram,也叫合作图)是⼀种交互图(interaction diagram),显⽰某组对象如何为了由⼀个⽤例描述的⼀个系统事件⽽与另⼀组对象进⾏协作的,使⽤协作图可以显⽰对象⾓⾊之间的组织关系。

⼆、对⽐
1、协作图和时序图。

两者表的消息时⼀样的,只是强调的重点不同。

协作图表达的是在实现某个⽤例期间,对象之间的合作关系,⽽时序图表达的是对象之间产⽣合作发⽣消息的时间顺序。

两者可以相互转化。

(rational rose 快捷键F5。


三、协作图的构成
时序图跟协作图可以相互转化,不难理解,协作图的构成有⾓⾊,对象,连接,消息。

具体含义同时序图。

协作图表现的是对象在空间上的联系,所以不存在时序图中的⽣命线和激活器。

图⼆是图⼀转换的时序图。

知识点学习(顺序图和协作图 )

知识点学习(顺序图和协作图 )

7.2 通信图
•图10从订单生成订货单的通信图。
2 通信图
• 1.通信图的作用
• 通信图常用来描述业务或软件系统中,每个对象在交互发生时承担的 角色,即强调了交互发生时,每个对象承担的职责。 • 使用协作图可以显示对象相互协作时充当的角色。如果需要强调时间 和序列,最好选择顺序图建模;如果需要强调上下文相关,最好选择 协作图建模。 • 协作图用于显示对象之间如何进行交互,以实现特定用例或用例中特 定部分的行为。设计员使用协作图和顺序图确定并阐明对象的角色, 这些对象执行用例的特定事件流。这些图提供的信息主要用来确定类 的职责和接口。 • 2.通信图的组成元素
1 顺序图
对象
控制焦点 消息
•图2 顺序图
生命线
1 顺序图
• 2.对象:
• 顺序图中对象的符号和对象图中对象所用的符号一样。将对象置于顺 序图的顶部意味着在交互开始的时候对象就已经存在了,如果对象的 位置不在顶部,那么表示对象是在交互的过程中被创建的。 • 3.生命线 • 生命线是一条垂直的虚线,表示顺序图中的对象在一段时间内的存在。 每个对象的底部中心的位置都带有生命线。生命线是一个时间线,所 用的时间取决于交互持续的时间。 • 4.控制焦点 • 在对象的生命线上,包含一个矩形,表示对象处于激活状态,处于激 活状态的对象正在执行某个任务。对象在完成自己的工作后,被去激 活,对象就处于空闲状态。
1.1: findStudent(name) 1.2: findCourse(course) <<self>> 1: register(name,course) :Registrar :RegistrationManager [(!s)&c]1:studentNotFound [s&(!c)]1:courseNotFound [(!s)&(!c)]1:allNotFound [s&c]1:OK :StudentList

第4章 顺序图和协作图

第4章 顺序图和协作图

第4章顺序图和协作图4.1 交互图概述交互图(interaction diagram)是用来描述对象之间以及对象与参与者(actor)之间的动态协作关系以及协作过程中行为次序的图形文档。

它通常用来描述一个用例的行为,显示该用例图中所涉及的对象和这些对象之间的消息传递情况。

交互图包括顺序图(sequence diagram)和协作图(collaboration diagram)两种形式。

顺序图着重描述对象按照时间顺序的消息交互,协作图着重描述系统成分如何协同工作。

顺序图和协作图从不同的角度表达了系统中的交互和系统的行为,它们之间可以相互转化。

一个用例需要多个顺序图或协作图,除非特别简单的用例。

交互图可以帮助分析人员对照检查每个用例中所描述的用户需求,如这些需求是否已经落实到能够完成这些功能的类中去实现,提醒分析人员去补充遗漏的类或方法。

交互图和类图可以相互补充,类图对类的描述比较充分,但对象之间的交互情况的表达不够详细;而交互图不考虑系统中的所有类及对象,但可以表示系统中某几个对象之间的交互。

需要说明的是,交互图描述的是对象之间的消息发送关系,而不是类之间的关系。

在交互图中一般不会包括系统中所有类的对象,但同一个类可以有多个对象出现在交互图中。

4.2 顺序图顺序图也称时序图。

Rumbaugh对顺序图的定义是:顺序图是现实对象之间交互的图,这些对象是按时间顺序排列的[RJB99]。

特别地,顺序图中显示的是参与交互的对象,及对象之间消息交互的顺序。

如图4.1所示是一个简单的顺序图例子。

图4.1 顺序图顺序图是一个二维图形。

在顺序图中水平方向为对象维,沿水平方向排列的是参与交互的对象。

其中对象间的排列顺序并不重要,但一般把表是参与者的对象放在图的两侧,主要参与者放在最左边,次要参与者放在最右边(或表示人的参与者放在最左边,表示系统的参与者放在最右边)。

顺序图中的垂直方向为时间维,沿垂直向下方向按时间递增顺序列出各对象所发出和接收的消息。

时序图和协作图

时序图和协作图

时序图的最大特点是:它以二维的平面上 的一维来表示时间进度,在时间维上定义 各个对象所执行的操作以及它们之间所传 送的消息。从而能够在逻辑上清晰的刻画 这些操作和消息的时序关系乃至因果关系。
简单时序图
7.2 时序图元素及表示法
在UML中,时序图用一个二维图描述系统 中各个对象之间的交互关系。其中,纵轴 是时间轴,时间沿竖线向下延伸,由上至 下表示时间的先后顺序。横轴代表了参与 相互作用的对象。 当对象存在时,生命线由一条虚线表示; 当对象的过程处于激活状态时,生命线上 用一个激活条表示。消息用从一个对象到 另一个对象生命线的箭头表示,箭头以时 间顺序从上到下排列。

时序图(Sequence Diagram)也被称为 顺序图,是一种详细地表示对象之间行为 交互关系的图,主要用来描述对象之间信 息交换时的时间顺序。因此可以清晰而直 观的表示对象之间的行为交互关系以及操 作和消息的时序关系。
时序图的主要用途把用例表达的要求转化 为更进一步的精细表达。它还能用来记录 一个存在系统的对象现在如何交互。 用例常常可被细化为一个或多个时序图。

7.2 时序图元素及表示法
时序图有4种基本图形元素,包括:
对象(object) 生命线(lifeline) 激活(activation) 消息(message)
1. 对象
时序图中的对象在概念上和它在对象图中 的定义是一致的,其图形表示也相同。 每个对象显示在单独的列里,用一个矩形 框代表一个对象,框内填写对象名和它所 属的类名,中间用一个冒号隔开。

2.链接
链接是两个对象间的连接。 它的图形符号也是用一条连接在两个对象间 的实线表示。在连接线上可以标明对象名。

3.消息

UML中的顺序图和协作图的区别与实际应用案例解析

UML中的顺序图和协作图的区别与实际应用案例解析

UML中的顺序图和协作图的区别与实际应用案例解析UML(Unified Modeling Language)是一种用于软件系统建模的标准语言,被广泛应用于软件开发过程中。

在UML中,顺序图和协作图是两种常用的建模工具,用于描述系统中对象之间的交互关系。

本文将探讨顺序图和协作图的区别,并通过实际应用案例解析它们的使用。

顺序图是一种时序图,用于展示对象之间的交互顺序。

它通过显示对象之间的消息传递和时间顺序来描述系统的动态行为。

顺序图以垂直方向表示时间轴,从上到下按照时间顺序排列对象和消息。

每个对象用一个矩形表示,对象之间的消息通过箭头表示。

顺序图强调对象之间的交互和消息的顺序,能够清晰地展示系统中的动态行为。

协作图是一种静态图,用于描述对象之间的合作关系。

它通过展示对象之间的连接和消息传递来描述系统的结构和交互。

协作图以水平方向表示对象之间的连接关系,每个对象用一个矩形表示,对象之间的连接通过实线和虚线表示。

协作图强调对象之间的连接和合作关系,能够清晰地展示系统中的结构和交互。

为了更好地理解顺序图和协作图的区别,我们可以通过一个实际应用案例来解析它们的使用。

假设我们正在开发一个在线购物系统,其中包含用户、购物车和商品三个对象。

首先,我们可以使用顺序图来描述用户购买商品的过程。

顺序图可以展示用户选择商品、将商品添加到购物车、结算支付等交互过程。

通过顺序图,我们可以清晰地了解用户与系统之间的交互顺序和消息传递。

接下来,我们可以使用协作图来描述购物车和商品之间的合作关系。

协作图可以展示购物车和商品之间的连接关系,以及它们之间的消息传递。

通过协作图,我们可以清晰地了解购物车和商品之间的合作关系,从而更好地设计系统的结构和交互。

通过以上案例,我们可以看到顺序图和协作图在描述系统中的对象交互和合作方面有着不同的应用场景。

顺序图适用于描述对象之间的交互顺序和消息传递,而协作图适用于描述对象之间的连接关系和合作关系。

图书管理系统-OOD-协作图与时序图

图书管理系统-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)
• 时序图可供不同的用户使用,以帮助他们进一步 了解系统: • 用户:进一步了解业务细节 • 分析人员:进一步明确事件的处理流程 • 开发人员:进一步了解需要开发的对象和对这些 对象的操作 • 测试人员:通过过程的细节开发测试案例

交互作用图(顺序、协作)

交互作用图(顺序、协作)

• • • •
类Loan Book:OID Borrower:OID Date:Date
• newLoan(book:OID,b orrower:OID,date:Dat e) • 创建Loan对象 • getBook():Book • getBorrower():Borrow er
还书
: Librarian
交互作用图
(顺序图和协作图)
1 交互图概述
交互图(interaction diagram)是用来描述对象之间以及对 象与参与者之间的动态协作关系以及协作过程中行为 次序的图形文档. 交互图通常用于描述一个用例的行为, 显示该用例中所 涉及的对象及对象之间消息传递情况. 交互图包括: (1)顺序图(sequence diagram), 描述对象按照时间顺序的 消息交换; (2)协作图(collaboration diagram), 描述系统成分如何协同 工作.
序列性的消息能很好地说明单一的线性的序列,但是我们 通常需要展示条件和循环。有时候我们想要展示多个序列的 并行执行。在顺序图中用结构化控制操作符能展示这种高层 控制。
为了表示顺序图的边界,可以把顺序图用一个封闭的矩形 包围起来,并在矩形的左上角放一个小五边形。在这个小五 边形内先写上sd,再后面写出图的名字。对每个子顺序图加上 一个矩形区域作为外框,再在其左上角放一个小五边形,在 这个小五边形内写上用来表明控制操作符的类型的文字。
(3). 简单消 息
它只表示控制如何从一个对象传递给另一个对象,而没有描述通信的任何细节。 这种类型的消息主要用于通信细节未知或者无需考虑通信细节的场合。也就是说,主 要用于不知道消息是同步还是异步的场合,但通常情况下表示异步消息此外在高层分 析中,有时候没有必要指定一个消息是同步的还是异步的。如下面的示例所示。

实验三+时序图和协作图

实验三+时序图和协作图

实验三时序图和协作图[实验目的]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各种图总结-精华

UML各种图总结-精华

UML各种图总结-精华UML(UnifiedModelingLanguage)是一种统一建模语言,为面向对象开发系统的产品进行说明、可视化、和编制文档的一种标准语言。

下面将对UML的九种图+包图的基本概念进行介绍以及各个图的使用场景。

一、基本概念如下图所示,UML图分为用例视图、设计视图、进程视图、实现视图和拓扑视图,又可以静动分为静态视图和动态视图。

静态图分为:用例图,类图,对象图,包图,构件图,部署图。

动态图分为:状态图,活动图,协作图,序列图。

1、用例图(UseCaseDiagrams):用例图主要回答了两个问题:1、是谁用软件。

2、软件的功能。

从用户的角度描述了系统的功能,并指出各个功能的执行者,强调用户的使用者,系统为执行者完成哪些功能。

2、类图(ClassDiagrams):用户根据用例图抽象成类,描述类的内部结构和类与类之间的关系,是一种静态结构图。

在UML类图中,常见的有以下几种关系:泛化(Generalization),实现(Realization),关联(Association),聚合(Aggregation),组合(Composition),依赖(Dependency)。

各种关系的强弱顺序:泛化=实现>组合>聚合>关联>依赖2.1.泛化【泛化关系】:是一种继承关系,表示一般与特殊的关系,它指定了子类如何继承父类的所有特征和行为。

例如:老虎是动物的一种,即有老虎的特性也有动物的共性。

2.2.实现【实现关系】:是一种类与接口的关系,表示类是接口所有特征和行为的实现。

2.3.关联【关联关系】:是一种拥有的关系,它使一个类知道另一个类的属性和方法;如:老师与学生,丈夫与妻子关联可以是双向的,也可以是单向的。

双向的关联可以有两个箭头或者没有箭头,单向的关联有一个箭头。

【代码体现】:成员变量2.4.聚合【聚合关系】:是整体与部分的关系,且部分可以离开整体而单独存在。

UML 序列图(顺序图)和协作图

UML 序列图(顺序图)和协作图

UML图学习序列图(顺序图)和协作图分类:UML 2012-11-30 16:42 2528人阅读评论(19) 收藏举报在面向对象动态建模,用于建立行为的实体间行为交互的四种图:状态图(Stage Diagram),序列图(Sequence Diagram),协作图(Communication Diagram),活动图(Activity Diagram) ,其中,“顺序图”与“协作图”表述的是相似的消息。

序列图(Sequence Diagram)强调的消息时间顺序的交互图,描述类系统中类与类之间的交互,它将这些交互建模成消息互换,换句话说,顺序图描述了类与类之间之间相互交换以完成期望行为的消息。

顺序图的特点是清晰,一个设计很好地顺序图从左到右、从上到下可以很好地表示出系统数据的流向,为接下来的系统设计做好铺垫。

协作图(Collaboration Diagram /Communication Diagram,也叫合作图)是一种交互图(interaction diagram),强调的是发送和接收消息的对象之间的组织结构。

一个协作图显示了一系列的对象和在这些对象之间的联系以及对象间发送和接收的消息。

对象通常是命名或匿名的类的实例,也可以代表其他事物的实例,例如协作、组件和节点。

使用协作图来说明系统的动态情况。

1、序列图(顺序图)的知识点概要:点此看大图2、协作图知识点概要:点此看大图3:顺序图(1)先从图书馆借/还书角度了解顺序图从顺序图的流程中,清晰到了解程序的过程,十分清晰明了(2)从地铁购票的活动中来看顺序图根据机房收费系统来画的部分顺序图(3):一般用户角度查询信息。

(4):操作员注册新的学生账号(5)管理员的基本系统数据的的设定4、协作图(1)结合刚才的图书馆借/还书的过程。

根据序号可以发生的先后顺序(2)从地铁购票的角度来学习协作图(3)结合机房收费系统角度画的协作图一般用户查询信息:(4)操作员注册卡(5)管理员修改基本数据5、协作图与顺序图的区别和联系协作图和顺序图都表示出了对象间的交互作用,但是它们侧重点不同顺序图清楚地表示了交互作用中的时间顺序(强调时间),但没有明确表示对象间的关系。

uml实验-时序图与协作图

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按钮。

系统存储新的数量,然后计算并显示该商品的新价格。

UML 各种图总结精华

UML 各种图总结精华

UML 各种图总结精华UML(Unified Modeling Language)是一种统一建模语言,为面向对象开发系统的产品进行说明、可视化、和编制文档的一种标准语言。

下面将对UML的九种图+包图的基本概念进行介绍以及各个图的使用场景。

一、基本概念如下图所示,UML图分为用例视图、设计视图、进程视图、实现视图和拓扑视图,又可以静动分为静态视图和动态视图。

静态图分为:用例图,类图,对象图,包图,构件图,部署图。

动态图分为:状态图,活动图,协作图,序列图。

1、用例图(UseCase Diagrams):用例图主要回答了两个问题:1、是谁用软件。

2、软件的功能。

从用户的角度描述了系统的功能,并指出各个功能的执行者,强调用户的使用者,系统为执行者完成哪些功能。

2、类图(Class Diagrams):用户根据用例图抽象成类,描述类的内部结构和类与类之间的关系,是一种静态结构图。

在UML类图中,常见的有以下几种关系: 泛化(Generalization), 实现(Realization),关联(Association),聚合(Aggregation),组合(Composition),依赖(Dependency)。

各种关系的强弱顺序:泛化 = 实现 > 组合 > 聚合 > 关联 > 依赖2.1.泛化【泛化关系】:是一种继承关系,表示一般与特殊的关系,它指定了子类如何继承父类的所有特征和行为。

例如:老虎是动物的一种,即有老虎的特性也有动物的共性。

2.2.实现【实现关系】:是一种类与接口的关系,表示类是接口所有特征和行为的实现。

2.3.关联【关联关系】:是一种拥有的关系,它使一个类知道另一个类的属性和方法;如:老师与学生,丈夫与妻子关联可以是双向的,也可以是单向的。

双向的关联可以有两个箭头或者没有箭头,单向的关联有一个箭头。

【代码体现】:成员变量2.4. 共享聚合【聚合关系】:是整体与部分的关系,且部分可以离开整体而单独存在。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

动态图概念 : 从静态图中抽取瞬间值的变化描述系统随时间变化的行为, 动态图包括交互图活动图状态图, 这篇博客研究交互图包括时序图和协作图;-- 时序图 : 显示对象之间的关系, 强调对象之间消息的时间顺序, 显示对象之间的交互;-- 协作图 : 描述对象之间的交互关系;一.时序图 (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。

相关文档
最新文档