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

合集下载

顺序图和协作图

顺序图和协作图

第4章顺序图和协作图

4.1 交互图概述

在一个待开发的系统中,任何对象都不是孤立存在的,系统中的这些对象都是通过传递消息进行交互的。因此在设计系统时,就免不了对交互进行缄默,并用交互图展现出来。

4.1.1 交互的定义

当需要对类操作、类、构件、用例乃至整个系统的控制流进行建模时,一定离不开“交互”。

交互:一次交互就是指在特定语境中,为了实现某一个目标,而在一组对象之间进行交换的一组消息所表示的行为。

交互图:是用来描述对象之间以及对象与参与者之间的动态协作关系以及协作过程中行为次序的图形文档。通常用来描述一个用例的行为,显示该用例中所涉及的对性和这些对象之间的消息传递情况

在大多数情况下,消息通常是指启动一个操作或发送一个信号,以及创建或销毁一个对象。

4.1.2 UML交互图的类型

顺序图:是一种强调消息时间顺序的交互图,着重描述对象按照时间顺序的消息交换,为读者提供了控制流随着时间推移的清晰的可视化轨迹。

协作图(UML 2.0中的通信图):强调的是参加交互的对象的组织,着重描述系统成分如何协同工作,为读者提供了在协作对象结构组织的语境中观察控制流的一个清晰的可视化轨迹。

顺序图和协作图从不同的角度表达了系统中的交互和系统的行为,它们可以相互转化,并且转换过程不会丢失信息。

定时图(UML 2.0中新增):采用了一种带数字刻度的时间轴来精确地描述消息的顺序,而不是像顺序图那样只是指定消息的相对顺序,而且它还允许可视化的表示每条生命线的状态变化,当需要对实时时间进行定义时,采用定时图可以很好的满足。

26UML交互图顺序图和协作61顺序图概念与表示

26UML交互图顺序图和协作61顺序图概念与表示

<<signal>> xyz

假设A转换由abc引发,B转换由 xyz引发,则xyz信号事件将引发 A转换和B转换
17
一般事件的表示:
对事件的 规格描述
源状态 事件特征标记[监护条件] / 动作表达式 目标状态
例1:right-mouse-down(location)[location in window]/object:=pick-object(location) 例2:Object.highlight();
关闭传感器( ) 停止传感器( )
传感器指示灯熄灭( )
关闭工作就绪( ) 绿灯灭红灯亮( )
系统停止( )
9
2.6.3 协作图(Collaboration)
协作图表示在协同完成某行为时对象之间的交互, 强调对象的消息结构,而忽略时间顺序。
• 协作图例
c:Client 链
对象 1:create 2:setAction(a,d,o) 3:destroy
Bank
2.1.1:valid accnt 2.2.1:valid PIN
2:open accnt 3:initialDeposit 1:authorizeCard 4:deauthorize 5:close accnt
4.1.1:deposit 4.2.1:creditLimit 4.2.2:accntType 4.2.3:balance 4.2.4:withdraw 4.2.5:deposit close

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

软件工程---交互建模之交互图,顺序图与协作图
[ 条件子句 ] 条件子句一般用来表示分枝而不是用作守卫条件[x<0]是两个可
以用来分枝的条件子句这两个条件只能有一个为真因而只有一 个分枝被执行(即发送与分枝有关的消息) 条件子句和循环子句都可以用伪代码或真正的编程语言来表示 序列表达式用冒号结束
返回值、消息名和参数表
返回值表示一个操作调用(即一个消息)的结 果
时序图
时序图绘制技巧
需求分析阶段的时序图
登录
登录界面
业务逻辑对象
数据访问对象
用户 打开界面
loop [count<=3 and valid==false] 输入数据
提交请求
验证
验证
返回结果
返回结果
返回结果
查询用户信息
时序图
时序图绘制技巧
系统设计阶段的时序图
Login
User
loginForm
如果需要考察单个对象的行为就需要使用状态图; 如果需要考察跨用例行为就需要考虑使用活动图。
时序图
时序图绘制技巧
需求分析阶段的时序图:主要用于描述用例中对象之间 的交互,可以使用自然语言来绘制,用于细化需求。从 业务的角度进行建模,用描述性的文字叙述消息的内容。
系统设计阶段的时序图:确切表示系统设计中对象之间 的交互,考虑到具体的系统实现,对象之间通过方法调 用传递消息。
顺序图制作提示: 只关注核心对象 顺序图用于描述某个用例的部分交互细节

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

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

协作图例子
1 基本概念
1.2 对象
对象是类的实例,具有特定的属性和操作。在 交互图中,属性展示了对象的信息和状态,操 作展示了对象的行为和功能。
1 基本概念
1.3 消息
消息是从一个对象到另一个或者几个其他对象的信息传 递,简单地说,消息就是对象与对象、参与者与参与者, 或者对象与参与者之间的某种通信方式。 消息可以是一个信号或一次操作调用,收到消息即为事 件。可以有两种消息,一种是从发送者向接收者发送信 号,另一种是由调用者调用接收者的操作 对象之间的协作通过相互发送消息实现。
打开或关闭消息编号:
选择Tools > Options; 选择Diagram标签; 复选或取消Collaboration Numbering 或者 Sequence Numbering。
4 时序图和协作图共有的元素
4.4 为消息分配操作
要给消息分配操作:
双击框图中的消息图标; 从弹出的列表中选择一个操作。或者单击 <new operation>定义一个新操作。
一个例子
1 基本概念
1.1 交互图
分类
交互图分为两种:时序图和协作图
时序图强调消息发送的时间顺序 协作图则强调接收和发送消息的对象的组织结构
时序图和协作图语义等价
时序图和协作图在语义上是等价的,共享相同的基本 模型 两个图都可以表示另一个图所不能表示的某些东西 时序图和协作图可以实现两者之间的等价转换,而不 丢失任何信息

Chapter 06-交互图(顺序图与协作图)

Chapter 06-交互图(顺序图与协作图)
24
Chd.Wang,E-Mail:Chdwang@njupt.edu.cn
协作图示例


用例“将订单生成 送货单”协作图 用例“注册课程”协作图
注: 版型<<local>> 说明 c : Course 是局部对象,由 CourseList.find() 创建
Chd.Wang,E-Mail:Chdwang@njupt.edu.cn
23




消息

Chd.Wang,E-Mail:Chdwang@njupt.edu.cn
协作图的表示

迭代标记和监护条件


迭代标记 格式:*[迭代表达式] 表示循环,迭代表达式说明循环规则 注:UML2.0的顺序图以交互片段替代迭代标记,但 在协作图中,仍然使用迭代标记 监护条件 格式:[条件表达式] 表示分支,条件表达式值为true时,消息发送 使用限制:通常只列出主要监护条件,否则影响协 作图阅读
20
协作图

也称通信图


描述对象之间的消息交互,强调对象在交互中承担角色 语义上与顺序图是完全等价的,可以相互转换 对象 消息 链接

协作图的组成元素



示例
Chd.Wang,E-Mail:Chdwang@njupt.edu.cn

交互图(序列+协作)

交互图(序列+协作)

图书馆还书处理的序列图
协作图 Collaboration Diagram
协作:
在一定的语境中,一组用以实现某些行为的对象之间 的相互作用 它描述了若干对象为实现某种目的,而组成相互合作 的“对象社会”
协作图:表现对象协作关系的图
是对“对象图”的扩展(增加消息传递) 序列图和协作图可以相互转化 强调:参与交互对象的角色位置与组织关系
交互图
交互图概述 序列图的定义和作用 序列图的组成元素 协作图
交互图概述
交互图(Interaction Diagram)
描述对象之间的关系 描述对象之间的信息传递
作用
通常用来描述某个用例的行为 为实现某个用例,为系统的动态行为建模
种类
序列图(Sequence Diagram) 协作图(Collaboration Diagram)
错误事件:
5A: 课程不可选。
5A1:系统提示课程不可选原因。、 5A2:重新选课。
练习3
练习3(查询课程)
练习4:绘制序列图
以饮料自动销售系统为例,对“买饮料” 的3种场景进行建模,对每一个场景,绘 制其对应的顺序图
1)买饮料的正常场景,基本事件流如下:
(1)顾客从机器的前端钱币口投入钱币,然后选择想 要的饮料 (2)钱币到达钱币记录仪,记录仪更新自己的存储 (3)记录仪通知分配器分发饮料到机器前端

时序图和协作图

时序图和协作图
❖ 每个对象的底部中心的位置都带有生命线。 ❖ 生命线是一条时间线,从时序图的顶部一直
延伸到底部,所用的百度文库间取决于交互的持续 时间。
3.激活
❖ 当一条消息被传递给对象的时候,它会触发该对 象的某个行为,激活了该对象。
❖ 在UML中,激活用一个在生命线上的细长矩形框 表示。
❖ 矩形本身被称为对象的激活期或控制期,对象就 是在激活期顶端被激活的。
❖ 时序图强调的是交互的时间顺序;而协作图强 调的是交互的情况和参与交互的对象的整体组织。
❖ 从另一个角度来看,时序图按照时间顺序布局; 而协作图按照空间组织布局。
2: Message
1: Message
: Actor
5: Message
4: Message :ObjectB
:ObjectA 3: Message
激活示例
激活的应用
❖ 当进行时序图建模时,所用到的消息主要 包括以下几种类型:
简单消息(Simple Message) 同步消息(Synchronous Message) 异步消息(Asynchronous Message) 反身消息(Message to Self) 返回消息(Return Message)
④ 标明消息。从引发某个消息开始,在生命线之 间画出从顶到底依次展开的消息,显示每个消 息的内容标识。
⑤ 设置对象的激活期,可视化消息的嵌套或可视 化实际计算发生时的时间点。

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

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

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

案例解析

UML(Unified Modeling Language)是一种用于软件系统建模的标准语言,被

广泛应用于软件开发过程中。在UML中,顺序图和协作图是两种常用的建模工具,用于描述系统中对象之间的交互关系。本文将探讨顺序图和协作图的区别,并通过实际应用案例解析它们的使用。

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

消息传递和时间顺序来描述系统的动态行为。顺序图以垂直方向表示时间轴,从上到下按照时间顺序排列对象和消息。每个对象用一个矩形表示,对象之间的消息通过箭头表示。顺序图强调对象之间的交互和消息的顺序,能够清晰地展示系统中的动态行为。

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

连接和消息传递来描述系统的结构和交互。协作图以水平方向表示对象之间的连接关系,每个对象用一个矩形表示,对象之间的连接通过实线和虚线表示。协作图强调对象之间的连接和合作关系,能够清晰地展示系统中的结构和交互。

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

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

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

选择商品、将商品添加到购物车、结算支付等交互过程。通过顺序图,我们可以清晰地了解用户与系统之间的交互顺序和消息传递。

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

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

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)从地铁购票的活动中来看顺序图

交互图-顺序图

交互图-顺序图

生命线开始与结束
生命线可以在顺序图时间刻度范围内创建和销毁 ,图中,生命线被停止符号(叉号)终止。
时间和期限约束
消息默认显示为水平线。因
为生命线显示为沿屏幕向下 的时间通道,所以当给实时
系统建模,或是有时间约束
的业务过程建模,考虑执行 动作所需时间长度是很重要 的。因此可以给消息设置一 个期限约束,这样的消息显 示为下斜线。
一个顺序图的实例
行为模型-协作图/通信图
通信图
以前称之为协作图,是一种交互图,所显示消息与顺序图 相似,但是它更侧重于对象间的联系。
在通信图中,对象之间显示关联连接器。消息附加到这些 关联上,显示短箭头指向消息流的方向。消息的顺序通过 编号码显示。 下面的两个图用通信图和顺序图分别显示相同的信息。尽 管我们可能从通信图的编号码得到消息顺序,但它不是立 即可见的。通信图十分清楚的显示了邻近对象间全部完整 的消息传递。
生命线
一条生命线在顺序图中代表一个独立的参与者, 表示为包含对象名的矩形。对象下面延伸的虚线 ,表示对象的生存时间。
如果它的名字是“self”,则说明该生命线代表 控制顺序图的类元。
有时,顺序图会包含一个顶端是执行者的生命线 。这情况说明掌握这个顺序图的是用例。边界, 控制和实体元素也可以有生命线。

门是连接片段内消息和片段外消息的连接点。 在 EA中,门显示为片段框架上的小正方形。作用为 顺序图与页面外的连接器。 用来表示进来的消息 源,或者出去消息的终点。

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

交互作用图(顺序、协作)
• findTitle(isbn:String):OID • 返回指定ISBN的Title对象的 OID • getTitle(oid:OID):Title • 返回Title对象 • getAvaliableBook():OID • 返回第一个可借阅的Book对 象的OID
• 类Borrower • borrowerID:String • loans:OID[ ]
序列性的消息能很好地说明单一的线性的序列,但是我们 通常需要展示条件和循环。有时候我们想要展示多个序列的 并行执行。在顺序图中用结构化控制操作符能展示这种高层 控制。
为了表示顺序图的边界,可以把顺序图用一个封闭的矩形 包围起来,并在矩形的左上角放一个小五边形。在这个小五 边形内先写上sd,再后面写出图的名字。对每个子顺序图加上 一个矩形区域作为外框,再在其左上角放一个小五边形,在 这个小五边形内写上用来表明控制操作符的类型的文字。
4 : setgrade(studentID,C)
[59<grade<70]
5 : setgrade(studentID,D)
建立顺序图
步骤: ■ 按照当前交互的意图,如系统的一次执行,或者一组对象(包括参与者 实例,以下不再明确地提及参与者实例)之间的协作,详细地审阅有关材 料(如有关的用况),设置交互的语境,其中包括可能需要的那些对象。 ■ 通过识别对象在交互中扮演的角色,在顺序图的上部列出所选定的一组 对象(应该给出其类名),并为每个对象设置生命线。通常把发起交互的 对象放在左边。 ■ 对于那些在交互期间要被创建和撤销的对象,在适当的时刻,用消息箭 线显式地予以指明。 ■ 决定消息将怎样或以什么样的序列在对象之间传递。 通过首先发出消息的对象,看它需要哪些对象为它提供操作,它向那 些对象提供操作。追踪相关的对象,进一步做这种模拟,直到分析完与当 前语境有关的全部对象。 如果一个对象的操作在某个执行点上应该向另一个对象发消息,则从 这一点向后者画一条带箭头的直线,并在其上注明消息名。用适当的箭头 线区别各种消息。

交互作用图

交互作用图
标记为“loop”。
上图展示了一个简化了的例子,其中有一些控制操作符。用户启动这个序 列。第一个操作符是循环操作符,圆括号内的数字(1,3)表示循环执行 的最少次数和最多次数。因为最少是一次,所以在检测条件之前主体至少 执行一次。在循环内,用户输入密码,系统验证它。只要密码不正确,那 么该循环就会继续。但是,如果超过了三次,那么无论如何循环都会结束。
消息规范
设置消息同步类型, 常用有简单,同步, 异步;
静态结构模型:实体类的类图
Book 1..n Title
0..1 Loan 0..n Persistent (from DB)
0..n Reservation 0..n
Borrower
• 类Title • Isbn:String • book:OID[ ]
• • • •
类Loan Book:OID Borrower:OID Date:Date
• newLoan(book:OID,b orrower:OID,date:Dat e) • 创建Loan对象 • getBook():Book • getBorrower():Borrow er
还书
: Librarian
• • • • • • • • • •
类Book id:Integer title:OID loan:OID findBook(id:Integer):OID 返回指定id的Book对象 getLoan():Loan setLoan(loan:OID) getTitle():Title getObject(book:OID):Bo ok

交互作用图

交互作用图
交互作用图
交互作用图
交互作用图描述了对象间的交互作用,由对象、对象 间的关系组成,并包含在对象间传递的消息。
顺序图 顺序图强调消息的时间顺序。
通信图 通信图强调发送和接收消息的对象的组织结构。
交互作用图的主要组成元素如下:
对象。 消息。 像其他的图一样,交互作用图中也可以有注释和约束。
2
消息
(1)简单消息:表示控制流。 (2)同步消息:它是一种嵌套的控制流。 (3)异步消息:它是异步控制流。 (4)返回消息:表示控制流从过程调用的返回。
3
顺序图
与通信图相区别,顺序图具有两个特点:
有对象生命线 有激活期
4
顺序图的组成成分
(1)对象:顺序图中所包含的每个对象用一个 对象框(短式)表示,对象名需带下划线。
(2)生存线:对象框下画的一条垂直虚线,称 为该对象的生存线,表示对象的生存时间。
(3)激活期:对象生存线上的一个细长方形 框,表示该对象的激活时间段,即活动期 间。
(4)消息:对象之间消息的发送和接收用两个 对象生存线(激活期)之间的消息箭头线。
5
顺序图
6
7
顺序图中的分支控制
8
顺序图中的约束标记
9
顺序图中的循环处理操作
10
对象的创建和消亡
11
顺序图
顺序图的结构控制
可选执行(Optional Execution)
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
• findTitle(isbn:String):OID • 返回指定ISBN的Title对象的 OID • getTitle(oid:OID):Title • 返回Title对象 • getAvaliableBook():OID • 返回第一个可借阅的Book对 象的OID
• 类Borrower • borrowerID:String • loans:OID[ ]
2. 顺序图中的消息
同步消息 异步消息 返回消息 创建消息 销毁消息 (简单消息:针对同步与异步消息)
对象之间普通消息传递 对象自身消息传递 返回消息
对象之间过程调用 对象之间异步消息,发送消息后不管消息是否被 接受,继续进行下一步处理
调用消息:消息的发送者把控制传递给消息的接收者 , 等待接收者返回或放弃控制.
序列性的消息能很好地说明单一的线性的序列,但是我们 通常需要展示条件和循环。有时候我们想要展示多个序列的 并行执行。在顺序图中用结构化控制操作符能展示这种高层 控制。
为了表示顺序图的边界,可以把顺序图用一个封闭的矩形 包围起来,并在矩形的左上角放一个小五边形。在这个小五 边形内先写上sd,再后面写出图的名字。对每个子顺序图加上 一个矩形区域作为外框,再在其左上角放一个小五边形,在 这个小五边形内写上用来表明控制操作符的类型的文字。
4 : setgrade(studentID,C)
[59<grade<70]
5 : setgrade(studentID,D)
建立顺序图
步骤: ■ 按照当前交互的意图,如系统的一次执行,或者一组对象(包括参与者 实例,以下不再明确地提及参与者实例)之间的协作,详细地审阅有关材 料(如有关的用况),设置交互的语境,其中包括可能需要的那些对象。 ■ 通过识别对象在交互中扮演的角色,在顺序图的上部列出所选定的一组 对象(应该给出其类名),并为每个对象设置生命线。通常把发起交互的 对象放在左边。 ■ 对于那些在交互期间要被创建和撤销的对象,在适当的时刻,用消息箭 线显式地予以指明。 ■ 决定消息将怎样或以什么样的序列在对象之间传递。 通过首先发出消息的对象,看它需要哪些对象为它提供操作,它向那 些对象提供操作。追踪相关的对象,进一步做这种模拟,直到分析完与当 前语境有关的全部对象。 如果一个对象的操作在某个执行点上应该向另一个对象发消息,则从 这一点向后者画一条带箭头的直线,并在其上注明消息名。用适当的箭头 线区别各种消息。
创建时序图
时序图工具条
选择工具 文本 注释 注释指示 对象 消息 反身消息 过程调用返回的消息
对象删除
时序图中增加对象和消息
对象规范
映射类,每个对象 都应该映射到一个 类。如果要为对象 创建新的类,选择 New选项。
消息规范
可以将接受对象的 某个操作指定给消 息。指定操作后, 消息名变为所指定 的操作名
• 添加借阅者
标记为“loop”。
上图展示了一个简化了的例子,其中有一些控制操作符。用户启动这个序 列。第一个操作符是循环操作符,圆括号内的数字(1,3)表示循环执行 的最少次数和最多次数。因为最少是一次,所以在检测条件之前主体至少 执行一次。在循环内,用户输入密码,系统验证它。只要密码不正确,那 么该循环就会继续。但是,如果超过了三次,那么无论如何循环都会结束。
旅店预订系统
16
旅店预订系统中识别分析类
-17-
-18-
绘制VOPC类图
-19-
实例-旅游申请系统中的分析类
-20-
进行职责分配
-21-
绘制VOPC类图
-22-
利用分析操作表示职责
-23-
为分析类添加属性
-24-
实体类之间的关联关系
-25-
旅游申请系统实体类类图
-26-
3. 顺序图中的结构化控制
消息规范
设置消息同步类型, 常用有简单,同步, 异步;
静态结构模型:实体类的类图
Book 1..n Title
0..1 Loan 0..n Persistent (from DB)
0..n Reservation 0..n
Borrower
• 类Title • Isbn:String • book:OID[ ]
顺序图是显示对象之间交互的图, 这些对象是按时 间顺序排列的. 它显示参与交互的对象及对象之间消息交互的顺序.
对象/参与者 对象维
生命线 消息 时间维 控制焦点
对象的三种命名方式:
生命线是对象图标向下延伸的虚线, 表示对象生存时间.
消亡点
控制焦点(Focus of Control)又称为激活期(Activation), 用 生命线上的小矩形表示, 在这个时间段内, 对象执行相 应的操作.
交互作用图
(顺序图和协作图)
1 交互图概述
交互图(interaction diagram)是用来描述对象之间以及对 象与参与者之间的动态协作关系以及协作过程中行为 次序的图形文档. 交互图通常用于描述一个用例的行为, 显示该用例中所 涉及的对象及对象之间消息传递情况. 交互图包括: (1)顺序图(sequence diagram), 描述对象按照时间顺序的 消息交换; (2)协作图(collaboration diagram), 描述系统成分如何协同 工作.
<<boundary>> : 增加职员窗口
<<control>> : 职员控制器
<<entity>> : 职员
: 管理员 1 : 增加职员() <<create>> 2 : 弹出增加职员窗口()
3 : 职员信息()
4 : 提交() 5 : 增加职员() 6 : 创建职员对象() 7 : 保存职员信息()
sd 成绩转换 : Contrl : Transcript : Grade
1 : getgrade(studentID)
alt [grade>=90] 2 : setgrade(studentID,A)
[79<grade<90] 3 : setgrade(studentID,B)
[69<grade<80]
创建消息:创建一个对象,箭头需要指到所建立的 对象上面。 销毁消息:销毁一个对象,对象生命线用差号来表 示销毁,表示被销毁对象的生命周期将到此终结。
obj1:Class <<c re at e>> obj2:Class
<<d e s t ro y >>
<<boundary>> : 职员管理界面
• findBorrower(id:String):OID • 返回指定ID号的Borrower对 象的OID • getBorrower(oid:OID):Borro wer • 返回指定OID的Borrower对 象 • addLoan(loan:OID) • 添加借阅记录 • delLoan(loan:OID) • 删除借阅记录
下一个操作符是可选操作符。如果密码是正确的,那么就执行这个操作符 的主体;否则就跳过该顺序图后面的部分。这个可选操作符的主体内还包 括了一个并行操作符。正如图中所表明的,操作符可以嵌套。
并行操作符有两个分区:一个让用户输入帐号,另一பைடு நூலகம்让用户输入数额。 因为这两个分区是并行的,所以没有规定应该按照什么次序输入这两者, 按照什么次序输入都可以。需要强调的是,并发并不总是意味着物理上的 同时执行。并发其实是说两个动作没有协作关系,而且可按任意次序发生。 如果它们确实是独立的动作,那么它们就可以交叠;而如果它们是顺序的 动作,那么它们可以按任意的次序发生。 一旦并行操作符的两个动作都被执行过,那么该并行操作符也就执行 完毕。在可选操作符中的下一个动作是银行向给用户交付现金。至此,顺 序图执行完毕。
顺序图是一种交互图,描述对象之间的动态交互关系,着重 体现对象间消息传递的时间顺序
对象(Object):对象、对象的生命线、对象的控制焦点和对象的 删除 消息(Message):简单消息、同步消息、异步消息、返回消息 交互片段(Interaction Frame):分支、循环
-3-
• • • •
类Loan Book:OID Borrower:OID Date:Date
• newLoan(book:OID,b orrower:OID,date:Dat e) • 创建Loan对象 • getBook():Book • getBorrower():Borrow er
还书
: Librarian
: MainWindow
: ReturnDialog
: Borrower
: Book
: Loan
1: return( ) 2: createDialog( )
3: return( ) 4: findBook(Integer) 5: getObject(OID) 6: getLoan( ) 7: getBorrower( ) 8: setLoan(null) 9: update( ) 10: delLoan(OID) 11: update( ) 12: delete( )
调用消息必有一个与之配对的返回消息, 但是可以不 用画出.
(1). 同步消 息 同步消息(synchronous message)代表一个操作调用的控制流。 同步消息的发送者把控制传递给消息的接收者,然后暂停活动,等 待消息接收者的应答,收到应答后才继续自己的操作。
(2).异步消息 异步消息(Asynchronous message)消息的发送者把控制传递给 消息的接收者,然后继续自己的活动,不需等待接收者返回信息或控 制。下面示例演示了如何在登录文件的情况下使用异步消息。
• • • • • • • • • •
类Book id:Integer title:OID loan:OID findBook(id:Integer):OID 返回指定id的Book对象 getLoan():Loan setLoan(loan:OID) getTitle():Title getObject(book:OID):Bo ok
(3). 简单消 息
它只表示控制如何从一个对象传递给另一个对象,而没有描述通信的任何细节。 这种类型的消息主要用于通信细节未知或者无需考虑通信细节的场合。也就是说,主 要用于不知道消息是同步还是异步的场合,但通常情况下表示异步消息此外在高层分 析中,有时候没有必要指定一个消息是同步的还是异步的。如下面的示例所示。
顺序图的结构控制
可选执行(Optional Execution)
标记为“opt”。
条件执行(Conditional Execution)
标记为“alt”。
并行执行(Parallel Execution)
标记为“par”。
循环执行(Loop/Iterative Execution)
可选执行 标签是opt。如果控制进入该操作符标识的交互区域时监护条件成 立,那么执行该交互区域。监护条件是一个用方括号括起来的布尔表达式, 它要出现在交互区域内部第一条生命线的顶端,在其中可以引用该对象的属 性。 条件执行 标签为 alt。用水平虚线把交互区域分割成几个分区,每个分区表 示一个条件分支并有一个监护条件。如果一个分区的监护条件为真,就执行 这个分区,但最多只能执行一个分区。如果有多于一个监护条件为真,那么 选择哪个分区是不确定的。若没有应对措施,在模型中要避免这种情况。如 果所有的监护条件都不为真,那么控制流将跨过这个交互区域而继续执行。 其中的一个分区可以用特殊的监护条件[else],这意味着如果其他所有区域 的监护条件都为假,就执行该分区。 并行执行 标签是 par。用水平虚线把交互区域分割为几个分区。每个分区表 示一个并发计算。当控制进入交互区域时并发地执行所有的分区;在并行分 区都执行完后,那么该并行操作符标识的交互区域也就执行完毕。每个分区 内的消息是顺序执行的。需要指出的是,并发并不总是意味着物理上的同时 执行。并发其实是说两个动作没有协作关系,而且可按任意次序发生。如果 它们确实是独立的动作,那么它们还可以交叠。 循环(迭代)执行 标签是 loop。在交互区域内的顶端给出一个监护条件。 只要在每次迭代之前监护条件成立,那么循环主体就会重复执行。一旦在交 互区域顶部的监护条件为假,控制就会跳出该交互区域。
相关文档
最新文档