第04章 顺序图和协作图

合集下载

软件工程---交互建模之交互图,顺序图与协作图

软件工程---交互建模之交互图,顺序图与协作图

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):
每个对象都有自己的生命线,用来表示在该用例中一个对象在一段时 间内的存在
垂直的虚线 如果对象生命期结束, 则用注销符号表示 对象默认的位置在图 顶部,表示对象在交互 之前已经存在 如果是在交互过程中 由另外的对象所创建, 则位于图的中间某处。
顺序图
面向时间描述对象交互的图
协作图

第4章 顺序图和协作图

第4章 顺序图和协作图

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

UML中的协作图和顺序图的区别与实践应用

UML中的协作图和顺序图的区别与实践应用

UML中的协作图和顺序图的区别与实践应用在软件开发过程中,UML(统一建模语言)是一种常用的工具,它用于描述和设计软件系统的结构和行为。

UML中有多种类型的图表,其中协作图和顺序图是两种常见的用于描述系统交互的图表。

虽然它们都可以用于描述系统的交互行为,但协作图和顺序图在表达方式、重点和实践应用上存在一些区别。

首先,协作图主要用于描述系统中的对象之间的协作关系。

它通过展示对象之间的交互和消息传递来揭示系统的结构和行为。

协作图强调对象之间的合作,通过展示对象之间的关联、消息和角色来描述系统的动态行为。

协作图通常以对象为中心,通过展示对象之间的交互来描述系统的运行过程。

与之相反,顺序图主要用于描述系统中的对象之间的时序关系。

它通过展示对象之间的消息传递顺序来揭示系统的行为和交互。

顺序图强调对象之间的时序关系,通过展示消息在对象之间的传递顺序和时序关系来描述系统的运行过程。

顺序图通常以时间为轴,通过展示对象之间的消息传递顺序来描述系统的执行流程。

在实践应用方面,协作图常用于分析和设计系统的结构和行为。

它可以帮助开发人员理解系统中对象之间的交互关系,从而提供系统设计的基础。

协作图可以用于描述系统的静态结构,例如对象之间的关联关系和角色。

同时,它也可以用于描述系统的动态行为,例如对象之间的消息传递和交互流程。

通过使用协作图,开发人员可以更好地理解系统的整体结构和行为,从而更好地进行系统设计和开发。

而顺序图则常用于描述系统的执行流程和时序关系。

它可以帮助开发人员理解系统中对象之间的消息传递顺序和时序关系,从而提供系统设计和实现的指导。

顺序图可以用于描述系统的执行流程,例如对象之间的消息传递顺序和执行顺序。

同时,它也可以用于描述系统的时序关系,例如对象之间的时序关系和时序约束。

通过使用顺序图,开发人员可以更好地理解系统的执行流程和时序关系,从而更好地进行系统设计和实现。

在实际应用中,协作图和顺序图常常结合使用。

§5 顺序图和协作图

§5 顺序图和协作图

5、消息
• 消息定义的是对象之间某种形式的通信, 它可以激发某个操作、唤起信号或导致 目标对象的创建或撤销。 • 消息是两个对象之间的单路通信,从发 送方到接收方的控制信息流。 • 消息可以用于在对象间传递参数。 • 消息可以是信号,也可以是调用。 • 在UML中,消息使用箭头来表示,箭头 的类型表示了消息的类型。
显示对象名和类名
只显示类名 图4.1 顺序图中对象的命名方式
只显示对象名
第一种命名方式包括对象名和类名; 第二种只显示类名,即表示这是一个匿名对象; 第三种只显示对象名而不显示类名,即不关心这个对象属 于哪个类。
3、 生命线
• 生命线是一条垂直的虚线,表示顺序图 中的对象在一段时间内的存在。每个对 象的底部中心的位置都带有生命线。 • 生命线是一个时间线,从顺序图的顶部 一直延伸到底部,所用的时间取决于交 互持续的时间。 • 对象与生命线结合在一起称为对象的生 命线,对象的生命线包含矩形的对象图 标以及图标下面的生命线。
• 协作图中的消息类型与顺序图中的相同, 只不过为了说明交互过程中消息的时间 顺序,需要给消息添加顺序号。 • 顺序号是消息的一个数字前缀,是一个 整数,由1开始递增,每个消息都必须由 唯一的顺序所用的 符号是一样的,即一条连接两个类角色 的实线。 • 为了说明一个对象如何与另一个对象连 接,可以在链的末路上附上一个路径构 造型。
: 顾顾
: 售售售UI
: 金金计计金
: 计计退UI
1: 取取取取( ) 3: 计计( ) 4: 送送送计( ) 2: 计计计计( )
4.3 顺序图中的消息 消息是顺序图中的一个重要概念。 4.3.1 调用消息(procedure call)/同步消息(synchronous) 调用消息的发送者把控制传递给消息的接收者,然后停止 活动,等待消息接收者放弃或返回控制。即指示在消息完成之 前,以及该消息发送的任何消息完成之前,工作流被中断。 调用消息用实线和实心箭头表示。

第04章 顺序图和协作图

第04章 顺序图和协作图
面向对象分析与设计 & UML
协作图主要元素


监护条件:通常是用来表示分支的,也就是表示“如果
条件为true,才发送消息”
在通信图中使用监护条件一定要有所限制,通常应只列 出主要的监护条件,否则会影响其阅读。如果需要,尽 可能还是通过顺序图来表示
4.3 顺序图中的消息
UML1.4后定义的消息有:
调用消息 procedure call 异步消息 asynchronous 返回消息 return
UML1.3前的消息还有:
简单消息 simple
6
面向对象分析与设计 & UML
4.3 顺序图中的消息
调用消息:消息的发送者把控制传递给消息的接收者 , 等待接收者返回或放弃控制.
生命线是对象图标向下延伸的虚线, 表示对象生存时间.
消亡点
4
面向对象分析与设计 & UML
4.2 顺序图
控制焦点(Focus of Control)又称为激活期(Activation), 用 生命线上的小矩形表示, 在这个时间段内, 对象执行相 应的操作.
FOC嵌套
5 面向对象分析与设计 & UML
返回消息:表示从过程调用返回. 如果是过程消息返 回, 则不用画出
返回消息
9
面向对象分析与设计 & UML
4.3 顺序图中的消息
消息的语法格式
[前置消息列表][警戒条件][消息顺序号][返回值:=]消息名称([参数列表])
例子:
2:display(x,y) 1.3.1 p:= find(specs) [x<0] 4: invert(x, color) 3.1 *: update() 简单消息 嵌套消息, 有返回值 条件消息 循环消息

UML顺序图和协作图

UML顺序图和协作图

练习: 比较顺序图与协作图
在这个练习中,将通过对ATM机取款用例的行为 描述,比较顺序图与协作图。例如,客户Joe从ATM机 提取20美金的场景。
协作图的建模方法
协作图的建模有3个基本的步骤:
1)确定属于协作图的元素。 2)建模这些元素之间的结构关系。 3)建模实例层的协作图。
建模分数记录系统的协作图。具体用例是Teacher使用 Website登录并且查看学生的分数。
协作图的符号(续)
3.消息 消息是协作图中对象与对象之间通信的方式。消息在协 作图中显示为一个伴随链接或者关联角色的文本字符串,并 带有一个箭头来指示消息沿着关系传递的方向,如下图所示。
Message :Object1 :Object2
协作图的符号(续)
消息还可传递变量或者参数 下例说明了对象Teacher 如何把消息AssignGrade传递 给对象Student,它使用了参数 Class、Assignment和 Grade,如下图所示。
每个对象的生命线都是一条从对象向下的虚线。表 示对象的存在时间。
顺序图的符号(续)
激活 在生命线上的窄矩形条被称为激活 (activation).激活表示该对象正在执行某 个操作。激活矩形的长度表示出激活的持续 时间.
顺序图的符号(续)
• 消息 消息用来说明顺序图中不同活动对象之间的通信。它可在 一个对象需要取消不同对象的进程时或者需要向另一个对象提 供服务时,使用消息。 消息从活动对象生命线到接收对象生命线的箭头表示。箭 头上面标记要发送的消息,如下图所示。
第1个工作流
顺序图的建模方法(续)
顺序图的建模方法(续)
接下来以独立的顺序图建模从属工作流。此处只建模否定的 条件,如下图所示。

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

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

创建消息:创建一个对象,箭头需要指到所建立的 对象上面。 销毁消息:销毁一个对象,对象生命线用差号来表 示销毁,表示被销毁对象的生命周期将到此终结。
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顺序图和协作图
模块。 5)客户管理模块向事务管理模块请求确认密码的合法性。 6)事务管理模块向客户管理模块确认密码的合法性。 7)客户管理模块通过显示屏向客户显示输入服务类别请求。 8)客户通过输入设备输入取款请求,并传递给客户管理模块。 9)客户管理模块通过显示设备询问客户取款数额。 10)客户通过输入设备输入取款数额,并传递给客户管理模块。 11)客户管理模块通过显示设备向客户询问取款确认。 12)客户通过输入设备向客户管理模块传递确认信息。 13)客户管理模块向事务管理模块请求数额合法性确认。 14)事务管理模块向客户管理模块确认数额合法性。 15)事务管理模块向点钞机发出出钞请求。 16)点钞机出钞。 17)客户取钞。 18)客户取出ATM卡(银行卡)。
对上述步骤建模的顺序图如下:
: 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
场景描述
曹操 :刘备
:孔明
求战 请拟策略
:关羽
:张飞 孙权
请防守荆州

顺序图和协作图

顺序图和协作图

顺序图和协作图第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个对象:客户、预定请求、工作人员、工作记录和汽车。

UML课件4-顺序图与协作图资料

UML课件4-顺序图与协作图资料

1.3.2. //add(sl)
ProductSpecification spec=
productCatalog.getSpecification(upc);
sale.makeLineItem(spec,qty);
}
//1.1创建Sale实例 1.2.1. //find(upc)
if (isNewSale()) {
4.2.5 消息
自调用(Self Call)
某对象自己调用自己的操作 UML标记 (嵌套的矩形条)
Rose标记
4.2.5 消息
Rose新增消息
阻止(Balking) 接收者如果无法立即接收消息,则发送者放弃该消息
超时(Time-out) 如果接收者无法在指定的时间内接收消息,则发送者放 弃该消息
11条件子句条件子句一般用来表示分枝而不是用作守卫条件x0是两个可以用来分枝的条件子句这两个条件只能有一个为真因而只有一个分枝被执行即发送与分枝有关的消息序列表达式用冒号结束形体分析方法是贯穿于一切工程图绘制阅读及尺寸标注全过程的基本思维方法目的就是为了便于准确地理解组合体的形状及结构
第4章 顺序图与协作图
顺序图中消息编号可显示,也可不显示。 协作图中必须显示。
4.2.5 消息
UML三种消息:
调用(Procedure Call) 异步(Asynchronous) 返回(Return)
Rose扩充:
阻止(Balking) 超时(Time-out)
4.2.5 消息
UML三种消息:
调用(Procedure Call) 发送者把消息发送后,等待直到接收者返回控制, 可以表示同步; 实心箭头符号
结构化程序设计中,模块间传递信息的方式主 要是过程(或函数)调用。

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、协作图与顺序图的区别和联系协作图和顺序图都表示出了对象间的交互作用,但是它们侧重点不同顺序图清楚地表示了交互作用中的时间顺序(强调时间),但没有明确表示对象间的关系。

面向对象技术-04顺序图和协作图

面向对象技术-04顺序图和协作图

Oper()
4.3 顺序图中的消息
4.3.6 消息的语法格式 超时消息是指消息发送者发出消息给接收者并按指定时间等 如果接收者无法在指定时间内接收消息, 待。如果接收者无法在指定时间内接收消息,则发送者放弃这 个消息。 个消息。
4.4 建立顺序图的步骤
1.确定交互过程的上下文(context)。 1.确定交互过程的上下文(context)。 确定交互过程的上下文 2.识别参与交互过程的对象 识别参与交互过程的对象。 2.识别参与交互过程的对象。 3.为每个对象设置生命线 为每个对象设置生命线, 3.为每个对象设置生命线,即确定哪些对象存在于整个交 互过程中,哪些对象在交互过程中被创建和撤销。 互过程中,哪些对象在交互过程中被创建和撤销。 4.从引发这个交互过程的初始消息开始 从引发这个交互过程的初始消息开始, 4.从引发这个交互过程的初始消息开始,在生命线之间自 顶向下依次画出随后的各个消息。 顶向下依次画出随后的各个消息。 5.如果需要表示消息的嵌套,或/和表示消息发生时的时 5.如果需要表示消息的嵌套, 如果需要表示消息的嵌套 间点,则采用控制焦点。 间点,则采用控制焦点。 6.如果需要说明时间约束 则在消息旁边加上约束说明。 如果需要说明时间约束, 6.如果需要说明时间约束,则在消息旁边加上约束说明。 约束是UML UML的 种扩展机制之一) (约束是UML的3种扩展机制之一)。 7.如果需要 可以为每个消息附上前置条件和后置条件。 如果需要, 7.如果需要,可以为每个消息附上前置条件和后置条件。
42顺序图生命线lifeline顺序图中对象的命名方式主要有3种协作图中的对象命名方式也一样42顺序图顺序图中对象的命名方式主要有3种协作图中的对象命名方式也一样只显示对象名不显示类名不关心属于哪个类42顺序图oopsla95driver生命线在顺序图中表示为从对象图标向下延伸的一条虚线表示对象存在的时间42顺序图控制焦点是顺序图中表示时间段的符号在这个时间段内对象将执行相应的操作
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
19 面向对象分析与设计 & UML
简单消息 嵌套消息, 有返回值 条件消息 循环消息 线程间同步
4.3 顺序图中的消息
顺序图的其它技术
1.创建对象 创建对象的标记符如下图中的示例所示。有一个主要步骤 用来把“create” 消息发送给对象实例。对象创建之后就会具有 生命线,就像顺序图中的任何其他对象一样。现在可以像顺序 图中的其他对象那样来使用该对象发送和接收消息。在处理新 创建的对象,或者处理顺序图中的任何其他对象时,都可以发 送“destroys”消息来删除对象。 若要想说明某个对象被销毁, 需要在被销毁对象的生命线上放一个X字符。
在协作图中,多对象指的是由多个对象组成的对象集合, 一般这些对象是属于同一类的。当需要把消息同时发送给多 个对象而不是单个对象时,就要用多对象这个概念。多对象 用多个方框的重叠表示。
ObjectName:ClassName
41
面向对象分析与设计 & UML
4.5 协作图
多对象的例子
一个对象可能会向同一类的多个对象同时发送一个消息, 例如,老师会让多个学生同时交作业。在多对象前面可以加上 用方括号括起来的条件,前面加一个星号,用来说明消息发送 给多个对象,如下图所示。
简单消息:如果所有的消息都是同步或者异步消息, 那么为什么还要简单消息呢?因为有时候我们不关 心消息是同步还是异步,此外在高层分析中,有时 候没有必要指定一个消息是同步的还是异步的。如 下面的示例所示。
15
面向对象分析与设计 & UML
4.3 顺序图中的消息
16
面向对象分析与设计 & UML
4.3 顺序图中的消息
第3个工作流
37
面向对象分析与设计 & UML
4.4 建立顺序图的步骤
4)绘制总图
建模顺序图的最后一步是把所有独立的工作流连 接为一个总图,如下图所示。 在此阶段,如果觉得前面的消息和交互对于当前 的顺序图过于详细,可以让它们更加泛化一些,但是 在软件建模的下一个阶段,就会觉得初始的各个顺序 图越详细越好。
38
面向对象分析与设计 & UML
4.4 建立顺序图的步骤
39
面向对象分析与设计 & UML
4.5 协作图
协作图是用于描述系统的行为是如何由系统成分协作 实现的图. 协作图中的元素:
对象object 链 link 消息 message
40
面向对象分析与设计 & UML
4.5 协作图
1.对象 对象这个概念前面已经多次提到,这里主要强 调多对象和主动对象。 >>多对象
对象/参与者 对象维 顺序图有 四个主要的标 记符: • 活动对象 • 生命线 • 控制焦点 • 消息
生命线 消息 控制焦点
面向对象分析与设计 & UML
时间维
3
4.2 顺序图
活动对象
活动对象可以是系统的参与者或者任何有效的系统对象。 对象是类的实例,它使用包围名称的矩形框来标记。名称带 下划线,顺序图中对象的标记符如下图所示。
异步消息:消息的发送者把控制传递给消息的接收者, 然后继续自己的工作,不等待接收者返回或放弃控制.
UML1.3及以前
UML1.4及以后
13
面向对象分析与设计 & UML
4.3 顺序图中的消息
下面示例演示了如何在登录文件的情况下使用异步消息。
14
面向对象分析与设计 & UML
4.3 顺序图中的消息
交互图包括: (1) 顺序图(sequence diagram), 描述对象按照时间顺序的消息交换; (2) 协作图(collaboration diagram), 描述系统成分如何协同工作.
2 面向对象分析与设计 & UML
4.2 顺序图
Rumbaugh的定义: 顺序图是显示对象之间交互的图, 这些对 象是按时间顺序排列的. 它显示参与交互的对象及对象之间 消息交互的顺序.它体现出系统用例的行为。
18
面向对象分析与设计 & UML
4.3 顺序图中的消息
消息的语法格式
[前置消息列表][警戒条件][消息顺序号][返回值:=]消息名称([参数列表])
例子:
2:display(x,y) 1.3.1 p:= find(specs) [x<0] 4: invert(x, color) 3.1 *: update() A3, B4/ C2: copy(a, b)
42
面向对象分析与设计 & UML
4.5 协作图
>>主动对象 主动对象是一组属性和一组方法的封装体,其中至少有一 个方法不需要接受消息就能主动执行(称做主动方法)。也 就是说,主动对象可以在不接受外部消息的情况下自己开始 一个控制流。在协作图中,主动对象的表示法除了矩形框边 界要加黑加重外,其他方面与一般对象的表示法相同。
8
面向对象分析与设计 & UML
4.3 顺序图中的消息
>>消息的限定
消息可以包含条件以便限 制它们只在满足条件时才能发 送。条件显示在消息名称上面 的方括号中。 右图示例演示了如何建立 一个顺序图来显示登录尝试。 如果登录失败,会在放弃登录 之前重试一次,如下图所示。
9
面向对象分析与设计 & UML
第1个工作流
34 面向对象分析与设计 & UML
4.4 建立顺序图的步骤
35
面向对象分析与设计 & UML
4.4 建立顺序图的步骤
接下来以独立的顺序图建模从属工作流。此处只建模否定的条 件,如下图所示。
第2个工作流
36
面向对象分析与设计 &注意使用条件来指示在什么时候发送什么消息,如下图所示。
27
面向对象分析与设计 & UML
4.3 顺序图中的消息
练习:阅读一个顺序图
阅读下图所示的顺序图,该图说明了开发者编译应用程序 的步骤。在阅读顺序图时,请指出我们到目前为止已经学习过 的标记符组件。 练习步骤 1)指出顺序图中的参与者和对象。 2)指出出错处理发生的位置。 3)按照控制流的顺序指出各个消息。
返回消息:表示从过程调用返回. 如果是过程消息返 回, 则不用画出; 如果是非过程消息, 则必须画出.
返回消息
17
面向对象分析与设计 & UML
4.3 顺序图中的消息
阻止消息:消息的发送者传递消息给接收者, 如果接 收者无法立即接收, 则发送者放弃该消息. 超时消息:消息的发送者发出消息给接收者并按指定 时间等待, 若接收者无法在指定时间内接收, 则发送者 放弃该消息.
20
面向对象分析与设计 & UML
4.3 顺序图中的消息
顺序图的其它技术
创建对象
21 面向对象分析与设计 & UML
4.3 顺序图中的消息
顺序图的其它技术
22
面向对象分析与设计 & UML
4.3 顺序图中的消息
2.分支和从属流
有两种方式来修改顺序图的控制流:使用分支和 使用从属流。这两种方式很相似,各自的标记符略微 不同。控制流的改变是由于不同的条件导致控制流走 向不同的道路。
23
面向对象分析与设计 & UML
4.3 顺序图中的消息
分支允许控制流走向不同的对象,如下图所示。
24
面向对象分析与设计 & UML
4.3 顺序图中的消息
注意消息的开始位置是相同的,分支消息的结束“高度” 也是相等的。这说明在下一步中,其中之一将会执行,如下图 所示。
25
面向对象分析与设计 & UML
4.3 顺序图中的消息
从属流还允许控制流根据条件改变,但是只允许控制流改变为相 同对象的另一条生命线分支,如下图所示。
26
面向对象分析与设计 & UML
4.3 顺序图中的消息
在下面的示例中,Editor在用户删除文件或者保存文件时向 Filesystem发送一条消息。显然,Filesystem将会执行两种完全 不同的活动,并且每一个工作流都需要独立的生命线,如下图 所示。
31 面向对象分析与设计 & UML
4.4 建立顺序图的步骤
1)确定工作流
建模顺序图的第一步是确定将要建模的工作流。对于这个练 习,我们将要建模Grading system的View Grades用例。为此, 需要至少标识出3个要建模的工作流: >>教师成功地检查学生分数 >>教师试图检查某个学生分数,但该学生在系统中不存在。 >>教师试图检查某个学生分数,但该学生分数在系统中不存在。
4.4 建立顺序图的步骤
确定交互过程的上下文 识别参与交互过程的对象 为每个对象设置生命线 从引发这个交互过程的初始消息开始, 在生命线之 间自顶向下依次画出随后的各个消息. 5. 如果需要嵌套或(和)表示消息发生的时间点, 使用 FOC. 6. 如果需要说明时间约束, 则在消息旁边加上约束说 明. 7. 如果需要, 可以为每个消息设置前置条件和后置条 件. 1. 2. 3. 4.
28
面向对象分析与设计 & UML
4.3 顺序图中的消息
29
面向对象分析与设计 & UML
4.4 建立顺序图的步骤
创建顺序图包含4项任务:
1)确定需要建模的工作流。 2)从左到右布置对象。 3)添加消息和条件以便创建每一个工作流。 4)绘制总图以便连接各个分图。
30
面向对象分析与设计 & UML
4.3 顺序图中的消息
UML1.4后定义的消息有:
调用消息 procedure call 异步消息 asynchronous 返回消息 return
相关文档
最新文档