软件工程---交互建模之交互图,顺序图与协作图
软件工程动态设计交互图
(3)异步消息 消息的发送者将消息发送给消息的接收者后,不用等 待回应的消息,即可开始另一个活动。
你叫我去吃饭,然后自己去吃饭,我得到消息后可能立即 走,也可能等到下班才去吃饭。
1、激活的概念
当一个对象没有被激活期时,该对象处于休眠状态,什么 事都不做,但它仍然存在,等待新的消息来激活它。
public void 防守荆州前线(); }
Public class 孙权 {
public void 领兵相助(); }
分析1:用例图、活动图、时序图之间的关系
用例
活动图(从用户的角度描述用例) 时序图(从计算机的角度描述用例)
对象间的交互
分析2:类图与时序图之间的关系 思考:消息是什么?与类是什么关系?
当一条消息被传递给对象的时候,它会触发该对象的某个 行为,这是就说该对象被激活了。
当一个对象处于激活期时,表明该对象正在执行某个动作。
2、激活的符号
激活用一个细长的矩阵框(在生命线上)表示。
矩形框的高度表示对象执 行一个操作所经历的时间 段,矩形的顶部表示动作 的开始,底部表示动作的 结束。
对象接收消息后可以由自 己的某个操作来完成,也 可以通过其他对象的操作 来完成。
1. 交互图的概念 交互图(interaction): 用来描述对象之间、对象与参
与者之间的动态协作关系,以及协作过程中行为次序的 图形。 2.交互图的类型
顺序图( Sequence diagram )又称为时序图 协作图( Collaboration diagram )
用例图、类图、活动图、时序图之间是什么 关系?
第4章顺序图和协作图
Q:这两种消息可以看做是同步or异步消息?
UML
- 24 -
•消息
格式
[前缀][警戒条件][顺序表达式][返回值:=]消息名([参数列表])
例:
2: display ()
简单消息
1.3.1: p:=find()
信息亭发Request (count, performance)消息给售票中心,表示调用售票中心类的Request (count, performance)操 作,来查询演出的信息。
售票中心发Show Available(seat-list)消息给信息亭,表示调用信息亭类中的Show Available(seat-list)操作,给出 可用的座位表。…………
UML
- 17 -
4.2 顺序图
复杂的例子
信息亭
售票中心
信用卡服务
从这个例子中可以看出: Kjosk类中的操作有
Show Available (seat-list) Demand Payment (cost) printtickets (performance, seats) eject card Box Office中的操作有 Request (count, performance) Select Seats Insert Card (Card Number) authorized Credit Card Service类中的操作有 charge(card number, cost)
※发送者把消息发送后,等待直到接收者返回控制,可 以表示同步;
※实心箭头符号
UML
- 20 -
•消息
顺序图和协作图
协作图
消息(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
软件工程9种图
UML的9种图上文我们介绍了,UML的视图,在每一种视图中都包含一个或多种图。
本文我们重点讲解UML每种图的细节问题:1、用例图(use case diagrams)【概念】描述用户需求,从用户的角度描述系统的功能【描述方式】椭圆表示某个用例;人形符号表示角色【目的】帮组开发团队以一种可视化的方式理解系统的功能需求【用例图】2、静态图(Static diagram)(1)类图(class diagrams)【概念】显示系统的静态结构,表示不同的实体是如何相关联的【描述方式】三个矩形【目的】表示一个逻辑类或实现类,逻辑类通常是用户的业务所涉及的事物;实现类是程序员处理的实体【类图】(2)对象图(object diagrams)【概念】类图的一个实例,描述系统在具体时间点上所包含的对象以及各个对象的关系【对象图】3、交互图(Interaction Diagram)用来描述对象之间的交互关系(1)序列图(顺序图)(Sequence Diagram)【概念】描述对象之间的交互顺序,着重体现对象间消息传递的时间顺序【描述方式】横跨图的顶部,每个框表示每个类的实例或对象;类实例名称和类名称使用冒号分开【目的】显示流程中不同对象之间的调用关系,还可以显示不同对象的不同调用。
【序列图】(2)协作图(Collaboration diagrams)【概念】描述对象之间的合作关系,侧重对象之间的消息传递4、行为图:描述系统的动态模型和对象之间的交互关系(1).状态图(Statechart diagrams)【概念】描述对象的所有状态以及事件发生而引起的状态之间的转移【描述方式】起始点:实心圆1状态之间的转换:使用开箭头的线段2状态:圆角矩形3判断点:空心圆4一个或多个终止点:内部包含实心圆的圆【目的】表示某个类所处的不同状态以及该类在这些状态中的转换过程(2).活动图(Activity diagrams)【概念】描述满足用例要求所要进行的活动以及活动时间的约束关系【描述方式】2起始点:实心圆5活动:圆角矩形1终止点:内部包含实心圆的圆1泳道:实际执行活动的对象【目的】表示两个或多个对象之间在处理某个活动时的过程控制流程【活动图】活动图和状态图区别:5、实现图Implementation diagram (1)构件图(Component diagrams)【概念】描述代码构件的物理结构以及各构件之间的依赖关系【描述方式】构件【目的】提供系统的物理视图,根据系统的代码构件显示系统代码的整个物理结构【构架图】(2)部署图(Deployment diagrams)【概念】系统中硬件的物理体系结构【描述方式】1三维立方体表示部件2节点名称位于立方体上部【目的】显示系统的硬件和软件的物理结构【部署图】九种UML图详解到此为止,下篇文章专门给大家讲解UML中类间的关系,感谢您的访问。
UML中的顺序图和协作图的区别与实际应用案例解析
UML中的顺序图和协作图的区别与实际应用案例解析UML(Unified Modeling Language)是一种用于软件系统建模的标准语言,被广泛应用于软件开发过程中。
在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中的协作图和顺序图的区别与实践应用在软件开发过程中,UML(统一建模语言)是一种常用的工具,它用于描述和设计软件系统的结构和行为。
UML中有多种类型的图表,其中协作图和顺序图是两种常见的用于描述系统交互的图表。
虽然它们都可以用于描述系统的交互行为,但协作图和顺序图在表达方式、重点和实践应用上存在一些区别。
首先,协作图主要用于描述系统中的对象之间的协作关系。
它通过展示对象之间的交互和消息传递来揭示系统的结构和行为。
协作图强调对象之间的合作,通过展示对象之间的关联、消息和角色来描述系统的动态行为。
协作图通常以对象为中心,通过展示对象之间的交互来描述系统的运行过程。
与之相反,顺序图主要用于描述系统中的对象之间的时序关系。
它通过展示对象之间的消息传递顺序来揭示系统的行为和交互。
顺序图强调对象之间的时序关系,通过展示消息在对象之间的传递顺序和时序关系来描述系统的运行过程。
顺序图通常以时间为轴,通过展示对象之间的消息传递顺序来描述系统的执行流程。
在实践应用方面,协作图常用于分析和设计系统的结构和行为。
它可以帮助开发人员理解系统中对象之间的交互关系,从而提供系统设计的基础。
协作图可以用于描述系统的静态结构,例如对象之间的关联关系和角色。
同时,它也可以用于描述系统的动态行为,例如对象之间的消息传递和交互流程。
通过使用协作图,开发人员可以更好地理解系统的整体结构和行为,从而更好地进行系统设计和开发。
而顺序图则常用于描述系统的执行流程和时序关系。
它可以帮助开发人员理解系统中对象之间的消息传递顺序和时序关系,从而提供系统设计和实现的指导。
顺序图可以用于描述系统的执行流程,例如对象之间的消息传递顺序和执行顺序。
同时,它也可以用于描述系统的时序关系,例如对象之间的时序关系和时序约束。
通过使用顺序图,开发人员可以更好地理解系统的执行流程和时序关系,从而更好地进行系统设计和实现。
在实际应用中,协作图和顺序图常常结合使用。
UML中顺序图与协作图的对比与选择
UML中顺序图与协作图的对比与选择UML(Unified Modeling Language)是一种用于软件系统建模的标准化语言,它提供了多种图形化工具,其中顺序图和协作图是两种常用的交互图。
本文将对这两种图进行对比,并讨论在不同情况下的选择。
顺序图是一种描述对象之间交互行为的图形化工具。
它展示了对象之间的消息传递顺序,以及消息的触发和响应。
顺序图以时间为轴,清晰地展示了对象之间的交互过程。
通过顺序图,我们可以更好地理解系统中不同对象之间的协作方式。
例如,在一个订单处理系统中,顺序图可以展示顾客对象与订单对象之间的交互过程,包括顾客发起订单请求、订单对象接收请求并生成订单、顾客确认订单等。
协作图是一种描述对象之间协作关系的图形化工具。
它展示了对象之间的结构和关联关系,以及对象之间的消息传递。
协作图以对象为中心,通过箭头和标签展示了对象之间的交互过程。
与顺序图相比,协作图更加注重对象之间的结构和关联关系。
例如,在一个电子商务系统中,协作图可以展示顾客对象、订单对象和商品对象之间的协作关系,包括顾客对象发起订单请求、订单对象生成订单并关联商品对象等。
那么,在实际应用中,我们该如何选择使用顺序图还是协作图呢?首先,如果我们更关注对象之间的交互行为和消息传递顺序,那么顺序图是更好的选择。
顺序图以时间为轴,清晰地展示了对象之间的交互过程,帮助我们更好地理解系统中不同对象之间的协作方式。
例如,在一个银行系统中,我们可以使用顺序图展示客户对象与银行柜员对象之间的交互过程,包括客户发起取款请求、柜员接收请求并处理、客户确认取款等。
其次,如果我们更关注对象之间的结构和关联关系,那么协作图是更好的选择。
协作图以对象为中心,展示了对象之间的结构和关联关系,帮助我们更好地理解系统中不同对象之间的协作关系。
例如,在一个团队协作系统中,我们可以使用协作图展示团队成员对象之间的协作关系,包括成员之间的沟通、任务分配和工作协调等。
顺序图和协作图
顺序图和协作图第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个对象:客户、预定请求、工作人员、工作记录和汽车。
交互作用图(顺序、协作)
• • • •
类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). 简单消 息
它只表示控制如何从一个对象传递给另一个对象,而没有描述通信的任何细节。 这种类型的消息主要用于通信细节未知或者无需考虑通信细节的场合。也就是说,主 要用于不知道消息是同步还是异步的场合,但通常情况下表示异步消息此外在高层分 析中,有时候没有必要指定一个消息是同步的还是异步的。如下面的示例所示。
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顺序图和协作图
对上述步骤建模的顺序图如下:
: 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
场景描述
曹操 :刘备
:孔明
求战 请拟策略
:关羽
:张飞 孙权
请防守荆州
Chapter 06-交互图(顺序图与协作图)
注: 顺序图已经表现出消息执行顺序,编号不是必须的 协作图必须编号 顺序图编号便于与协作图互相转换
Copyright By Chd.Wang,E-Mail:Chdwang@
5
顺序编号的顺序图示例
25
协作图示例
用例“图书管理员登录系统”协作图
Copyright By Chd.Wang,E-Mail:Chdwang@
11
Copyright By Chd.Wang,E-Mail:Chdwang@
12
顺序图中的循环和分支
其它操作符
par 表示并发执行的若干个子 片段,子片段中的单个元 素可以以任何可能的顺序 相互操作(除非采用critical禁止)
8
顺序图中的循环和分支
对象行为有循环和分支两种方式 顺序图为了表示这两种行为,引入以下概念
交互片段(UML 2.0) 一个交互片段可以包含多个区域 每个交互片段都有一个操作符
区域 每个区域拥有一个监护条件和一个复合语句
操作符 操作符决定了交互片段的执行方式 表示分支的操作符:多条件(alt)、单条件(opt) 表示循环的操作符:loop
Copyright By Chd.Wang,E-Mail:Chdwang@
9
顺序图中的循环和分支
交互片段示意
若peddeleryid 不存在,则执行区域1 (复合语句1:先创建它,然后添 加);若存在,执行区域2(复合语句2 :直接添加)
存在条件分支,则使用“区域分隔线”分解出多个区域, 并为每个区域设置一个监护条件
具体示例
参见前面的图 也可以用opt条件表达 注:交互片段是UML2.0提出的新概念
UML第6章 顺序图和协作图
• 一个组合区由一个区域或多个区域组成,每个组 合区有一个操作符。操作符表示对象执行方式 (执行方式有三种:分支、并发和循环),操作 符写在组合区的左上角。
• 一个区域用一个长方形表示,区域之间用虚线隔 开,每个区域拥有一个监护条件和一个复合语句。 监护条件写在中括弧中。
如图6-12所示,组合区包含2个区域,组合区的操作符 是alt。第一个区域的监护条件是[if file Not Exist],第二 个区域的监护条件是[else]。
如图6-1所示便是自动车锁系统中,描述“锁 车”场景的顺序图。
图6-1 顺序图
6.1.2 顺序图的表示
• 在UML中,顺序图主要包括:对象、对象的生命 线、对象的控制焦点(对象获得控制权)以及对 象间交互的消息,如图6-2所示。
• 顺序图采用二维的布局结构,从左到右把对象排 列在顺序图的顶部。一般说来,首先排列参与者, 其次是边界对象,然后是实体对象,对象用矩形 框表示;虚线是生命线;生命线上的矩形是对象 的控制焦点;从对象往下延伸的生命线表示了时 间轴的正方向。
• 该组合区表示的逻辑是: 如果x<10,就要求B类对 象执行calculate(x)操作;否则就要求c类对象执行 calculate(x)操作。
:Caller
:A
:B
:C
1: do(x) alt
[x<10] 2: calculate(x)
[else]
3: calculate(x)
图6-13 alt操作符的使用
• 图6-18所示,由ingore操作符与assert 配合使用的例子。
• 图6-18所表示的逻辑是,在ingore组合区中, backoff(后退)和presshorn(按喇叭)消息被 忽略。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
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):
每个对象都有自己的生命线,用来表示在该用例中一个对象在一段时 间内的存在
垂直的虚线 如果对象生命期结束, 则用注销符号表示 对象默认的位置在图 顶部,表示对象在交互 之前已经存在 如果是在交互过程中 由另外的对象所创建, 则位于图的中间某处。
顺序图
面向时间描述对象交互的图
协作图
对象间消息的结构化视图
打电话
小张
电话
小王
顺 序 图 举 例
拿起电话 提示正常音
按小王的电话号码 提示接通音 交谈 挂断电话
忙音
挂断电话
对象交互的代码呈现
2 顺序图
按照时间顺序显式对象之间交互的图
2.1 顺序图的组成
2.1 顺序图的组成
活动者(actor)或者 对象(object) 生命线(lifeline) 激活(activation)/ 控制焦点(focus of
到配置上。
1 交互图概述
Interaction diagram,是描述对象之间的 关系和对象之间的信息传递的图;
通常用来描述一个用例的行为,实现一个 用例,完成对系统的动态行为建模;
包含两种:
顺序图(或时序图,sequence diagram) 协作图(collaboration diagram)
validator
userDao
loop [count<=3 and valid==false]
input
submit
validate(account,password)
validate(account,password)
display()
return valid
return valid
findUser(account,password)
例如,[x<0] 4: invert(x, color)
序列表达式 (sequence-expression)
语法 [integer | name] [recurrence] :
integer为指定消息顺序的序列号,消息1是消息序列的 开始消息消息,1.1是消息1的处理过程中的第一条嵌套 的消息,消息1.2是消息1的处理过程中的第二条嵌套的 消息,一个消息序列的例子如1, 1.1, 1.2, 1.2.1, 1.2.2, 1.3, 等。这样的序列号不仅能够表示消息的顺序而且还 能表示消息的嵌套关系(当消息是异步消息时消息为嵌套 的操作调用及返回)
a3,b4/c2: copy(a,b)
线程同步
1.1a, 1.1b/1.2: continue() 带前缀消息
在发送线程c的第2个消 息之前,必须先发送线 程a的第3个消息和线程b 的第在4发个送消消息息1.2之前必须
已经同时发送并发消息给 线程a和b
前缀(predecessor)
语法:消息序列号,消息序列号, ... / 前缀是一个用来同步线程或路径(path)的表达式
control) 消息(message)
2.2 活动者或对象
活动者和对象按照从左到右的顺序排列 一般最多两个活动者,他们分列两端。启动
这个用例的活动者往往排在最左边;接收消 息的活动者则排在最右端; 对象从左到右按照重要性排列或按照消息先 后顺序排列。
2.2 活动者或对象
对象的命名方式有三种:
时序图
时序图实例分析
绘制图书管理系统“借书”用例的时序图(业务模 型)。 图书管理员打开借书界面,输入借书信息并提交 借书请求;系统验证借书卡状态,如果借书卡未 借书则记录借书信息且修改图书状态和借书卡状 态,并提示借书成功;否则提示借书失败。
借书
时序图
时序图实例分析
图书管理员
借书界面
打开借书界面
时序图
时序图绘制技巧
需求分析阶段的时序图
登录
登录界面
业务逻辑对象
数据访问对象
用户 打开界面
loop [count<=3 and valid==false] 输入数据
提交请求
验证
验证
返回结果
返回结果
返回结果
查询用户信息
时序图
时序图绘制技巧
系统设计阶段的时序图
Login
User
loginForm
2.4 激活期
激活期(activation)/控制焦点(focus of control)
对象在一段时间内获得了焦点,也称激活期 对象执行某个动作的时期 空心矩形条 激活期的长短意味着 对象执行某个动作的 时间有多长,可以 通过约束{10ms}来 限制执行时间的长短。
2.4 激活期
2.5 消息
同步消息的发送者把控制传递给消息的接收者,然后暂停活动 ,等待消息接收者的应答,收到应答后才继续自己的操作。
2.5 消息
UML三种消息:
异步(Asynchronous) 消息发送后,发送者继续操作,不等待,常用于并 发;
异步消息(Asynchronous message)用于控制流在完 成前不需要中断的情况。同步消息的发送者把控制传递给 消息的接收者,然后继续自己的活动,不需等待接收者返 回信息或控制
2.8 案例:存款
分析级别的顺序图,粗略, 双斜杠
忽略消息同步异步类别也 无妨
Add title 新增书目和图书操作
2.9 练习
用户打印文件,计算机向打印服务器发送 打印命令,打印机如果空闲,则直接打印, 否则把打印文件存储在打印队列中。
2.9 练习
管理员通过课程管理器打印课程UML的信息
面向对象方法中,消息是对象间交互信息的主 要方式。
结构化程序设计中,模块间传递信息的方式主 要是过程(或函数)调用。
对象A向对象B发送消息,可以简单地理解为 对象A调用对象B的一个操作(operation)。
2.5 消息
顺序图中,尽力保持消息的顺序是从左到 右排列的。
一个顺序图的消息流开始于左上方,消息2 的位置比消息1低,这意味着消息2的顺序 比消息1要迟。
意思是在发送当前消息之前指定序列号的消息被处理 (必须连续执行)
消息序列号之间用逗号隔开,用斜杠结束
例如 1.1a, 1.1b/1.2: continue() ,在发送消息1.2之前 必须已经同时发送并发消息给线程a和b
守卫条件(guard-condition)
语法: [ 条件短语 ]
条件短语通常用伪代码或真正的程序语言来表示, UML并不规定其语法
ATM登录
ATM用户 插卡
提示输入密码 loop [Password Wrong]
输入密码
返回验证结果
ATM
Bank
验证密码 返回验证结果
验证
顺序图
时序图绘制技巧
以用例为单位创建时序图,针对每个用例,考察为完成 它所描述的功能需要哪些对象的操作参与执行,并且进 一步考察这些操作的执行需要通过消息而引起其他哪些 对象操作的执行。把这些对象以及参与交互的执行者组 织到一个时序图中。
理论上需要为每一个用例创建一个时序图,但是如果一 个用例的交互对象很简单可以不需要创建时序图。
时序图
时序图绘制技巧 时序图绘制步骤: 确定参与交互的执行者 确定与执行者直接交互的对象 确定与交互相关的全部对象(顺藤摸瓜)
时序图
时序图绘制技巧
如果需要考察单个用例内部多个对象的行为就应该使用 时序图;
交互建模之交互图 顺序图与协作图
用例图(功能模型): 从用户的角度描述系统能提供哪些功能。 • 结构模型视图(静态):
类图:描述系统的静态结构; 对 象图:描述系统在某个时刻的静态结构; 包图:将类分组成更高层次的静态结构。 • 行为模型视图(动态) 顺序图:按时间顺序描述系统元素之间的交互; 协作图:从时间和空间的顺序描述系统元素之间的交互; 状态图:描述系统元素对事件的响应引起的状态转换; 活动图:描述系统元素的活动。 • 实现模型视图 构件图:描述实现系统的元素的组织结构; 配置图:描述环境元素的配置,并把实现系统的元素映射
顺序图制作提示: 只关注核心对象 顺序图用于描述某个用例的部分交互细节
3.3 案例:存款
2.5 消息
UML三种消息:
返回(Return) 表示消息的返回。消息上方放置返回值 同步消息的返回可以画出(如果想明确表达返回 值),也可以不画出,直接隐含。 异步消息可以有返回,也可以没有。(可以响应异 步消息,也可以不响应该异步消息。) 如果顺序图上显示有编号,则返回消息的编号和当 初发送消息的编号完全一样。 虚线箭头表示,和依赖关系不要混淆