顺序图和协作图
软件工程---交互建模之交互图,顺序图与协作图
![软件工程---交互建模之交互图,顺序图与协作图](https://img.taocdn.com/s3/m/7962da7e67ec102de2bd898f.png)
2.5 消息
格式
[前缀][守卫条件][顺序表达式][返回值:=]消息名([参数列表])
例:
2: display ()
简单消息
1.3.1: p:=find()
带返回值的嵌套消息
[x<0] 4: invert(x, color) 条件消息
3.1 *[x = 1..10] : update() 循环消息
[ 条件子句 ] 条件子句一般用来表示分枝而不是用作守卫条件[x<0]是两个可
以用来分枝的条件子句这两个条件只能有一个为真因而只有一 个分枝被执行(即发送与分枝有关的消息) 条件子句和循环子句都可以用伪代码或真正的编程语言来表示 序列表达式用冒号结束
返回值、消息名和参数表
返回值表示一个操作调用(即一个消息)的结 果
顺序图中消息编号可显示,也可不显示。 协作图中必须显示Procedure Call) 异步(Asynchronous) 返回(Return) 自关联消息(Self Message)
2.5 消息
UML三种消息:
调用(Procedure Call) 发送者把消息发送后,等待直到接收者返回控制, 可以表示同步(synchronous message); 实心箭头符号
包括对象名和类名 类名(匿名对象) 对象名(不关心类)
2.3 生命线
生命线(Lifeline):
每个对象都有自己的生命线,用来表示在该用例中一个对象在一段时 间内的存在
垂直的虚线 如果对象生命期结束, 则用注销符号表示 对象默认的位置在图 顶部,表示对象在交互 之前已经存在 如果是在交互过程中 由另外的对象所创建, 则位于图的中间某处。
顺序图
面向时间描述对象交互的图
协作图
顺序图和协作图
![顺序图和协作图](https://img.taocdn.com/s3/m/0f7dd6c2bb4cf7ec4afed050.png)
第4章顺序图和协作图4.1 交互图概述在一个待开发的系统中,任何对象都不是孤立存在的,系统中的这些对象都是通过传递消息进行交互的。
因此在设计系统时,就免不了对交互进行缄默,并用交互图展现出来。
4.1.1 交互的定义当需要对类操作、类、构件、用例乃至整个系统的控制流进行建模时,一定离不开“交互”。
交互:一次交互就是指在特定语境中,为了实现某一个目标,而在一组对象之间进行交换的一组消息所表示的行为。
交互图:是用来描述对象之间以及对象与参与者之间的动态协作关系以及协作过程中行为次序的图形文档。
通常用来描述一个用例的行为,显示该用例中所涉及的对性和这些对象之间的消息传递情况在大多数情况下,消息通常是指启动一个操作或发送一个信号,以及创建或销毁一个对象。
4.1.2 UML交互图的类型顺序图:是一种强调消息时间顺序的交互图,着重描述对象按照时间顺序的消息交换,为读者提供了控制流随着时间推移的清晰的可视化轨迹。
协作图(UML 2.0中的通信图):强调的是参加交互的对象的组织,着重描述系统成分如何协同工作,为读者提供了在协作对象结构组织的语境中观察控制流的一个清晰的可视化轨迹。
顺序图和协作图从不同的角度表达了系统中的交互和系统的行为,它们可以相互转化,并且转换过程不会丢失信息。
定时图(UML 2.0中新增):采用了一种带数字刻度的时间轴来精确地描述消息的顺序,而不是像顺序图那样只是指定消息的相对顺序,而且它还允许可视化的表示每条生命线的状态变化,当需要对实时时间进行定义时,采用定时图可以很好的满足。
交互概述图(UML 2.0中新增):是交互图和活动图的混合物。
定时图和交互概述图是两种特殊的变体。
4.1.3交互图和类(图)4.2 顺序图顺序图:显示的是参与交互的对象及对象之间消息交换的顺序,用来表示用例中的行为顺序。
图显示的是汽车租赁系统中客户取车的顺序图,涉及5个对象:客户、预定请求、工作人员、工作记录和汽车。
第六章.顺序图和协作图
![第六章.顺序图和协作图](https://img.taocdn.com/s3/m/22b4b2cfa1c7aa00b52acbc9.png)
6.3 顺序图中的消息 返回消息:表示从过程调用返回 如果是过程消息返回, 返回消息:表示从过程调用返回. 如果是过程消息返回 则不用 画出; 如果是非过程消息, 则必须画出. 画出 如果是非过程消息 则必须画出
返回消息
6.3 顺序图中的消息 阻止消息:消息的发送者传递消息给接收者 阻止消息:消息的发送者传递消息给接收者, 如果接收者无法 立即接收, 则发送者放弃该消息. 立即接收 则发送者放弃该消息 超时消息:消息的发送者发出消息给接收者并按指定时间等待 超时消息:消息的发送者发出消息给接收者并按指定时间等待, 若接收者无法在指定时间内接收, 则发送者放弃该消息. 若接收者无法在指定时间内接收 则发送者放弃该消息
•
6.2 顺序图
• 创建对象的两种表示方法: 创建对象的两种表示方法:
6.2 顺序图
• 如果要撤销一个对象,只要在其生命线终止点放置一 如果要撤销一个对象,
符号即可, 个“X”符号即可,该点通常是对删除或取消消息的回 符号即可 应。
6.3 顺序图中的消息
• 调用消息 procedure call • 异步消息 asynchronous • 返回消息 return • 阻止消息 balking • 超时消息 time-out
• 顺序图的样式和元素 • 消息:对象之间传输的信息 消息:
消息
6.2 顺序图
• 顺序图的样式和元素 • 对象的创建和撤消 • 如果对象位于时序图的顶部,说明在交互开始之前 如果对象位于时序图的顶部,
该对象已经存在了。 该对象已经存在了。如果对象是在交互的过程中创建 那么它应当位于图的中间部分。 的,那么它应当位于图的中间部分。 对象在创建消息发生之后才能存在, 对象在创建消息发生之后才能存在,对象的生命线 也是在创建消息之后才存在的。 也是在创建消息之后才存在的。
知识点学习(顺序图和协作图 )
![知识点学习(顺序图和协作图 )](https://img.taocdn.com/s3/m/819ec3ccaa00b52acfc7ca58.png)
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
UML中的顺序图和协作图的区别与实际应用案例解析
![UML中的顺序图和协作图的区别与实际应用案例解析](https://img.taocdn.com/s3/m/43e043ee29ea81c758f5f61fb7360b4c2e3f2af1.png)
UML中的顺序图和协作图的区别与实际应用案例解析UML(Unified Modeling Language)是一种用于软件系统建模的标准语言,被广泛应用于软件开发过程中。
在UML中,顺序图和协作图是两种常用的建模工具,用于描述系统中对象之间的交互关系。
本文将探讨顺序图和协作图的区别,并通过实际应用案例解析它们的使用。
顺序图是一种时序图,用于展示对象之间的交互顺序。
它通过显示对象之间的消息传递和时间顺序来描述系统的动态行为。
顺序图以垂直方向表示时间轴,从上到下按照时间顺序排列对象和消息。
每个对象用一个矩形表示,对象之间的消息通过箭头表示。
顺序图强调对象之间的交互和消息的顺序,能够清晰地展示系统中的动态行为。
协作图是一种静态图,用于描述对象之间的合作关系。
它通过展示对象之间的连接和消息传递来描述系统的结构和交互。
协作图以水平方向表示对象之间的连接关系,每个对象用一个矩形表示,对象之间的连接通过实线和虚线表示。
协作图强调对象之间的连接和合作关系,能够清晰地展示系统中的结构和交互。
为了更好地理解顺序图和协作图的区别,我们可以通过一个实际应用案例来解析它们的使用。
假设我们正在开发一个在线购物系统,其中包含用户、购物车和商品三个对象。
首先,我们可以使用顺序图来描述用户购买商品的过程。
顺序图可以展示用户选择商品、将商品添加到购物车、结算支付等交互过程。
通过顺序图,我们可以清晰地了解用户与系统之间的交互顺序和消息传递。
接下来,我们可以使用协作图来描述购物车和商品之间的合作关系。
协作图可以展示购物车和商品之间的连接关系,以及它们之间的消息传递。
通过协作图,我们可以清晰地了解购物车和商品之间的合作关系,从而更好地设计系统的结构和交互。
通过以上案例,我们可以看到顺序图和协作图在描述系统中的对象交互和合作方面有着不同的应用场景。
顺序图适用于描述对象之间的交互顺序和消息传递,而协作图适用于描述对象之间的连接关系和合作关系。
UML 序列图(顺序图)和协作图
![UML 序列图(顺序图)和协作图](https://img.taocdn.com/s3/m/f296a2b2f121dd36a32d82ba.png)
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中的协作图和顺序图的区别与实践应用](https://img.taocdn.com/s3/m/9cd0479c294ac850ad02de80d4d8d15abe230005.png)
UML中的协作图和顺序图的区别与实践应用在软件开发过程中,UML(统一建模语言)是一种常用的工具,它用于描述和设计软件系统的结构和行为。
UML中有多种类型的图表,其中协作图和顺序图是两种常见的用于描述系统交互的图表。
虽然它们都可以用于描述系统的交互行为,但协作图和顺序图在表达方式、重点和实践应用上存在一些区别。
首先,协作图主要用于描述系统中的对象之间的协作关系。
它通过展示对象之间的交互和消息传递来揭示系统的结构和行为。
协作图强调对象之间的合作,通过展示对象之间的关联、消息和角色来描述系统的动态行为。
协作图通常以对象为中心,通过展示对象之间的交互来描述系统的运行过程。
与之相反,顺序图主要用于描述系统中的对象之间的时序关系。
它通过展示对象之间的消息传递顺序来揭示系统的行为和交互。
顺序图强调对象之间的时序关系,通过展示消息在对象之间的传递顺序和时序关系来描述系统的运行过程。
顺序图通常以时间为轴,通过展示对象之间的消息传递顺序来描述系统的执行流程。
在实践应用方面,协作图常用于分析和设计系统的结构和行为。
它可以帮助开发人员理解系统中对象之间的交互关系,从而提供系统设计的基础。
协作图可以用于描述系统的静态结构,例如对象之间的关联关系和角色。
同时,它也可以用于描述系统的动态行为,例如对象之间的消息传递和交互流程。
通过使用协作图,开发人员可以更好地理解系统的整体结构和行为,从而更好地进行系统设计和开发。
而顺序图则常用于描述系统的执行流程和时序关系。
它可以帮助开发人员理解系统中对象之间的消息传递顺序和时序关系,从而提供系统设计和实现的指导。
顺序图可以用于描述系统的执行流程,例如对象之间的消息传递顺序和执行顺序。
同时,它也可以用于描述系统的时序关系,例如对象之间的时序关系和时序约束。
通过使用顺序图,开发人员可以更好地理解系统的执行流程和时序关系,从而更好地进行系统设计和实现。
在实际应用中,协作图和顺序图常常结合使用。
时序图和协作图
![时序图和协作图](https://img.taocdn.com/s3/m/7d87e00871fe910ef02df87f.png)
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
UML中顺序图与协作图的对比与选择
![UML中顺序图与协作图的对比与选择](https://img.taocdn.com/s3/m/5b8d381f2e60ddccda38376baf1ffc4fff47e248.png)
UML中顺序图与协作图的对比与选择UML(Unified Modeling Language)是一种用于软件系统建模的标准化语言,它提供了多种图形化工具,其中顺序图和协作图是两种常用的交互图。
本文将对这两种图进行对比,并讨论在不同情况下的选择。
顺序图是一种描述对象之间交互行为的图形化工具。
它展示了对象之间的消息传递顺序,以及消息的触发和响应。
顺序图以时间为轴,清晰地展示了对象之间的交互过程。
通过顺序图,我们可以更好地理解系统中不同对象之间的协作方式。
例如,在一个订单处理系统中,顺序图可以展示顾客对象与订单对象之间的交互过程,包括顾客发起订单请求、订单对象接收请求并生成订单、顾客确认订单等。
协作图是一种描述对象之间协作关系的图形化工具。
它展示了对象之间的结构和关联关系,以及对象之间的消息传递。
协作图以对象为中心,通过箭头和标签展示了对象之间的交互过程。
与顺序图相比,协作图更加注重对象之间的结构和关联关系。
例如,在一个电子商务系统中,协作图可以展示顾客对象、订单对象和商品对象之间的协作关系,包括顾客对象发起订单请求、订单对象生成订单并关联商品对象等。
那么,在实际应用中,我们该如何选择使用顺序图还是协作图呢?首先,如果我们更关注对象之间的交互行为和消息传递顺序,那么顺序图是更好的选择。
顺序图以时间为轴,清晰地展示了对象之间的交互过程,帮助我们更好地理解系统中不同对象之间的协作方式。
例如,在一个银行系统中,我们可以使用顺序图展示客户对象与银行柜员对象之间的交互过程,包括客户发起取款请求、柜员接收请求并处理、客户确认取款等。
其次,如果我们更关注对象之间的结构和关联关系,那么协作图是更好的选择。
协作图以对象为中心,展示了对象之间的结构和关联关系,帮助我们更好地理解系统中不同对象之间的协作关系。
例如,在一个团队协作系统中,我们可以使用协作图展示团队成员对象之间的协作关系,包括成员之间的沟通、任务分配和工作协调等。
第八章 顺序图和协作图
![第八章 顺序图和协作图](https://img.taocdn.com/s3/m/2ff534330912a2161479299b.png)
第八章序列图和协作图本章要点⏹基础内容:序列图和协作图的激活和链⏹重点掌握:序列图和协作图中的对象、消息⏹一般了解:序列图中的分支和从属流导读⏹在标识出系统的类图之后,除了显示了实现用例的组成结构外,还需要描述这些类的对象是如何交互来实现用例功能的,即不但需要类图模型,还需要将它转化为交互图模型。
⏹交互图为基于交互的对象行为建模,是UML用于描述对象之间信息的交互过程的方法,是描述对象间协作关系的模型。
交互图指出对象如何通过协作来完成用例中捕获的业务流程。
⏹UML中的交互图以图形的形式表示方法调用的具体过程,主要有顺序图和协作图两种形式。
UML提供了一系列的图支持面向对象的分析和设计,顺序图和协作图都输描述系统动态视图的交互图。
其中顺序图描述了以时间顺序组织的对象之间的交互活动,协作图强调收发消息的对象的组织结构。
8.1 顺序图概述⏹顺序图由类角色、生命线、激活期和消息组成。
⏹顺序图用于表示一个交互,该交互是协作中各种类元角色间的一组消息交换,侧重于强调时间顺序。
顺序图捕获系统运行中对象之间有顺序的交互,强调的是消息交互的时间顺序。
⏹顺序图用于表示用例中的行为顺序。
顺序图将交互关系表示为一个二维图。
横向轴代表了在协作中各独立对象的类元角色。
纵向轴是时间轴,时间沿竖线向下延伸。
所谓交互是指在具体语境中由为实现某个目标的一组对象之间进行交互的一组消息所构成的行为。
交互——语境对象相互链接的地方就有交互(1)具有对象协作的系统、子系统语境中如:Web商务系统,客户对象、服务器对象间交互(2)操作实现语境中如:操作的参数、局部变量、全局对象相互交互完成操作的实现算法(3)类语境中如:通过交互显示类的属性是如何相互协作的交互——对象和角色⏹交互中的对象可以是具体事物⏹也可以是原型化事物⏹可以是类、构件、节点、用例的实例,也可以是抽象类、接口的间接实例UML提供的交互机制通常用于为以下两种情况进行建模:(1)控制流方面进行建模可针对一个用例、一个业务操作过程或系统过程,也可针对整个系统。
顺序图和协作图
![顺序图和协作图](https://img.taocdn.com/s3/m/d2b4a71710a6f524ccbf856b.png)
问题: 阻止消息和超时消息属于同步消息还是异步消息?
6.2.6 消息
• 格式
– [前缀][守卫条件][顺序表达式][返回值:=]消息名([参数列表])
• 例:
– – – – – – 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()
6.2.2 参与者或对象
• 参与者和对象按照从左到右的顺序排列 • 一般最多两个参与者,他们分列两端。启动这个用例的活 动者往往排在最左边;接收消息的活动者则排在最右端; • 对象从左到右按照重要性排列或按照消息先后顺序排列。
6.2.2 参与者或对象
• 对象的命名方式有三种:
– 包括对象名和类名 – 类名(匿名对象) – 对象名(不关心类)
• 间隔区中,有操作符(描述帧中的图的类型的表 达式)和图所描绘的交互的名字。
• •
最外层是框架元件或叫间隔区: 对于顺序图,操作符是 sd (sequence diagram), BuySoda是图的名字
• 帧化的概念很有用,有多种应用方法,不同的应 用帧化类型(间隔区操作符)对应不同。
交互片段(interaction fragment)
6.2.1 顺序图的组成
• 参与者(actor)或者 对象(object)
• 生命线(lifeline)
• ----坐标轴纵向的虚线表示对象在序列中的执 行情况(即发送和接收的消息,对象的活动) 这条虚线称为对象的“生命线”。
• 激活期/ 控制焦点
• 消息(message)
5.实验5---顺序图和协作图
![5.实验5---顺序图和协作图](https://img.taocdn.com/s3/m/58d2130f4a35eefdc8d376eeaeaad1f34693117c.png)
实验5顺序图和协作图一.顺序图1.实验内容图1-1顺序图2.实验步骤2.1定义类在LogiC VieW视图下创建4个类,它们是:客户、ATM端口、钱币记录仪、分类器,如图1-2所示。
图1-2创建类2.2创建顺序图右击LogiC View,选择New→Sequence Diagram,系统自动增加了一个项目:NewDiagram0我们在此处输入:顺序图,如图1-3所示。
图1-3创建顺序图2.3往顺序图中添加对象在i刘览器窗口中,双击“顺序图”文本,系统就在模型图窗口打开“顺序图”,如图1-4所示。
图1-4打开顺序图分别将浏览器窗口中的4个类(客户、ATM端口、钱币记录仪、分类器)拖入顺序图。
当把类拖入顺序图中时,系统自动创建匿名对象。
如图1・5所示。
图1-5对象拖入顺序图给匿名对象命名步骤如下:右击匿名对象客户”图标,选择OPen SPeCifICatiOn,打开对象的规范窗口,输入姓名:邓小贫。
如图1-6所示。
图1-6给匿名对象取名点击“OK”按钮,完成对象命名。
2.4 给对象添加消息添加消息的步骤:1)在工具箱中单击ObjeCl Message 按钮,2)在“邓小贫”对象的生命线上按下鼠标左键(不要松手),拖动鼠标到对象”:ATM端口”后,松开鼠标,就建立了一条消息。
如图1-7所示。
×ι÷lMHl ►!►Mog/For H«lp , pr«ss Fl∣D∙fftult Ltt<u∙g∙: Analysis图1-7添加消息3)右击消息,打开快捷菜单,选择OPenSPeCifiCatiOn ,打开消息的规范窗口,并输 入消息名:请求接收钱币,如图,1-8所示。
图1-7消息命名@ Rational Rose - 20182236+季自成+⅛⅛4.mdl‰侬File Edit View Format Browse Report ToOk Add-Ins Window Help口空。
实验五--1 顺序图和协作图
![实验五--1 顺序图和协作图](https://img.taocdn.com/s3/m/65211ef2172ded630a1cb605.png)
实验五—1 顺序图、协作图一、实验目的1.理解顺序图的基本概念。
2.理解协作图的基本概念。
3.掌握在Rational Rose 中绘制顺序图、协作图的操作方法。
二、实验器材1.计算机一台。
2.Rational Rose 工具软件。
三、实验内容通过对课堂学习和前面的实验,使我们完成了图书馆的管理系统的需求分析,并从业务对象中抽象出了类。
现在需要对前面所给出的用例进行实现,而用例的实现主要由顺序图来描述系统的动态特性,协作图与顺序图是同构的,Rose 可自动转换。
现指派你运用课堂所学的相关知识,完成如下任务:1.对图书管理功能中的借书用例、还书用例进行动态建模。
四、实验步骤4.1 分析阶段的动态建模1.分析:在分析阶段,绘制的顺序图中,所有消息可以使用便于理解的自然语言来描述,并且可以仅在实体类中识别对象职责,而不涉及边界类和控制类。
根据课堂讲授,参见教材P213 可完成借书用例和还书用例分析阶段的动态建模。
2.绘图步骤:(1)鼠标右击导航窗口“Logicl View”节点,选择“New——Package”,建立1 个子包:“Sequence Di ag ra m”(用于存放顺序图、协作图),完成后如图 3.1 所示。
(2)如图 3.2 所示,鼠标右击“Sequence Diagram”子包,选择快捷菜单项“New——Sequence Di ag ram”,创建一张新的顺序图,取名为“借出图书”(注意:为了好对应,顺序图名称最好与相应的用例名称相同)。
鼠标双击新建的顺序图,在右边绘图窗口中将其打开,如图 3.3 所示。
(3)设置支持嵌套消息的环境:选择主菜单项“Tools——O ptions”,打开Rose 环境设置的对话框,点击“D i a g r a m”选项卡,在如图3.4所示界面中,将“D i s p l a y”下的“Hierarchical Message”选中,点击“确定”即可。
图 3.1图 3.2图3.3图3.4(4)绘制类:从导航窗口中,将“Use Case View”节点下的参与者“图书管理员”拖到绘图窗口;将“Class Diagram”包下“BO”实体包中的相关类“Reader”、“ResourceItem”、“ResourceTitle”和“Loan”拖到绘图窗口中,如图3.5 所示。
顺序图和协作图的异同
![顺序图和协作图的异同](https://img.taocdn.com/s3/m/0760163076eeaeaad0f33084.png)
顺序图和协作图异同
1.顺序图和协作图都属于交互图,都用于描述系统中对象之间的动态关系。
两者可以相互转换,但两者强调的重点不同。
顺序图强调的是消息的时间顺序,而协作图强调的是参与交互的对象的组织。
2.两个图中所使用的建模元素,两者也各有特点。
顺序图中有对象生命线和控制焦点,协作图中没有;协作图中有路径,并且协作图中的消息必须要有消息顺序号,但顺序图中没有路径,也可以没有消息顺序号。
3.和协作图相比,顺序图在表示算法、对象的生命期、具有多线程特征的对象等方面相对来说更容易一些,但在表示并发控制流方面会困难一些。
顺序图和协作图在语义上是等价的,两者之间可以相互转换,但两者并不能完全相互代替。
顺序图可以表示某些协作图无法表示的信息,同样,协作图也可
以表示某些顺序图无法表示的信息。
4.例如,在顺序图中不能表示对象与对象之间的链,对于多对象和主动对象也不能直接显示出来,在协作图中则可以表示;协作图不能表示生命线的分叉,在顺序图中则可以表示。
交互作用图(顺序、协作)
![交互作用图(顺序、协作)](https://img.taocdn.com/s3/m/e8f8ee0890c69ec3d5bb7557.png)
创建消息:创建一个对象,箭头需要指到所建立的 对象上面。 销毁消息:销毁一个对象,对象生命线用差号来表 示销毁,表示被销毁对象的生命周期将到此终结。
obj1:Class <<c re at e>> obj2:Class
<<d e s t ro y >>
<<boundary>> : 职员管理界面
• findTitle(isbn:String):OID • 返回指定ISBN的Title对象的 OID • getTitle(oid:OID):Title • 返回Title对象 • getAvaliableBook():OID • 返回第一个可借阅的Book对 象的OID
• 类Borrower • borrowerID:String • loans:OID[ ]
(3). 简单消 息
它只表示控制如何从一个对象传递给另一个对象,而没有描述通信的任何细节。 这种类型的消息主要用于通信细节未知或者无需考虑通信细节的场合。也就是说,主 要用于不知道消息是同步还是异步的场合,但通常情况下表示异步消息此外在高层分 析中,有时候没有必要指定一个消息是同步的还是异步的。如下面的示例所示。
顺序图是显示对象之间交互的图, 这些对象是按时 间顺序排列的. 它显示参与交互的对象及对象之间消息交互的顺序.
对象/参与者 对象维
生命线 消息 时间维 控制焦点
对象的三种命名方式:
生命线是对象图标向下延伸的虚线, 表示对象生存时间.
消亡点
控制焦点(Focus of Control)又称为激活期(Activation), 用 生命线上的小矩形表示, 在这个时间段内, 对象执行相 应的操作.
UML顺序图和协作图
![UML顺序图和协作图](https://img.taocdn.com/s3/m/b365f510240c844769eaeec1.png)
对上述步骤建模的顺序图如下:
: Customer
: Front
: Register
: Dispenser
1: accept(cash,selection) 2: getCustomerInput(cash,selection)
3: check(selection) 4: yes
5: updateReserve(cash,price)
:ClassA
:ClassB
oper()
返回消息
返回消息表示从过程调用 返回,以虚线箭头表示。
:ClassA
:ClassB
oper()
阻止消息
阻止消息是指消息发送者发出消息给接收者, 若接收者无法立即接收消息,则发送者放弃此 消息。Rose中用折回的箭头表示阻止消息。
:ClassA
:ClassB
场景描述
曹操 :刘备
:孔明
求战 请拟策略
:关羽
:张飞 孙权
请防守荆州
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
协作图
消息(Message)
协作图中的消息类型与顺序图中的相同,只不 过为了说明交互过程中消息的时间顺序,需要 给消息添加顺序号。 顺序号是消息的一个数字前缀,是一个整数, 由1开始递增,每个消息都必须由唯一的顺序 号。可以通过点表示法代表控制的嵌套关系。 嵌套可以具有任意深度。与顺序图相比,协作 图可以显示更为复杂的分支。
顺序图
概念
顺序图
顺序图包含了4个元素:
对象(Object) 生命线(Lifeline) 消息(Message) 激活(Activation)
顺序图
对象(Object)
顺序图中对象的符号和对象图中对象所用的符 号一样。 将对象置于顺序图的顶部意味着在交互开始的 时候对象就已经存在了,如果对象的位置不在 顶部,那么表示对象是在交互的过程中被创建 的。
系统管理员添加书籍的顺序图
: Administrator
: Maintenance Window 1: add item( ) 2: find(String)
: Title
: Item
Check if corresponding title exist
3: return true
4: create(Integer, Title)
2: find(String)
1: identify borrower( ) 3: reserve title( ) : Borrower : Reservation Window
teacher
Req stu info Get stu data Load stu Return stu info Load grades
failure
mBox <<create>> Disp error <<destorys>>
No grades found for stu
顺序图
范例2
顺序图
范例3
协作图
协作图建模技术
设置交互的语境。 通过识别对象在交互中扮演的角色,设置交互的场景。 对每个对象设置初始特性。 描述对象之间可能有信息沿着它传递的链。 从引起交互的消息开始,适当地设置其顺序号,然后 将随后的每个消息附到适当的链上。 如果需要说明时间或空间约束,可以用时间标记修饰 这个消息,并附上合适的时间和空间约束。 如果需要更形式化地说明这个控制流,可以为每个消 息附上前置和后置条件。
3: Return true
4: reserv e( )
顺序图
范例4
分析Select Course用例中的对象、角色之间 交互的消息。主要有以下交互:
(1)学生通过界面发送选课命令。 (2)界面向控制对象请求课程信息。 (3)控制对象向数据库发送查询数据消息。 (4)控制对象暂存数据库的查询结果。 (5)界面对象从控制对象中取得所有的课程信息。 (6)在界面上显示所有的课程信息。
协作图包含了3个元素:
对象(Object) 链(Link) 消息(Message)
协作图
对象(Object)
协作图与顺序图中的对象的概念是一样,只不 过在协作图中,无法表示对象的创建和撤销, 所以对于对象在图中的位置没有限制。
协作图
链(Link)
协作图中链的符号和对象图中链所用的符号是 一样的,即一条连接两个类角色的实线。 为了说明一个对象如何与另一个对象连接,可 以在链的末路上附上一个路径构造型。
多对象 :表示某个关联角色的“多个”端点 上的一组对象角色。协作中使用多对象来 显示将整个对象集合作为一个单元(而不 是其中的单个对象)来处理的操作。
协作图
关联角色 :是一种协作角色,用来说明协作 图中两个分类器角色之间的关系。它由两 个类角色元素之间的路径表示,并且可以 包括带下划线的相应关联的名称。在协作 图上下文中,关联角色通常指链接。
顺序图
消息(Message)
顺序图
激活(Activation)
激活表示该对象被占用以完成某个任务,去激 活指的则是对象处于空闲状态、在等待消息。 在UML中,为了表示对象是激活的,可以将该 对象的生命线拓宽成为矩形。其中的矩形称为 激活条或控制期,对象就是在激活条的顶部被 激活的,对象在完成自己的工作后被去激活。
顺序图
生命线(Lifeline)
生命线是一条垂直的虚线,表示顺序图中的对 象在一段时间内的存在。每个对象的底部中心 的位置都带有生命线。 生命线是一个时间线,从顺序图的顶部一直延 伸到底部,所用的时间取决于交互持续的时间。 对象与生命线结合在一起称为对象的生命线, 对象的生命线包含矩形的对象图标以及图标下 面的生命线。
Get stu data
Load stu Return stu info Load grades Return grades
Disp stu info
Return stu info
顺序图
范例1
添加消息和条件(流程2)
Web interface Database wrapper Stu info Stu grades
: Reservation
: Loan
协作图
范例1
图书管理员处理还书的协作图
1: find borrower( ) : Return Window : Librarian 3: return_back( ) : Title
5: return_back( )
2: find(S序图和协作图
内容提要
顺序图 协作图
交互的概念
一次交互就是指在特定语境中,为了实现 某一个目标,而在一组对象之间进行交换 的一组消息所表示的行为
如何创建交互图
用例图仅仅描述了系统的功能,以及功能的执行 流程。它并没有从实现的层面来描述系统。 而要对用例进行实现描述,则需要描述相互影响 的对象的集合,这些对象用来支持用例所要求的 功能。 并且,给出系统用例的实现描述,是从外部视图 转到内部结构的第一步。 在UML中,用例的实现用交互图来描述,它通过 显示对象之间的关系和对象之间处理的消息来对 系统的动态特性建模。 交互图包括序列图和协作图两种。
顺序图
范例1
布置对象
Web interface
teacher
Database wrapper
Stu info
Stu grades
顺序图
范例1
添加消息和条件(流程1)
Database wrapper
Web interface
teacher Req stu info
Stu info
Stu grades
如何创建交互图
交互图用来一步一步地描述用例地实现流 程,包括流中需要什么对象,对象之间发 送什么,什么角色启动流、消息按什么顺 序发送等。 交互图通过从用例建模中得到的用例文档 说明、词汇表和用例图来创建。
顺序图
概念
顺序图是强调消息时间顺序的交互图。 顺序图描述了对象之间传送消息的时间顺序, 用来表示用例中的行为顺序。 顺序图将交互关系表示为一个二维图。其中, 纵轴是时间轴,时间沿竖线向下延伸。横轴代 表了在协作中各独立的对象。
: Title
协作图
范例1
图书管理员处理借书的协作图
: Item 2: find reservation( ) 5: update( ) 1: identify borrower( ) : Lend Window : Administrator 6: borrow( ) 7: check_if_max( ) 3: find(Borrower, Title) 4: borrow( ) : Title
: Loan
: Item
协作图
范例1
系统管理员删除书籍的协作图
1: remove item( ) : Maintenance Window : Administrator 2: find(String) 3: update( ) : Item
: Title
协作图
范例1
借阅者预留书籍的协作图
: Title
协作图
绘制协作图的步骤
创建协作图 协作图工具栏按钮简介 添加对象 添加消息 添加数据流
协作图
范例1
系统管理员添加书籍的协作图
1: add item( ) : Maintenance Window 3: update( ) : Item
: Administrator 2: find(String)
顺序图
对象的创建和撤销
如果对象位于顺序图的顶部,说明在交互开始 之前该对象已经存在了。如果对象是在交互的 过程中创建的,那么它应当位于图的中间部分。 对象在创建消息发生之后才能存在,对象的生 命线也是在创建消息之后才存在的。 创建对象的两种表示方法:
顺序图
对象的创建和撤销
如果要撤销一个对象,只要在其生命线终止点 放置一个“X”符号即可,该点通常是对删除或 取消消息的回应。
顺序图
范例3
图书管理员处理借书的顺序图 (不包括预留书籍的情况)
顺序图
范例3
系统管理员删除书目的顺序图
顺序图
范例3
借阅者预留书籍的顺序图
W eb Application theTitle : Title
theBorrower : Borrower 1: Login
2: find(String)
顺序图
顺序图建模技术