顺序图
顺序图
维图。 横轴代表了在协作
中各独立的对象。 纵轴是时间轴,时 沿时间方向按时间 递增顺序列出各个
间沿竖线向下延伸。
对象所发出和接收
的消息。
6
主要内容
1 2 3 4 5
顺序图的基本概念 顺序图的组成元素 顺序图的交互框架 顺序图的建模步骤
顺序图的案例介绍
7
顺序图的组成元素
顺 序 图 的 组 成
8
对象
顺序图中对象的符号和对象图中对象所用的符号一样。 对象的命名方式:
UML : Course
: Course
UML
对象名和类名
类名(匿名对象)
对象名(不关心类)
9
创建和销毁对象
在顺序图中,创建对象操作的执行使用消息的箭头表示,箭 头指向被创建对象的框。 如果要撤销一个对象,只要在其生命线终止点放置一个“X” 符号即可。
3: balance
opt ref
4: debit(amountNumber,amount)
balance>amount
Debit Account(accountnumber,amount)
5: cash 6: cash
20
顺序图的交互框架
:
项目管理员
项目管理窗口 :用户接口
:项目
:
活动
:任务
清除项目
4
基本概念
顺序图作为一种描述在给定语境中消息是如何在对象间传递 的图形化方式。顺序图的用途分为以下三个方面:
确认和丰富一个使用语境的逻辑表达。系统的使用语境就是系 统潜在的使用方式的描述。一个使用语境的逻辑可能是用例的 一部分,或是一条控制流。 细化用例的表达。顺序图把用例表达的需求,转化为进一步、 更加正式层次的精细表达。用例常常细化为一个或者更多的顺 序图。 有效地描述如何分配各个类的职责以及各类相应职责的原因。
顺序图功能
顺序图功能
顺序图是用来描述系统中的事件交互和参与者之间的交互过程,它展示了事件的序列性、参与者的交互、消息的传递和响应等。
顺序图的功能主要有以下几个方面:
1. 交互过程的可视化:顺序图通过图形化的方式展示了系统中参与者之间的交互过程,使得人们可以直观地了解事件是如何发生,并且可以清楚地看到交互的顺序和关系。
2. 事件和消息的交互描述:顺序图通过表示事件和消息的箭头以及箭头上的标识符,清楚地展示了交互过程中消息的传递和响应,使得人们可以准确地描述和理解事件之间的关系。
3. 可视化系统的结构和行为:顺序图可以用来描述系统的结构和行为,可以展示参与者之间的相互作用、系统的工作流程和具体的处理过程等,非常方便理解和沟通系统的设计和实现。
4. 用例场景的描述和验证:顺序图可以用来描述和验证用例场景,可以清晰地展示用例的流程和参与者之间的交互,从而帮助人们更好地了解用例的功能和特点,并进行需求的分析和确认。
5. 系统的动态行为模拟和测试:顺序图可以用来模拟和测试系统的动态行为,可以根据顺序图中的交互逻辑和时间顺序,来模拟和实现系统的具体行为和响应,从而验证系统的正确性和性能。
6. 分析和优化系统的性能和效率:顺序图可以用来分析系统的性能和效率,可以清晰地展示系统中交互的过程和消息的传递,从而帮助人们发现系统的瓶颈、优化系统的性能、提高系统的效率等。
总之,顺序图是一种非常有用和强大的工具,可以用来描述和展示系统中的交互过程和消息传递,可以帮助人们更好地理解和分析系统的结构和行为,从而支持系统的设计、实现、模拟、测试和优化等工作。
《顺序图举例》课件
优点包括能清晰描绘系统交互流程,缺点包括不适用于描述并发和复杂逻辑。
角色/对象
顺序图中的角色或对象代表系统中的实体,可以是人、物、或其他系统。
消息/信号
消息或信号是对象之间相互交互的信息,用于描述它们之间的通信过程。
生命周期
生命周期表示对象在交互过程中的活动状态,可用于展示对象的创建、销毁和状态变化。
顺序图的绘制步骤
1
定义消息/信号
2
定义对象之间的消息或信号,并确
例子
餐厅点餐系统
使用顺序图展示餐厅点餐系统的用户和后厨之 间的交互流程。
旅游网站预订流程演示
使用顺序图展示旅游网站的用户预订流程和系 统的后台处理过程。
总结
1 顺序图的重要性
顺序图是理解和描述对象间交互行为顺序的重要工具,对系统设计和测试具有重要作用。
2 绘制顺序图的方法
通过识别角色、定义消息和绘制生命周期的方式来绘制顺序图。
系统测试过程
顺序图可以用于描述系 统测试过程中不同组件 之间的交互行为,帮助 测试人员进行测试计划。
绘制顺序图的注意事项
1 界面布局
合理的界面布局可以使顺序图更易读和理解,注意元素的对齐和分组。
2 消息/信号命名
消息或信号的命名要具备准确性和清晰度,避免歧义和误解。
3 生命周期定义
生命周期的定义要准确反映对象的状态变化,确保图示的准确性。
《顺序图举例》PPT课件
这份PPT课件将带你深入了解顺序图,从基本定义到应用场景,让你轻松掌握 顺序图的绘制技巧。
什么是顺序图
顺序图是一种用于展示对象之间交互行为顺序的图表。它描述了对象之间的 消息传递和生命周期。
顺序图可以帮助们更好地理解系统内部的交互过程,从而进行系统设计和 测试。
第六章.顺序图和协作图
6.3 顺序图中的消息 返回消息:表示从过程调用返回 如果是过程消息返回, 返回消息:表示从过程调用返回. 如果是过程消息返回 则不用 画出; 如果是非过程消息, 则必须画出. 画出 如果是非过程消息 则必须画出
返回消息
6.3 顺序图中的消息 阻止消息:消息的发送者传递消息给接收者 阻止消息:消息的发送者传递消息给接收者, 如果接收者无法 立即接收, 则发送者放弃该消息. 立即接收 则发送者放弃该消息 超时消息:消息的发送者发出消息给接收者并按指定时间等待 超时消息:消息的发送者发出消息给接收者并按指定时间等待, 若接收者无法在指定时间内接收, 则发送者放弃该消息. 若接收者无法在指定时间内接收 则发送者放弃该消息
•
6.2 顺序图
• 创建对象的两种表示方法: 创建对象的两种表示方法:
6.2 顺序图
• 如果要撤销一个对象,只要在其生命线终止点放置一 如果要撤销一个对象,
符号即可, 个“X”符号即可,该点通常是对删除或取消消息的回 符号即可 应。
6.3 顺序图中的消息
• 调用消息 procedure call • 异步消息 asynchronous • 返回消息 return • 阻止消息 balking • 超时消息 time-out
• 顺序图的样式和元素 • 消息:对象之间传输的信息 消息:
消息
6.2 顺序图
• 顺序图的样式和元素 • 对象的创建和撤消 • 如果对象位于时序图的顶部,说明在交互开始之前 如果对象位于时序图的顶部,
该对象已经存在了。 该对象已经存在了。如果对象是在交互的过程中创建 那么它应当位于图的中间部分。 的,那么它应当位于图的中间部分。 对象在创建消息发生之后才能存在, 对象在创建消息发生之后才能存在,对象的生命线 也是在创建消息之后才存在的。 也是在创建消息之后才存在的。
知识点学习(顺序图和协作图 )
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九种建模图--顺序图概述顺序图是⼀种交互图(interaction diagram).交互图展现了⼀种交互,它由⼀组对象或参与者以及它们之间可能发送的消息构成。
交互图专注于系统的动态视图。
顺序图是强调消息的时间次序的交互图。
组成顺序图主要有4个标记符:对象、⽣命线、消息和激活。
对象三种表⽰⽅法1.包括对象名和类名,2、只有类名3.只有对象名⽣命线⽣命线⽤于描述对象的存在周期,对象下⽅的虚线就是该对象的⽣命线。
激活控制焦点是指活动者或对象处于执⾏状态的时间段消息消息⽤于描述对象间交互的⽅式及内容。
消息分为四种:同步消息、异步消息、返回消息、⾃关联消息1.同步消息:⼀个对象向另⼀个对象发出同步消息后,将处于阻塞状态,⼀直等到另⼀个对象的回应表⽰⽅式:2.异步消息:⼀个对象向另⼀个对象发出异步消息后,这个对象可以进⾏其他的操作,不需要等到另⼀个对象的响应表⽰⽅式:3.返回消息:同步消息的返回消息表⽰⽅式:4.⾃关联消息:⽤来描述对象内部函数的互相调⽤表⽰⽅式:还有顺序图中对于流程控制的模块:复合⽚段复合⽚段有多种,在此主要介绍⼀下⼏种:条件判断、可选、循环、同步1.条件判断:⽤于描述代码中if…else…这种结构标记为“alt”例如:2.可选:是⼀种特殊的“条件判断”,它只是⼀个if,没有else if或else 可选的标记为:opt3.循环:是指代码中的for、while之类的语句块循环的标记为:loop例如:下图中[m,n]是指⾄少执⾏m次,最多执⾏n次4.同步:⽤于描述多线程的情况同步的标记是:par画顺序图的步骤:1. 确定交互的范围2. 确定参与交互的活动者与对象3. 确定活动者、对象的⽣存周期4. 确定交互中产⽣的消息5. 细化消息的内容。
第6章 顺序图和协作图
6.4 顺序图理解
计算机 打印文件 [打印机忙] [打印机空闲] 打印服务器 打印机 打印队列
条件[打印机忙]和[打印机空闲]是两个互斥的条件, 打印服务器根据条件来确定消息发给对象“打印 机”还是对象“打印队列”。两个消息都是从同 一点出发的,这表示两个分支在同一时间点上只 能执行一个分支。
6.4 顺序图理解 6.4.2 从属流 从属流与条件分支不 同,从属流允许某一 个对象根据不同的条 件改变执行不同的操 作,即可以创建对象 的另一个生命线分支。
如果为了强调需要对多个对象重复发送某个消息, 可以在顺序图中添加循环标识符号,顺序图中表 示循环执行的消息有三种方式。
第一种,在需要循环重复执行的消息前添加符号 “*”,并在其后的中括号中写明具体的条件。
计算机 打印服务器 打印队列
校验打印文件
*[for each file] [check()=true]
6.2 顺序图元素
顺序图描述了对象以及对象之间传递的消息,强 调对象之间的交互是按照时间的先后顺序发生的, 这些特定顺序发生的交互序列从开始到结束需要 一定的时间。在顺序图中主要包括了以下四种元 素: • • • • 对象 生命线 激活 消息
6.2 顺序图元素 6.2.1 对象
类定义了对象可执行的各种行为,但在面向对象 系统中,行为的执行者是对象,而不是类,因此 在顺序图中通常描述的是对象层次而不是类层次。 面向对象分析中最基本的单位是对象,它代表现 实世界中一个一个地具体事物。 在顺序图中使用一个方框表示 一个对象,对象的名字下面有 一个下划线,一个学生对象 “张三”如图所示。
张三
6.2 顺序图元素
在顺序图中也可以使用用例图中的参与者图符 。 如果一个对象在顺序图的第一个操作之前就已经 存在,那么该对象的图符就应该画在顺序图的顶 部。 如果一个对象是在顺序图的交互过程中,由其他 对象创建的,那么该对象就不应该出现在顺序图 的顶端,而应该出现在创建该对象消息的末端 。
顺序图
阻止消息 消息的发送者传递消息给接 收者,如果接收者无法立即接收, 则发送者放弃该消息。
Rational Rose画顺序图
打开rose软件,选择新建Sequence Diagram
Rational Rose画顺序图
Rational Rose画顺序图
Selection Tool:光标返回 箭头,选择工具
选项(Opt)
• 包含一个可能发生或不发生的序列
循环(Loop)
• 片段重复一定次数。 可以在临界中 指示片段重复的条件。
并行(Par)
组合片段
谢建模序列图的下一步是从左到右布置在该工作流程中所有的参与 者和对象,同时也包含要添加消息的对象生命线。
Rational Rose画顺序图
在对象之间添加消息
Rational Rose画顺序图
在对象之间添加消息,选择消息种类
Rational Rose画顺序图
常用消息的类型
自关联消息
用来描述对象内部函数的互相调
用。
超时消息
超时消息是同步消息中的一种特 殊情况,源消息对象发出消息后将等 待响应一段时间,在限定时间内还没 有响应时,源消息对象将取消阻塞状 态而执行后续操作。
常用消息的类型
异步消息 消息的发送者将消息发送给 消息的接受者后,不用等待回应 的消息,即可开始另一个活动。
Text Box:创建文本框
Note:创建注释 Object:序列图中的对象
Anchor Note to Item:将注释连接到序列图 中的相关模型元素 Object Message:两个对象之间的普通消 息,消息在单个控制线程中运行
Message to Self:对象的自身 消息 Return Message:返回消息 Destruction Marker:销毁对象标记 Procedure Call:两个对象之间的过程调用 Asynchronous Message:两个对象之 间的异步消息,也就是说客户发出
顺序图(SequenceDiagram)
顺序图(SequenceDiagram)
顺序图(Sequence Diagram):
是⼀种强调对象间消息传递次序的交互图,⼜称为时序图或序列图。
描述了在⼀个⽤例或操作的执⾏过程中对象如何通过消息相互交互,说明了消息如何在对象之间被发送和接收以及发送的顺序。
组成:
交互⽚段(Interaction Fragment):
⼀个复杂的顺序图可以划分为⼏个⼩块,每⼀个⼩块称为⼀个交互⽚段,由⼀个⼤⽅框包围。
常⽤的操作符包括:
1) alt:多条路径,条件为真时执⾏。
2) opt:任选,仅当条件为真时执⾏。
3) par:并⾏,每⼀⽚段都并发执⾏。
4) loop:循环,⽚段可多次执⾏。
消息:
1)调⽤消息(Call Message): 在顺序图中有的消息对应于激活,表⽰它将会激活⼀个对象。
2)发送消息(Send Message): 如果消息没有对应激活框,表⽰它不是⼀个调⽤消息,不会引发其他对象的活动。
3)⾃⾝消息(Self Call Message): 如果对象的⼀个⽅法调⽤了⾃⼰的另⼀个⽅法时,消息是由对象发送给⾃⾝。
4)创建/销毁消息(Create/Destroy Message): 创建消息⽤于使⽤new关键字创建另⼀个对象,⽽销毁消息⽤于调⽤对象的销毁⽅法将⼀个对象从内存中销毁。
在下⼀节我们讨论⼀下状态图。
第13讲 UML详细设计-顺序图
时序图中,消息的阅读顺序是严格自上而下的
消息的类型:
在UML中,总共有4种类型的消息,如下图所示。 到目前为止只看到了一种消息,即简单消息(flat message)。
(1). 同步消 息 同步消息(synchronous message)代表一个操作调用的控制流。 同步消息的发送者把控制传递给消息的接收者,然后暂停活动,等 待消息接收者的应答,收到应答后才继续自己的操作。
以使用顺序图进一步阐明和实现。
顺序图刻画了用例具体实现的流程,比活动图更能 够表示细节,因此适用于详细设计。
顺序图与用例图和类图的关系
UML
-5-
三、顺序图的标记符 顺序图有两个主要的标记符:活动对象和这些活动对象之间 的通信消息。活动对象可以是任何在系统中扮演角色的对象,不 管它是对象实例还是参与者,如下图所示。
练习:建模在图书馆网上借书和续借书的顺 序图 包括:登陆、个人借阅信息界面、续借(图 书是否过期,是否续借过)
3.分支和从属流 有两种方式来修改顺序图的控制流:使用分支和使用从属 流。控制流的改变是由于不同的条件导致控制流走向不同的道 路。 分支是指从同一点发出的多个消息并指向不同的对象,根据 条件是否互斥,可以有条件和并行两种结构。
注意消息的开始位置是相同的,分支消息的结束“高度”也是相 等的。这说明在下一步中,其中之一将会执行,如下图所示。
交互图-顺序图
第二个是目标对象收到一条同步消息并返回一条回复。
第三个是目标对象收到一条异步消息并返回一条回复。
迷路消息和拾取消息
迷路消息是那些发送了却没有到达指定接收者, 或者到达的接收者不再当前图中。
拾取消息是收到来自那些未知的发送者,或者来 自没有显示在当前图的发送者的消息。 它们都表明是去往或来自一个终点元素。
门
门是连接片段内消息和片段外消息的连接点。 在 EA中,门显示为片段框架上的小正方形。作用为 顺序图与页面外的连接器。 用来表示进来的消息 源,或者出去消息的终点。
内部通信
内部消息表现为一个操作的递 归调用,或一个方法调用属于 同一个对象的其他方法。显示 为生命线上执行事件的嵌套控 制焦点。
复合片段
顺序图不适合表达复杂的过程逻辑。在一种情况下,有许多机制允许把一定程度的过程逻辑加入到图中, 并把它们放到复合片段的标题下。复合片段是一个或多个处理顺序被包含在一个框架中,并在指定名称的 环境下执行。 片段可以是: 选择性片段 (显示 “alt”) 为 if…then…else 结构建模。 选项片段 (显示 “opt”) 为 "switch"(开关) 结构建模。 中断片段对被处理事件的可选择顺序建模,而不是该图的其他部分。 并行片段(显示 “par”) 为并发处理建模。 弱顺序片段 (显示 “seq”) 包含了一组消息,这组消息必须在后继片段开始之前被处理。但不会把片段 内消息的先后顺序强加到不共享同一条生命线的消息上。 严格顺序片段 (显示 “strict”) 包含了一系列需要按照给定顺序处理的消息。 非片段 (显示 “neg”) 包含了一系列不可用的消息。 关键片段 具有关键部分。 忽略片段 声明一个没有意义的消息,如果它出现在当前上下文中。 考虑片段与忽略片段相反,不包含在考虑片段内的消息都应该被忽略。 断言片段 (显示 “assert”)标明任何没有显示为声明操作数的顺序都是无效的。 循环片段 包含一系列被重复的消息。
顺序图和协作图
问题: 阻止消息和超时消息属于同步消息还是异步消息?
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顺序图和协作图一.顺序图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.概述顺序图(Sequence Diagram)是交互图的一种,它按照交互发生的时间顺序,利用对象的“生命线”和消息描述对象之间的交互。
通常用来描述一个用例的行为,完成对系统的动态行为建模。
顺序图主要目的是定义事件序列,产生一些希望的输出,其重点不是消息本身,而是消息产生的顺序。
一个典型的顺序图如图1所示,图1. 顺序图2.基本元素顺序图的基本元素有生命线、消息、活动者、对象、组合片断。
2.1 生命线(Lifeline)一条生命线代表着顺序图中的一个参与者,表示建模的角色或对象实例。
在UML中,生命线画作一个方格,一条虚线从上而下,通过底部边界的中心,生命线对象的名字放置在方格里,如图2所示,图2. 生命线(1)通常,顺序图属于某个用例时,顺序图中会包含有参与者的生命线。
边界类、控制类、实体类都可以拥有生命线,如图3所示,图3. 生命线(2)2.2消息(Messages)消息是对象之间的一种通信,它可以传递信息并期望相关的动作被执行。
顺序图的第一个消息总是从顶端开始,并且一般位于图的左边。
然后继发的消息加入图中,稍微比前面的消息低些。
在UML中,一个对象传递一个消息给另一个对象,画一条线指向接收对象,包括一个实心箭头(表示同步调用操作)或一个棍形箭头(表示一个异步信号)。
消息或方法名字放置在带箭头的线上面。
如图4所示,第一个消息是一个同步消息,隐式返回。
第二个消息表示异步,第三个消息即是异步消息的返回的消息。
图4. 消息生命线上的瘦矩形表示消息执行发生或一个控制焦点的激活,表明对象在某一时间点开始执行活动。
在图4中,有三个执行发生。
调用本身的消息可用于表示一个操作的递归调用,或者同一对象中一个方法对另一个方法的调用,如图5所示,图5. 调用自身消息2.3约束(Constraints)当为对象的交互建模时,有时候,必须满足一个条件,消息才会传递给对象。
约束在各个不同的UML图中,用于控制流。
顺序图
顺序图:显示对象之间交互的图,对象时按时间顺序排列的。
一般把参与者对象放在图的两侧,主参与者放在最左边,次要参与者放在右边
调用(precedure call)消息:发送者把控制传递给消息的接受者,然后停止活动等待消息接收者放弃或返回控制
异步(asynchronous)消息:发送者通过消息把信号传递给消息的接收者,然后继续自己的活动,不等待接收者返回消息或控制
返回(return)消息:表示从过程调用返回
阻止(Balking)消息:发送消息者发送消息给接收者,要是消息接收者无法立即接收消息泽发送者放弃这消息
超时(TimeOut)消息:发送消息者发送消息给接收者并按照指定时间等待。
如果接收者无法
再指定时间类接收消息,则发送者放弃这个消息
顺序图表示对象之间的交互
登陆顺序图:
User:创建的实例
添加用户的顺序图:
打开添加用户的界面,在界面上选择一个组(可以通过一个下拉选择框来选择),然后向后台提交,后台系统保存用户的信息
并同时建立用户和组之间的关联。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
状态改变
RegisterControl getCourseOfferings(forSemes... CourseCatalogSystem
交互图(interaction diagram)
交互图是一种详细表示对象之间以及对象与系统外部的参 与者(actor)之间动态联系的图形文档。
【问题:】请你利用UML的动态视图中的顺序图对在ATM 取款最理想的场景进行建模
Object
sequence图和collaboration图描述的是对象之间 的消息发送关系,而不是类之间的关系。
在顺序图中并不包括系统中的所有类的对象。也有 可能某些对象属于同一个类。
交互图中的对象的常见命名方式:
显示对象名和类名 只显示类名
只显示对象名
Message
消息的类型:在UML 1.4以上版本的规范说明中消息分 同步消息,异步消息,返回消息三种。
下依次画出随后的各个消息; 5. 如果需要表示消息的嵌套,或/和表示消息发生时的时间点,
则采用FOC; 6. 如果需要说明时间约束,则在消息旁边加上约束说明; 7. 如果需要,可以为每个消息附上前置条件和后置条件。
图书管理系统——借书顺序图
练习1:还书顺序图
练习2:解释下面的顺序图
:顾客
:前端
水平轴上的对象间的相互顺序并不重要。
顺序图不表示对象间的关联(associations)关系。
建立顺序图的步骤
1. 确定交互过程的上下文(context); 2. 识别参与交互过程的对象; 3. 为每个对象设置生命线,即确定哪些对象存在于整个交互过
程中,哪些对象在交互过程中被创建和撤销; 4. 从引发这个交互过程的初始消息开始,在生命线之间从顶到
:记录仪
:分配器
接收顾客现钞和选择
获得顾客输入
[没有零钱]返还现金
[现钞>价格]找零
显示提示信息
《transaction over》[没有 零钱]
[售完]返还现金
检查库存
显示提示信息 《transaction over》[售完]
更新现钞储存
[现钞>价格]接收找零
发送饮料
接收饮料 《transaction over》
交互图是用来描述对象之间的动态协作关系以及协作过程 中的行为次序,它常常用来描述一个用例的行为,显示该 用例中所涉及的对象和这些对象之间的消息传递情况。
交互图的两种形式
交互图有两种形式:
顺序图(sequence diagram) 协作图(collaboration diagram)
顺序图:强调消息的时间顺序的交互图。图形 上是一张表,对象沿X轴排列,消息沿Y轴按时 间顺序排列。
其它消息类型:如阻止(balking)消息,超时(time-out)消息等为 UML核心的扩充。
同步消息
异步消息
返回消息
顺序图的特点
顺序图是一个二维图形。在顺序图中水平方向为 对象维,沿水平方向排列参与交互的对象;竖向 方向为时间维,沿垂直向下方向按时间递增顺序 列出各对象所发出和接收的消息。
可视化建模与UML
东软信息学院 计算机系
主要内容
描述系统的动态建模以及如何在一个模型中捕获 它。 介绍交互图的两种形式
顺序图 (sequence diagram) 协作图(collaboration diagram)
比较顺序图和协作图的异同点
Example1
Example2
对象需要交互
对象相互链接的地方就有交互 具有对象协作的系统、子系统语境中
如Web商务系统,客户对象、服务器对象间交互
操作实现语境中
操作的参数、局部变量、全局对象相互交互完成操作的实 现算法
类语境中
通过交互显示类的属性是如何相互协作的
对象通过消息交互
Messages,传递信息的对象之间所进行的通 信,消息带有对将要发生的活动的期望
显示提示信息 《transaction over》[售完]
更新现钞储存
[现钞>价格]接收找零
发送饮料
接收饮料 《transaction over》
练习
用户在ATM(自动取款机)提取1000元人民币的最理想 场景(卡内有余额5000,密码1234)如下描述
开始用户(张三)将银行卡插入到读卡器,读卡器读卡号, 打开张三的账目对象,并初始化屏幕,屏幕提示输入PIN (密码),张三输入密码(1234),然后系统验证密码 与帐户对象,发出相符的信息。ATM屏幕向张三提供选项, 张三选择取款,然后屏幕提示张三输入取款金额,他选择 了1000元RMB,系统启动账目对象进行核实,之后从帐 户中取钱;系统启动一系列的账目对象要完成的过程。首 先,验证张三的帐目至少有1000元RMB ,然后从中扣除 1000元RMB,再让吐钱机提供1000元RMB现金,另外 还需要让票据打印机提供取款凭据,最后让读卡器退卡。
初步类图
购买饮料主要场景的顺序图
已售完场景的顺序图
“零钱数目不对”的场景
“零钱找不开”场景的顺序图
一般的顺序图
:顾客
:前端
:记录仪
:分配器
接收顾客现钞和选择
获得顾客输入
[没有零钱]返还现金
[现钞>价格]找零
显示提示信息
《transaction over》[没有 零钱]
[售完]返还现金
检查库存
协作图:强调发送和接收消息的对象之间的组织 结构的交互图。图形上是顶点和弧的结合
顺序图(Sequence diagram)
定义:顺序图描述了对象之间传送消息的时间 顺序,它用来表示用例中的行为顺序。
Sequence图中的组成元素
顺序图中的一些主要元素:
– Object (包括actor实例) – Lifeline (生命线) – Focus of control(控制焦点)和activation(激活期) – Message
顺序图:从用例到类
顺序图使你可以可视化地对系统逻辑建模。 对象、类和参与者都在顺序图中进行了描述。 理解分析阶段的基本逻辑,在设计阶段详细将 其突出出来。
实例:饮料销售机系统用例图 Nhomakorabea例阐述:
“购买饮料”用例的主要场景: 1)顾客从投币口塞入钱币,然后选择想要的饮料; 2)系统将钱币送入钱币记录仪; 3)记录仪检查是否还有存货; 4)记录仪更新自己的钱币存储记录; 5)记录仪通知饮料分配器传送一罐饮料到出货口。
用例阐述:
“购买饮料”用例的次要场景1—饮料已售完 1)若饮料已售完,记录仪要求显示屏显示“已售完” 2)记录仪将钱币从退币口返回给顾客 “购买饮料”用例的次要场景2—需要找零 1)记录仪查找自己的现金储备以便找零; 2)记录仪更新自己的钱币存储记录; 3)记录仪将找回的钱通过退币口返还给顾客; 4)记录仪通知饮料分配器传送一罐饮料到出货口。 “购买饮料”用例的次要场景3—零钱找不开 1)记录仪查找自己的现金储备以便找零; 2)如果无法找零,记录仪要求显示屏显示“投入正好的货 币” 3)记录仪将钱币从退币口返回给顾客