收藏 分销(赏)

第6-顺序图和协作图.pptx

上传人:w****g 文档编号:4232035 上传时间:2024-08-27 格式:PPTX 页数:46 大小:371.90KB 下载积分:12 金币
下载 相关 举报
第6-顺序图和协作图.pptx_第1页
第1页 / 共46页
第6-顺序图和协作图.pptx_第2页
第2页 / 共46页


点击查看更多>>
资源描述
第6章 顺序图和协作图 顺序图(顺序图(Sequence Diagram)和协作图)和协作图(Communication Diagram)统称交互图,用来)统称交互图,用来描述系统中多个对象之间的相互关系及对象间消息描述系统中多个对象之间的相互关系及对象间消息传递,用于对系统中多个对象的相互作用的过程进传递,用于对系统中多个对象的相互作用的过程进行建模行建模。在面向对象分析过程中,可以使用顺序图来描述完在面向对象分析过程中,可以使用顺序图来描述完成一个用例的过程,使用协作图来分析系统中的对成一个用例的过程,使用协作图来分析系统中的对象和对象之间传递的消息。象和对象之间传递的消息。6.1 顺序图概述 顺序图的主要用途之一是用来为某个用例的泛化顺序图的主要用途之一是用来为某个用例的泛化功能提供其所缺乏的解释,即把用例表达的需求,功能提供其所缺乏的解释,即把用例表达的需求,转化为进一步、更加正式层次的精细表达。转化为进一步、更加正式层次的精细表达。顺序图描述了对象之间传递消息的时间顺序,用顺序图描述了对象之间传递消息的时间顺序,用来表示用例中行为顺序。用例常常被细化为一个来表示用例中行为顺序。用例常常被细化为一个或多个的顺序图。或多个的顺序图。顺序图用一个二维图描述系统中各个对象之间的交顺序图用一个二维图描述系统中各个对象之间的交互关系。互关系。主要由四个标记符组成:对象、生命线、主要由四个标记符组成:对象、生命线、消息和激活。消息和激活。6.1 顺序图概述 在顺序图中参加交互的各个对象沿横轴排列,发在顺序图中参加交互的各个对象沿横轴排列,发起交互的对象通常放在左边,其他对象依次放在起交互的对象通常放在左边,其他对象依次放在右边。这些对象发送和接收的消息沿纵轴方向右边。这些对象发送和接收的消息沿纵轴方向按按时间顺序时间顺序从上到下放置。该在顺序图中纵轴为从上到下放置。该在顺序图中纵轴为时时间轴间轴。顺序图清晰地描述了系统随时间推移的控制流轨顺序图清晰地描述了系统随时间推移的控制流轨迹。迹。图中每个对象在单独的一列中,每个对象符图中每个对象在单独的一列中,每个对象符号放置在代表生成对象消息的箭头末端,其垂直号放置在代表生成对象消息的箭头末端,其垂直位置表示该对象第一次生成的时间。位置表示该对象第一次生成的时间。6.2 顺序图元素 顺序图描述了对象以及对象之间传递的消息,强顺序图描述了对象以及对象之间传递的消息,强调对象之间的交互是按照时间的先后顺序发生的,调对象之间的交互是按照时间的先后顺序发生的,这些特定顺序发生的交互序列从开始到结束需要这些特定顺序发生的交互序列从开始到结束需要一定的时间。一定的时间。在顺序图中主要包括了以下四种元在顺序图中主要包括了以下四种元素:素:对象对象生命线生命线激活激活消息消息6.2 顺序图元素 类定义了对象可执行的各种行为,但在面向对象类定义了对象可执行的各种行为,但在面向对象系统中,行为的执行者是对象,而不是类,因此系统中,行为的执行者是对象,而不是类,因此在顺序图中通常描述的是对象层次而不是类层次在顺序图中通常描述的是对象层次而不是类层次。面向对象分析中最基本的单位是对象,它代表现面向对象分析中最基本的单位是对象,它代表现实世界中一个一个地具体事物。实世界中一个一个地具体事物。在顺序图中使用一个方框表示在顺序图中使用一个方框表示一个对象,对象的名字下面有一一个对象,对象的名字下面有一个下划线,一个学生对象个下划线,一个学生对象“张三张三”如图所示。如图所示。6.2.1 对象对象 张三6.2 顺序图元素 在顺序图中也可以使用用例图中的在顺序图中也可以使用用例图中的参与者图符参与者图符。如果一个对象在顺序图的第一个操作之前就已经如果一个对象在顺序图的第一个操作之前就已经存在,那么该对象的图符就应该存在,那么该对象的图符就应该画在顺序图的顶画在顺序图的顶部部。如果一个对象是在顺序图的交互过程中,由其他如果一个对象是在顺序图的交互过程中,由其他对象创建的,那么该对象就不应该出现在顺序图对象创建的,那么该对象就不应该出现在顺序图的顶端,而应该的顶端,而应该出现在创建该对象消息的末端出现在创建该对象消息的末端。6.2 顺序图元素 对象在垂直方向拖出的虚线是对象的生命线,用对象在垂直方向拖出的虚线是对象的生命线,用于表示对象是存在的时间范围。于表示对象是存在的时间范围。对象的生命线是一个时间线,从顺序图的顶部一对象的生命线是一个时间线,从顺序图的顶部一直延续到顺序图的底部,所用的长度取决于交互直延续到顺序图的底部,所用的长度取决于交互的维持长度。的维持长度。6.2.2 生命线生命线 6.2 顺序图元素 对象生命线上的窄矩形条被称为激活,激活表示对象生命线上的窄矩形条被称为激活,激活表示该对象正在执行某个操作该对象正在执行某个操作,图符如图所示。激活,图符如图所示。激活条的长短表示执行操作的时间。一个被激活的对条的长短表示执行操作的时间。一个被激活的对象要么执行自己的代码,要么等待另一个对象的象要么执行自己的代码,要么等待另一个对象的返回结果。返回结果。6.2.3 激活激活 6.2 顺序图元素 激活在顺序图中不能够单独存在必须与生命线连激活在顺序图中不能够单独存在必须与生命线连在一起使用在一起使用,当一条消息被传递给对象的时候,当一条消息被传递给对象的时候,该消息将触发该对象的某个行为,此时该对象就该消息将触发该对象的某个行为,此时该对象就被激活了。被激活了。通常情况下,通常情况下,表示激活的矩形的顶点是消息和生表示激活的矩形的顶点是消息和生命线交汇的地方,表示对象从此时起开始获得控命线交汇的地方,表示对象从此时起开始获得控制权,而矩形的底部则表示该次交互已经结束,制权,而矩形的底部则表示该次交互已经结束,或对象的已经交控制权交出或对象的已经交控制权交出。6.2 顺序图元素 在顺序图中,对象都不是孤立存在的,这些对象在顺序图中,对象都不是孤立存在的,这些对象之间是通过消息进行通讯。之间是通过消息进行通讯。对象通过相互传递消对象通过相互传递消息来进行相互作用。使用消息是用来说明顺序图息来进行相互作用。使用消息是用来说明顺序图中不同活动对象之间的通信过程。一个消息可以中不同活动对象之间的通信过程。一个消息可以激发一个对象的某个操作,完成一定的功能。激发一个对象的某个操作,完成一定的功能。6.2.4 消息消息 顺序图中,顺序图中,消息由从一个对象的生命线指向另一消息由从一个对象的生命线指向另一个对象的生命线的直线箭头表示,箭头上标注要个对象的生命线的直线箭头表示,箭头上标注要发送的消息名。发送的消息名。在消息的起点隐含着发送事件,在消息的起点隐含着发送事件,消息的终点隐含着接收事件消息的终点隐含着接收事件。6.2 顺序图元素 在顺序图中消息的次序是由它们在垂直轴上的位在顺序图中消息的次序是由它们在垂直轴上的位置来决定的置来决定的,在垂直轴上靠上的消息先发送,靠,在垂直轴上靠上的消息先发送,靠下的消息后发送。下的消息后发送。在在UML中,中,消息的发送方和消息的接收方可以是消息的发送方和消息的接收方可以是同一个对象同一个对象。也就是说,对象也可以将消息发送。也就是说,对象也可以将消息发送给自己本身,也就是自己给自己发送消息给自己本身,也就是自己给自己发送消息 在在UML中,每一条消息可以带有一个名称说明,中,每一条消息可以带有一个名称说明,可以带参数。可以带参数。消息还可以包含条件以限制它们只消息还可以包含条件以限制它们只在满足条件时才能被发送。条件标注在消息的名在满足条件时才能被发送。条件标注在消息的名称上的方括号中。称上的方括号中。6.2 顺序图元素 从消息和消息端的元模型可以得知,消息包含了从消息和消息端的元模型可以得知,消息包含了消息种类(消息种类(message kind)和和消息性质消息性质(message sort)两个属性。两个属性。消息中包括四种消息种类:消息中包括四种消息种类:完完整整消消息息(complete message):一一般般常常见见的的消消息息都都是是完完整整消消息息,该该消消息息的的发发送送事事件件和和接接受受事事件件都是存在的。都是存在的。迷迷途途消消息息(lost message):只只有有发发送送事事件件,但但没没有有接接收收事事件件的的消消息息称称为为迷迷途途消消息息,对对于于迷迷途途消消息息,在在表表示示时时需需要要在在消消息息的的箭箭头头端端加加上上一一个个实实心心的小圆。的小圆。6.2 顺序图元素 寻寻获获消消息息(found message):缺缺少少了了发发送送事事件件,只只有有接接收收事事件件的的消消息息称称为为寻寻获获消消息息。对对于于寻寻获获消消息息,在在表表示示时时需需要要在在消消息息的的非非箭箭头头端端加加上上一一个个实实心的小圆。心的小圆。未未知知消消息息(unknown message):既既没没有有发发送送事事件件,也也没没有有接接收收事事件件的的消消息息称称为为未未知知消消息息。对对于于未未知知消消息息,UML中中也也没没有有详详细细说说明明这这种种消消息息,也也许这个消息在实际应用时并不真实存在。许这个消息在实际应用时并不真实存在。6.2 顺序图元素 根据通信性质的不同根据通信性质的不同,UML中定义了几种消息的中定义了几种消息的性质。在性质。在UML 2.0规格书中,定义了规格书中,定义了四种四种消息性消息性质,在质,在UML 2.1.1中,消息性质从原来的四种变中,消息性质从原来的四种变为了为了六种六种,这是,这是UML中变化比较大的部分。中变化比较大的部分。创创建建消消息息(createMessage):用用来来创创建建对对象象的的消消息息,称称为为创创建建消消息息。它它的的图图符符是是带带开开放放性性箭箭头头的虚线,箭头的指向目标对象,如下图所示。的虚线,箭头的指向目标对象,如下图所示。6.2 顺序图元素 同步调用(同步调用(synchCall):):同步调用消息代表一个同步调用消息代表一个操作调用的控制流。同步调用消息的发送方把控操作调用的控制流。同步调用消息的发送方把控制传递给消息的接收者,然后暂停活动,等待消制传递给消息的接收者,然后暂停活动,等待消息接受者的应答,收到应答后才继续自己的操作。息接受者的应答,收到应答后才继续自己的操作。同步调用消息被水平的置于对象的生命线之间,同步调用消息被水平的置于对象的生命线之间,水平放置的方式说明消息的传递是瞬时的,即消水平放置的方式说明消息的传递是瞬时的,即消息在发出之后会马上被收到。它的图符是带实心息在发出之后会马上被收到。它的图符是带实心箭头的实现,如下图所示。箭头的实现,如下图所示。6.2 顺序图元素 回复消息(回复消息(reply message):):目标对象执行结束目标对象执行结束时,会发出回复消息给来源对象。它的图符是带时,会发出回复消息给来源对象。它的图符是带开放式箭头的虚线,从负责执行的目标对象反向开放式箭头的虚线,从负责执行的目标对象反向指回给来源对象,如下图所示。指回给来源对象,如下图所示。异步调用(异步调用(asynchCall):):异步调用消息表示消异步调用消息表示消息的发送对象不用等待消息接收对象回应的返回息的发送对象不用等待消息接收对象回应的返回消息,即可以开始另一个活动。异步调用消息在消息,即可以开始另一个活动。异步调用消息在某种程度上规定了发送方和接收方的责任,即发某种程度上规定了发送方和接收方的责任,即发送方只负责将消息发送到接收方,至于接收方如送方只负责将消息发送到接收方,至于接收方如何响应,发送方则不需要知道。何响应,发送方则不需要知道。6.2 顺序图元素 最常见的实现异步消息的方式是使用线程。最常见的实现异步消息的方式是使用线程。当系当系统发送异步消息时,需要启动一个线程在后台运统发送异步消息时,需要启动一个线程在后台运行。异步调用的图符如下图所示。行。异步调用的图符如下图所示。异步信号(异步信号(asynchSignal):):同步信号消息和异同步信号消息和异步信号消息的区别在于,消息发送对象是否等待步信号消息的区别在于,消息发送对象是否等待目标执行结束才继续往下执行。异步信号消息类目标执行结束才继续往下执行。异步信号消息类似于最常用的简单消息,一般情况下,如果不必似于最常用的简单消息,一般情况下,如果不必强调消息的性质,则可以使用异步信号消息代表强调消息的性质,则可以使用异步信号消息代表其他性质的消息。它的图符如下图所示。其他性质的消息。它的图符如下图所示。6.4 顺序图理解 下图给出了一个图书超期检查系统的顺序图示例,下图给出了一个图书超期检查系统的顺序图示例,用来描述图书馆中图书超期检查的过程。参与图用来描述图书馆中图书超期检查的过程。参与图书检查的对象有四个:书检查的对象有四个:系统、图书、读者及通知系统、图书、读者及通知单单。PrintNotice()CheckAllBooks()CheckTimeExceding()GetBookInformations()GetReaderInformations()Create()系统图书读者通知单6.4 顺序图理解 对象对象“系统系统”是图书管理系统中的一个控制程序,是图书管理系统中的一个控制程序,它负责定期检查是否有超期图书;它负责定期检查是否有超期图书;“图书图书”对象对象是图书馆中的每一本具体的图书;是图书馆中的每一本具体的图书;“读者读者”对象对象是借阅图书的某个具体的读者;是借阅图书的某个具体的读者;“通知单通知单”对象对象是一个具体的超期通知单。是一个具体的超期通知单。通过图中对象的放置位置可以看出,对象通过图中对象的放置位置可以看出,对象“系统系统”、“图书图书”和和“读者读者”是在发送第一条消息前是在发送第一条消息前就存在的,而对象就存在的,而对象“通知单通知单”的位置没有在顺序的位置没有在顺序图的顶端,它是在消息发送的过程中,通过对象图的顶端,它是在消息发送的过程中,通过对象“系统系统”发送的发送的“Create”消息创建的。消息创建的。6.4 顺序图理解 上图描述的超期检查过程如下:上图描述的超期检查过程如下:第一步第一步,系统程序对象负责定期对所有外借图书,系统程序对象负责定期对所有外借图书进行超期检查,每次检查时首先发送消息进行超期检查,每次检查时首先发送消息“CheckAllBooks”,用来检查所有外借图书,获,用来检查所有外借图书,获取图书借阅时间和期限信息。取图书借阅时间和期限信息。第二步第二步,系统程序对象向对象,系统程序对象向对象“图书图书”发送消息发送消息“CheckTimeExceding”检测每一本外借图书是否检测每一本外借图书是否超期。超期。第三步第三步,系统程序对象向对象,系统程序对象向对象“图书图书”发送消息发送消息“GetBookInformations”来获取超期图书的信息。来获取超期图书的信息。6.4 顺序图理解 第四步第四步,系统程序对象向对象根据超期图书信息,系统程序对象向对象根据超期图书信息向相应的向相应的“读者读者”对象发送消息对象发送消息“GetReaderInformations”得到图书对象信息和得到图书对象信息和相应读者对象信息。相应读者对象信息。第五步第五步,系统程序对象负责发送一个,系统程序对象负责发送一个“Create”消息,创建一个新对象消息,创建一个新对象“通知单通知单”,通知单中记,通知单中记录超期图书和相应的读者信息。录超期图书和相应的读者信息。第六步第六步,系统程序对象负责向,系统程序对象负责向“通知单通知单”对象发对象发送一个消息送一个消息PrintNotice,打印出生成的通知单。,打印出生成的通知单。6.4 顺序图理解 在顺序图中的控制流并不是只能按照从上到下的在顺序图中的控制流并不是只能按照从上到下的顺序依次进行,控制流也可以进行修改,顺序依次进行,控制流也可以进行修改,条件分条件分支支就是其中一种。就是其中一种。6.4.1 条件分支条件分支 顺序图中的分支是使用带条件的消息来实现的,顺序图中的分支是使用带条件的消息来实现的,这个条件称为守卫条件。这个条件称为守卫条件。只有当条件为真的时候只有当条件为真的时候才可以发送和接收消息。如果所有分支上的守卫才可以发送和接收消息。如果所有分支上的守卫条件都是互斥的,那么就会有互斥的消息箭头,条件都是互斥的,那么就会有互斥的消息箭头,一次只能发送一条消息。如果多个分支上的条件一次只能发送一条消息。如果多个分支上的条件并不互斥,那么可以并行发送多条消息。并不互斥,那么可以并行发送多条消息。6.4 顺序图理解 条件条件打印机忙打印机忙和和打印机空闲打印机空闲是两个是两个互斥的条件互斥的条件,打印服务器根据条件来确定消息发给对象打印服务器根据条件来确定消息发给对象“打印打印机机”还是对象还是对象“打印队列打印队列”。两个消息都是从同。两个消息都是从同一点出发的,这一点出发的,这表示两个分支在同一时间点上只表示两个分支在同一时间点上只能执行一个分支。能执行一个分支。打印机忙打印机空闲打印文件打印队列计算机打印服务器打印机6.4 顺序图理解 从属流与条件分支不从属流与条件分支不同,从属流允许某一同,从属流允许某一个对象根据不同的条个对象根据不同的条件改变执行不同的操件改变执行不同的操作,即可以创建对象作,即可以创建对象的另一个生命线分支。的另一个生命线分支。6.4.2 从属流从属流 删除打印任务打印服务器打印队列添加打印任务 如图中所示,打印服务器会根据需要从打印队列如图中所示,打印服务器会根据需要从打印队列中删除打印任务或根据需要向打印队列中添加打中删除打印任务或根据需要向打印队列中添加打印任务。印任务。6.4 顺序图理解 顺序图中的消息通常都是水平的,表明消息的传顺序图中的消息通常都是水平的,表明消息的传递是瞬时的,也就是说在消息传递的过程中不会递是瞬时的,也就是说在消息传递的过程中不会发生其他的事件。发生其他的事件。但有些情况下,从一个对象到但有些情况下,从一个对象到另一个对象的消息可能存在一定的时间延迟,也另一个对象的消息可能存在一定的时间延迟,也就是说消息的传递不是瞬时完成的。对于这种带就是说消息的传递不是瞬时完成的。对于这种带有延迟的消息的表示,可以将消息的箭头向下倾有延迟的消息的表示,可以将消息的箭头向下倾斜斜 6.4.3 消息延迟消息延迟 6.4 顺序图理解 比较典型的消息延迟的例子就是电子邮件的应用,比较典型的消息延迟的例子就是电子邮件的应用,由于邮件服务器是外部对象,用户与邮件服务器由于邮件服务器是外部对象,用户与邮件服务器的相互通讯需要必要的网络延迟,因此可以把用的相互通讯需要必要的网络延迟,因此可以把用户和邮件服务器的连接和从邮件服务器下载邮件户和邮件服务器的连接和从邮件服务器下载邮件的活动表示为延迟消息的活动表示为延迟消息。返回邮件用户邮件服务器连接连接时间小于1秒6.4 顺序图理解 如果为了强调需要对多个对象重复发送某个消息,如果为了强调需要对多个对象重复发送某个消息,可以在顺序图中添加循环标识符号可以在顺序图中添加循环标识符号,顺序图中表,顺序图中表示循环执行的消息有三种方式。示循环执行的消息有三种方式。6.4.4 循环循环 第一种第一种,在需要循环重复执行的消息前添加符号在需要循环重复执行的消息前添加符号“*”,并在其后的中括号中写明具体的条件,并在其后的中括号中写明具体的条件。校验打印文件*for each filecheck()=true计算机打印服务器打印队列6.4 顺序图理解 第二种,第二种,在时间轴上注释表明消息的重复执行,在时间轴上注释表明消息的重复执行,使用大括号标明说明文字。如图所示,打印服务使用大括号标明说明文字。如图所示,打印服务器对象时间轴上大括号内标注重复执行的动作。器对象时间轴上大括号内标注重复执行的动作。校验打印文件对每个文件进行校验,直到全部校验合格计算机打印服务器打印队列6.4 顺序图理解 第三种,第三种,使用矩形框将需要重复执行的消息框起使用矩形框将需要重复执行的消息框起来,并在中括号内说明重复执行的条件,如图所来,并在中括号内说明重复执行的条件,如图所示。矩形框框内为需要重复执行的消息,矩形框示。矩形框框内为需要重复执行的消息,矩形框下中括号内是重复执行的条件。下中括号内是重复执行的条件。打印文件打印队列打印机打开文件读取时间信息打印时间信息直到队列最后一个文件读取打印完毕关闭文件删除队列中文件6.4 顺序图理解 在在UML 2.0中,为了帮助建模人员处理顺序图中中,为了帮助建模人员处理顺序图中需要更详细描述的细节,显示更加复杂的交互,需要更详细描述的细节,显示更加复杂的交互,创建更有结构化的顺序图,提供了创建更有结构化的顺序图,提供了顺序图片段顺序图片段。利用顺序图片段可以表示比较复杂的交互,例如利用顺序图片段可以表示比较复杂的交互,例如循环和迭代等等。循环和迭代等等。6.4.5 顺序图片段顺序图片段 顺序图片段被描述成顺序图中框起来一部分交互顺序图片段被描述成顺序图中框起来一部分交互的矩形。的矩形。顺序图片段矩形与顺序图中某部分交互顺序图片段矩形与顺序图中某部分交互重叠。顺序图片段中可以包含任意数目的交互,重叠。顺序图片段中可以包含任意数目的交互,甚至还可以包含嵌套片段。甚至还可以包含嵌套片段。顺序图片段矩形的左顺序图片段矩形的左上角包含一个运算符,以表明类型。上角包含一个运算符,以表明类型。6.4 顺序图理解片段类型参数作 用ref无分解大型的顺序图,类似于用例关系中的include。assert无指示包含在片段中的交互必须完全按照它们的指示发生,否则片段无效。loop有循环执行该片段内的交互,直到判断条件为假。这类似于程序设计语言中的循环语句break无当包含在break片段中的交互发生时,则退出任何一个交互。这类似于程序设计语言中的break语句。alt有根据判断条件,选择片段中的一个交互执行。类似于程序设计语言中的ifelse语句。opt有包含在此片段中的交互只有在判断条件为真时才执行。neg无不允许执行该片段中的交互,多用户异常处理。par无片段中的各个交互并行执行。顺序图片段顺序图片段 6.5 顺序图应用 在进行顺序图模型创建时,主要遵循以下步骤:在进行顺序图模型创建时,主要遵循以下步骤:确定用例的需求确定用例的需求找出需求中涉及的对象找出需求中涉及的对象找出对象间的消息的传递找出对象间的消息的传递构建顺序图构建顺序图 以以“图书超期检查图书超期检查”为例,介绍顺序图的设计过为例,介绍顺序图的设计过程,具体的过程见书。程,具体的过程见书。6.6 协作图概述 协作图与顺序图一样也是用于描述系统中协作图与顺序图一样也是用于描述系统中各对象的交互关系并展现对象间的消息传各对象的交互关系并展现对象间的消息传递,但两者侧重点不同,递,但两者侧重点不同,顺序图着重于交顺序图着重于交互的时间顺序,而协作图着重于描述协作互的时间顺序,而协作图着重于描述协作对象间的交互和连接对象间的交互和连接。还可以从另一个角度来看两种图的定义,还可以从另一个角度来看两种图的定义,顺序图是按照时间的顺序布图,而协作图顺序图是按照时间的顺序布图,而协作图是按照空间来布图。是按照空间来布图。6.7 协作图元素协作图中的主要建模元素包括:协作图中的主要建模元素包括:对象对象消息消息链链6.7 协作图元素 协作图中的对象是类图中类的实例,对象在对象协作图中的对象是类图中类的实例,对象在对象框中表示,通常不带属性定义部分。框中表示,通常不带属性定义部分。在在UML顺序顺序图和协助图中,对象可以使用三种图符来表示,图和协助图中,对象可以使用三种图符来表示,具体的对象表示方式如图所示。具体的对象表示方式如图所示。6.7.1 对象对象 对象名(A)对象名:类名(B):类名(C)6.7 协作图元素 协作图中,有时信号或操作是应用于一个对象集协作图中,有时信号或操作是应用于一个对象集而不是单一对象上,而不是单一对象上,UML提供表示这种对象集合提供表示这种对象集合的容器类的容器类“多对象多对象”。在协作图中,多对象指的在协作图中,多对象指的是由多个对象组成的对象集合,一般这些对象是是由多个对象组成的对象集合,一般这些对象是属于同一类的。多对象用多个方框重叠表示,图属于同一类的。多对象用多个方框重叠表示,图符如图所示。符如图所示。6.7.2 多对象多对象 单对象给多对象同时发送一个消息单对象给多对象同时发送一个消息时,需要在消息前面加一个星号,时,需要在消息前面加一个星号,并加上用方括号括起来的条件。并加上用方括号括起来的条件。对象6.7 协作图元素 在协作图中,在协作图中,主动对象是一组属性和方法的封装主动对象是一组属性和方法的封装体体,主动对象中至少有一个方法不需要接收消息,主动对象中至少有一个方法不需要接收消息就能主动执行。也就是说主动对象可以在不接受就能主动执行。也就是说主动对象可以在不接受外部消息的情况下自己开始一个控制流。外部消息的情况下自己开始一个控制流。6.7.3 主动对象主动对象 在协作图中,主动对象的图符于普在协作图中,主动对象的图符于普通对象基本相同,只是外部边框的通对象基本相同,只是外部边框的线条要加黑加粗,如图所示。线条要加黑加粗,如图所示。对象名6.7 协作图元素 链用来在协作图中关联对象。它代表一个来链用来在协作图中关联对象。它代表一个来自类图的关联实例。自类图的关联实例。在协作图中,消息显示在协作图中,消息显示在链上可以加一些修饰,例如角色名、导航在链上可以加一些修饰,例如角色名、导航(表示链是双向还是单向)、链两端的对象(表示链是双向还是单向)、链两端的对象是否有聚集关系等,但由于链是连接对象的,是否有聚集关系等,但由于链是连接对象的,所以所以链的两端没有多重性标记链的两端没有多重性标记。链的图符就。链的图符就是简单的实线。是简单的实线。6.7.4 链链 6.7 协作图元素 在协作图中,对象与对象之间的相互作用是通过在协作图中,对象与对象之间的相互作用是通过传递消息来实现的,消息是对象与对象之间通信传递消息来实现的,消息是对象与对象之间通信的方式。的方式。消息使用一条带箭头的连线来表示,消息中箭头消息使用一条带箭头的连线来表示,消息中箭头来指示消息沿着关系传递的方向。来指示消息沿着关系传递的方向。一条连线可以一条连线可以表示一个或多个消息,消息的名称标在连线的上表示一个或多个消息,消息的名称标在连线的上面,也可以给消息增加参数并标上一些控制信息。面,也可以给消息增加参数并标上一些控制信息。6.7.5 消息消息 6.7 协作图元素 消息的详细说明,消息标签语法规则如下:消息的详细说明,消息标签语法规则如下:前驱前驱 守卫条件守卫条件 序号表达式序号表达式 返回值返回值:=消息名(参消息名(参数列表)数列表)前驱:前驱:是指在发送当前消息之前必须被处理的所有是指在发送当前消息之前必须被处理的所有消息。消息。守卫条件:守卫条件:通常用代码表示,通常用代码表示,UML没有规定语法。没有规定语法。序号表达式:序号表达式:是以小数点分割的序号项列表,每个是以小数点分割的序号项列表,每个子句代表交互中的一个嵌套层次。如果所有控制都子句代表交互中的一个嵌套层次。如果所有控制都是并发的,那么没有嵌套。是并发的,那么没有嵌套。序号项语法:序号项语法:整数整数|名字名字 循环循环 6.7 协作图元素 名字指一个并发控制线程的名字,如果两条消息名字指一个并发控制线程的名字,如果两条消息的序号表达式只有最后一个名字不同,那么它们的序号表达式只有最后一个名字不同,那么它们是同一层上的并发控制流。是同一层上的并发控制流。循环表示重复执行或条件执行,语法:循环表示重复执行或条件执行,语法:*重复子重复子句句/条件子句条件子句。UML中用双竖线中用双竖线“|”表示消表示消息的并发执行。息的并发执行。返回值:返回值:表示通信结束后返回的数值列表。可以表示通信结束后返回的数值列表。可以作为后续消息的参数。如果消息不返回任何值,作为后续消息的参数。如果消息不返回任何值,可以省略赋值操作符和返回值子句。可以省略赋值操作符和返回值子句。6.7 协作图元素 协作图中的消息种类与顺序图中的消息种类完全协作图中的消息种类与顺序图中的消息种类完全相同,在一般应用中,主要使用以下三种,其他相同,在一般应用中,主要使用以下三种,其他几种消息应用相对较少。几种消息应用相对较少。6.7.6 消息种类消息种类 同步消息同步消息异步消息异步消息简单消息简单消息 6.7 协作图元素 在协作图中由于消息较多,为了更清楚的表示各在协作图中由于消息较多,为了更清楚的表示各个消息间的关系,需要对关系进行序列化。个消息间的关系,需要对关系进行序列化。对消对消息进行序列化时,只需要在各个消息前增加一个息进行序列化时,只需要在各个消息前增加一个序列序列ID号即可,最常用的方法就是按照消息的执号即可,最常用的方法就是按照消息的执行的顺序进行序列化,如图所示。行的顺序进行序列化,如图所示。6.7.7 消息序列化消息序列化 对象3对象1对象21:消息1()2:消息2()3:消息3()对象44:消息4()6.9 协作图理解 协作图与顺序图一样也是用于描述系统中各对象协作图与顺序图一样也是用于描述系统中各对象的交互关系并展现对象间的消息传递,但两者侧的交互关系并展现对象间的消息传递,但两者侧重点不同,顺序图着重于交互的时间顺序,而协重点不同,顺序图着重于交互的时间顺序,而协作图着重于描述协作对象间的交互和连接。下图作图着重于描述协作对象间的交互和连接。下图描述了一个读者描述了一个读者“张三张三”登陆图书管理系统的过登陆图书管理系统的过程。程。2:验证用户信息()1:输入个人信息()系统张三账户 3:验证结果()4:页面转向()6.11 顺序图与协作图之间关系 顺序图和协作图在语义上是等价的,它们之间可顺序图和协作图在语义上是等价的,它们之间可以进行互相转换。以进行互相转换。多数的多数的UML工具支持顺序图与工具支持顺序图与协作图之间的转换。协作图之间的转换。顺序图与合作图可以相互转换,而不丢失任何信顺序图与合作图可以相互转换,而不丢失任何信息。但两者的侧重点不同。息。但两者的侧重点不同。顺序图着重于交互的顺序图着重于交互的时间顺序,而协作图着重于描述协作对象间的交时间顺序,而协作图着重于描述协作对象间的交互和连接。互和连接。在实际应用中,如果需要清楚地表示交互作用中在实际应用中,如果需要清楚地表示交互作用中的时间顺序,则应该选择顺序图;如果更注重清的时间顺序,则应该选择顺序图;如果更注重清楚地表示对象间的关系,那么则应该选择合作图。楚地表示对象间的关系,那么则应该选择合作图。6.12 小结 本章介绍了描述系统中各对象之间动态行为的模本章介绍了描述系统中各对象之间动态行为的模型视图,主要包括顺序图和协作图,但是他们之型视图,主要包括顺序图和协作图,但是他们之间的侧重点不同,间的侧重点不同,顺序图主要强调消息的时间顺顺序图主要强调消息的时间顺序即对象之间的通信模式,而协作图强调参加交序即对象之间的通信模式,而协作图强调参加交互的对象的组织即对象之间的协作互的对象的组织即对象之间的协作。顺序图和协作图统称为交互图,在语义上顺序图顺序图和协作图统称为交互图,在语义上顺序图和协作图是基本等价的,顺序图和协作也可以相和协作图是基本等价的,顺序图和协作也可以相互变换。互变换。
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服