UML课件(顺序图和协作图)
软件工程---交互建模之交互图,顺序图与协作图
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):
每个对象都有自己的生命线,用来表示在该用例中一个对象在一段时 间内的存在
垂直的虚线 如果对象生命期结束, 则用注销符号表示 对象默认的位置在图 顶部,表示对象在交互 之前已经存在 如果是在交互过程中 由另外的对象所创建, 则位于图的中间某处。
顺序图
面向时间描述对象交互的图
协作图
第六章.顺序图和协作图
6.3 顺序图中的消息 返回消息:表示从过程调用返回 如果是过程消息返回, 返回消息:表示从过程调用返回. 如果是过程消息返回 则不用 画出; 如果是非过程消息, 则必须画出. 画出 如果是非过程消息 则必须画出
返回消息
6.3 顺序图中的消息 阻止消息:消息的发送者传递消息给接收者 阻止消息:消息的发送者传递消息给接收者, 如果接收者无法 立即接收, 则发送者放弃该消息. 立即接收 则发送者放弃该消息 超时消息:消息的发送者发出消息给接收者并按指定时间等待 超时消息:消息的发送者发出消息给接收者并按指定时间等待, 若接收者无法在指定时间内接收, 则发送者放弃该消息. 若接收者无法在指定时间内接收 则发送者放弃该消息
•
6.2 顺序图
• 创建对象的两种表示方法: 创建对象的两种表示方法:
6.2 顺序图
• 如果要撤销一个对象,只要在其生命线终止点放置一 如果要撤销一个对象,
符号即可, 个“X”符号即可,该点通常是对删除或取消消息的回 符号即可 应。
6.3 顺序图中的消息
• 调用消息 procedure call • 异步消息 asynchronous • 返回消息 return • 阻止消息 balking • 超时消息 time-out
• 顺序图的样式和元素 • 消息:对象之间传输的信息 消息:
消息
6.2 顺序图
• 顺序图的样式和元素 • 对象的创建和撤消 • 如果对象位于时序图的顶部,说明在交互开始之前 如果对象位于时序图的顶部,
该对象已经存在了。 该对象已经存在了。如果对象是在交互的过程中创建 那么它应当位于图的中间部分。 的,那么它应当位于图的中间部分。 对象在创建消息发生之后才能存在, 对象在创建消息发生之后才能存在,对象的生命线 也是在创建消息之后才存在的。 也是在创建消息之后才存在的。
时序图和协作图
时序图的最大特点是:它以二维的平面上 的一维来表示时间进度,在时间维上定义 各个对象所执行的操作以及它们之间所传 送的消息。从而能够在逻辑上清晰的刻画 这些操作和消息的时序关系乃至因果关系。
简单时序图
7.2 时序图元素及表示法
在UML中,时序图用一个二维图描述系统 中各个对象之间的交互关系。其中,纵轴 是时间轴,时间沿竖线向下延伸,由上至 下表示时间的先后顺序。横轴代表了参与 相互作用的对象。 当对象存在时,生命线由一条虚线表示; 当对象的过程处于激活状态时,生命线上 用一个激活条表示。消息用从一个对象到 另一个对象生命线的箭头表示,箭头以时 间顺序从上到下排列。
时序图(Sequence Diagram)也被称为 顺序图,是一种详细地表示对象之间行为 交互关系的图,主要用来描述对象之间信 息交换时的时间顺序。因此可以清晰而直 观的表示对象之间的行为交互关系以及操 作和消息的时序关系。
时序图的主要用途把用例表达的要求转化 为更进一步的精细表达。它还能用来记录 一个存在系统的对象现在如何交互。 用例常常可被细化为一个或多个时序图。
7.2 时序图元素及表示法
时序图有4种基本图形元素,包括:
对象(object) 生命线(lifeline) 激活(activation) 消息(message)
1. 对象
时序图中的对象在概念上和它在对象图中 的定义是一致的,其图形表示也相同。 每个对象显示在单独的列里,用一个矩形 框代表一个对象,框内填写对象名和它所 属的类名,中间用一个冒号隔开。
2.链接
链接是两个对象间的连接。 它的图形符号也是用一条连接在两个对象间 的实线表示。在连接线上可以标明对象名。
3.消息
UML概述ppt课件精选全文
注释体 用于对UML实体进行文字描述
注释连接
注释连接将注释体与要描述的实体相连。说 明该注释体是对该实体所进行2-
协作图(通讯图)
协作图表示一组对象间关系以及交互活动
协作图可以认为是对象图的扩展,它增加了一些符号用于表 示对象间的交互。协作图和顺序图具有同构性。
指向源同步 消息
表示对象间从目的对象向源对象发送同步消息
指向目的的 同步消息
表示对象间从源对象向目的对象发送同步消息
注释体
注释连接
-35-
示例:协作图
-36-
活动图
活动图:通过动作来组织,主要用于描述某一方法、机制或 用例的内部行为
主要使用场合:业务建模、用例分析
-37-
活动图元语-1
活动 组合活动
1997.1公布 UML 1.0 合作伙伴
业
公
意见
众 1996.6和1996.10 UML 0.9&0.91
化
反
馈 OOPSLA95 Unified Method 0.8
标
准
Booch93 OMT-2
化
Booch91 OOSE
OMT-1 其他方法 统
一
UML基本图
静态模型 (系类统图结 构) class diagrams
转移
用于说明两个对象间存在某种关系,如满足某 个条件并当某一事件发生时,对象将从一个状 态变迁到另一个状态并同时执行一些活动
注释体
注释连接
示例:状态图
顺序图
顺序图:主要用于显示对象间的交互活动,但没有明确的交 互环境和对象状态
主要使用场合:系统分析(用例分析)、设计
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(也就是Unified Modeling Language™),这篇课程的目的是展示出UML的精彩之处.UML中有九种建模的图标,即:∙用例图∙类图∙对象图∙顺序图∙协作图∙状态图∙活动图∙组件图∙配置图本课程中的某些部分包含了这些图的细节信息的页面链接.而且每个部分都有一个小问题,测试一下你对这个部分的理解.为什么UML很重要?为了回答这个问题,我们看看建筑行业.设计师设计出房子.施工人员使用这个设计来建造房子.建筑越复杂,设计师和施工人员之间的交流就越重要.蓝图就成为了这个行业中的设计师和施工人员的必修课.写软件就好像建造建筑物一样.系统越复杂,参与编写与配置软件的人员之间的交流也就越重要.在过去十年里UML就成为分析师,设计师和程序员之间的“建筑蓝图”.现在它已经成为了软件行业的一部分了.UML提供了分析师,设计师和程序员之间在软件设计时的通用语言.UML被应用到面向对象的问题的解决上.想要学习UML必须熟悉面向对象解决问题的根本原则――都是从模型的建造开始的.一个模型model就是根本问题的抽象.域domain就是问题所处的真实世界.模型是由对象objects组成的,它们之间通过相互发送消息messages来相互作用的.记住把一个对象想象成“活着的”.对象有他们知道的事(属性attributes)和他们可以做的事(行为或操作behaviors or operations).对象的属性的值决定了它的状态state.类Classes是对象的“蓝图”.一个类在一个单独的实体中封装了属性(数据)和行为(方法或函数).对象是类的实例instances.用例图用例图Use case diagrams描述了作为一个外部的观察者的视角对系统的印象.强调这个系统是什么而不是这个系统怎么工作.用例图与情节紧紧相关的.情节scenario是指当某个人与系统进行互动时发生的情况.下面是一个医院门诊部的情节.“一个病人打电话给门诊部预约一年一次的身体检查.接待员找出在预约记录本上找出最近的没有预约过的时间,并记上那个时间的预约记录.”用例Use case是为了完成一个工作或者达到一个目的的一系列情节的总和.角色actor是发动与这个工作有关的事件的人或者事情.角色简单的扮演着人或者对象的作用.下面的图是一个门诊部Make Appointment用例.角色是病人.角色与用例的联系是通讯联系communication association(或简称通讯communication)角色是人状的图标,用例是一个椭圆,通讯是连接角色和用例的线.一个用例图是角色,用例,和它们之间的联系的集合.我们已经把Make Appointment作为一个含有四个角色和四个用例的图的一部分.注意一个单独的用例可以有多个角色.用例图在三个领域很有作用.∙决定特征(需求).当系统已经分析好并且设计成型时,新的用例产生新的需求∙客户通讯.使用用例图很容易表示开发者与客户之间的联系.∙产生测试用例.一个用例的情节可能产生这些情节的一批测试用例.类图类图Class diagram通过显示出系统的类以及这些类之间的关系来表示系统.类图是静态的-它们显示出什么可以产生影响但不会告诉你什么时候产生影响.下面是一个顾客从零售商处预定商品的模型的类图.中心的类是Order.连接它的是购买货物的Customer和Payment.Payment有三种形式:Cash,Check,或者Credit.订单包括OrderDetails(line item),每个这种类都连着Item.每个类图包括类,关联和多样性表示.方向性和角色是为了使图示得更清楚时可选的项目.包和对象图为了简单地表示出复杂的类图,可以把类组合成包packages.一个包是UML上有逻辑关系的元件的集合.下面这个图是是一个把类组合成包的一个商业模型. dependencies关系.如果另一个的包B改变可能会导致一个包A改变,则包A依赖包B.包是用一个在上方带有小标签的矩形表示的.包名写在标签上或者在矩形里面.点化线箭头表示依赖对象图Object diagrams用来表示类的实例.他们在解释复杂关系的细小问题时(特别是递归关系时)很有用.这个类图示一个大学的Department可以包括其他很多的Departments.这个对象图示上面类图的实例.用了很多具体的例子.UML中实例名带有下划线.只要意思清楚,类或实例名可以在对象图中被省略.每个类图的矩形对应了一个单独的实例.实例名称中所强调的UML图表.类或实例的名称可能是省略对象图表只要图的意义仍然是明确的.顺序图类图和对象图是静态模型的视图.交互图是动态的.他们描述了对象间的交互作用.顺序图将交互关系表示为一个二维图.纵向是时间轴,时间沿竖线向下延伸.横向轴代表了在协作中各独立对象的类元角色.类元角色用生命线表示.当对象存在时,角色用一条虚线表示,当对象的过程处于激活状态时,生命线是一个双道线.消息用从一个对象的生命线到另一个对象生命线的箭头表示.箭头以时间顺序在图中从上到下排列.协作图协作图也是互动的图表.他们像序列图一样也传递相同的信息,但他们不关心什么时候消息被传递,只关心对象的角色.在序列图中,对象的角色放在上面而消息则是连接线.对象角色矩形上标有类或对象名(或者都有).类名前面有个冒号(:).协作图的每个消息都有一个序列号.顶层消息的数字是1.同一个等级的消息(也就是同一个调用中的消息)有同样的数字前缀,再根据他们出现的顺序增加一个后缀1,2等等.状态图对象拥有行为和状态.对象的状态是由对象当前的行动和条件决定的.状态图statechart diagram显示出了对象可能的状态以及由状态改变而导致的转移.我们的模型例图建立了一个银行的在线登录系统.登录过程包括输入合法的密码和个人账号,再提交给系统验证信息.登录系统可以被划分为四种不重叠的状态:Getting SSN, Getting PIN, Validating, 以及Rejecting.每个状态都有一套完整的转移transitions来决定状态的顺序.状态是用圆角矩形来表示的.转移则是使用带箭头的连线表示.触发转移的事件或者条件写在箭头的旁边.我们的图上有两个自转移.一个是在Getting SSN,另一个则在上Getting PIN.初始状态(黑色圆圈)是开始动作的虚拟开始.结束状态也是动作的虚拟结束.事件或条件触发动作时用(/动作)表示.当进入Validating状态时,对象并不等外部事件触发转移.取而代之,它产生一个动作.动作的结果决定了下一步的状态.活动图活动图activity diagram是一个很特别的流程图.活动图和状态图之间是有关系的.状态图把焦点集中在过程中的对象身上,而活动图则集中在一个单独过程动作流程.活动图告诉了我们活动之间的依赖关系.对我们的例子来说,我们使用如下的过程.“通过ATM来取钱.”这个活动有三个类Customer, ATM和Bank.整个过程从黑色圆圈开始到黑白的同心圆结束.活动用圆角矩形表示.。
UML---顺序图
建立顺序图的步骤
1. 确定交互过程的上下文(context); 2. 识别参与交互过程的对象; 3. 为每个对象设置生命线,即确定哪些对象存在于整个交互过 程中,哪些对象在交互过程中被创建和撤销; 4. 从引发这个交互过程的初始消息开始,在生命线之间从顶到 下依次画出随后的各个消息; 5. 如果需要表示消息的嵌套,或/和表示消息发生时的时间点, 则采用FOC; 6. 如果需要说明时间约束,则在消息旁边加上约束说明; 7. 如果需要,可以为每个消息附上前置条件和后置条件。
图书管理系统——借书顺序图
练习1:还书顺序图
练习2:解释下面的顺序图
:顾客 接收顾客现钞和选择 获得顾客输入 [现钞>价格]找零 [没有零钱]返还现金 显示提示信息 《transaction over》[没有 零钱] [售完]返还现金 显示提示信息 《transaction over》[售完] 更新现钞储存 检查库存 :前端 :记录仪 :分配器
初步类图
购买饮料主要场景的顺序图
已售完场景的顺序图
“零钱数目不对”的场景
“零钱找不开”场景的顺序图
一般的顺序图
:顾客 接收顾客现钞和选择 获得顾客输入 [现钞>价格]找零 [没有零钱]返还现金 显示提示信息 《transaction over》[没有 零钱] [售完]返还现金 显示提示信息 《transaction over》[售完] 更新现钞储存 检查库存 :前端 :记录仪 :分配器
用例阐述:
“购买饮料”用例的次要场景1—饮料已售完 1)若饮料已售完,记录仪要求显示屏显示“已售完” 2)记录仪将钱币从退币口返回给顾客 “购买饮料”用例的次要场景2—需要找零 1)记录仪查找自己的现金储备以便找零; 2)记录仪更新自己的钱币存储记录; 3)记录仪将找回的钱通过退币口返还给顾客; 4)记录仪通知饮料分配器传送一罐饮料到出货口。 “购买饮料”用例的次要场景3—零钱找不开 1)记录仪查找自己的现金储备以便找零; 2)如果无法找零,记录仪要求显示屏显示“投入正好的货 币” 3)记录仪将钱币从退币口返回给顾客
第八章 顺序图和协作图
第八章序列图和协作图本章要点⏹基础内容:序列图和协作图的激活和链⏹重点掌握:序列图和协作图中的对象、消息⏹一般了解:序列图中的分支和从属流导读⏹在标识出系统的类图之后,除了显示了实现用例的组成结构外,还需要描述这些类的对象是如何交互来实现用例功能的,即不但需要类图模型,还需要将它转化为交互图模型。
⏹交互图为基于交互的对象行为建模,是UML用于描述对象之间信息的交互过程的方法,是描述对象间协作关系的模型。
交互图指出对象如何通过协作来完成用例中捕获的业务流程。
⏹UML中的交互图以图形的形式表示方法调用的具体过程,主要有顺序图和协作图两种形式。
UML提供了一系列的图支持面向对象的分析和设计,顺序图和协作图都输描述系统动态视图的交互图。
其中顺序图描述了以时间顺序组织的对象之间的交互活动,协作图强调收发消息的对象的组织结构。
8.1 顺序图概述⏹顺序图由类角色、生命线、激活期和消息组成。
⏹顺序图用于表示一个交互,该交互是协作中各种类元角色间的一组消息交换,侧重于强调时间顺序。
顺序图捕获系统运行中对象之间有顺序的交互,强调的是消息交互的时间顺序。
⏹顺序图用于表示用例中的行为顺序。
顺序图将交互关系表示为一个二维图。
横向轴代表了在协作中各独立对象的类元角色。
纵向轴是时间轴,时间沿竖线向下延伸。
所谓交互是指在具体语境中由为实现某个目标的一组对象之间进行交互的一组消息所构成的行为。
交互——语境对象相互链接的地方就有交互(1)具有对象协作的系统、子系统语境中如:Web商务系统,客户对象、服务器对象间交互(2)操作实现语境中如:操作的参数、局部变量、全局对象相互交互完成操作的实现算法(3)类语境中如:通过交互显示类的属性是如何相互协作的交互——对象和角色⏹交互中的对象可以是具体事物⏹也可以是原型化事物⏹可以是类、构件、节点、用例的实例,也可以是抽象类、接口的间接实例UML提供的交互机制通常用于为以下两种情况进行建模:(1)控制流方面进行建模可针对一个用例、一个业务操作过程或系统过程,也可针对整个系统。
顺序图和协作图
问题: 阻止消息和超时消息属于同步消息还是异步消息?
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)
UML顺序图活动图协作图画法和基础
对 象
生命 线
式的通信,可以激活 某个操作
河南经贸职业学院
信息管理系
4)激活 激活
如果对象接收到消息立即执行某个活动, 如果对象接收到消息立即执行某个活动,就 称该对被激活了。激活用细长的矩形框表示, 称该对被激活了。激活用细长的矩形框表示,写在 该对象的下方。 该对象的下方。
河南经贸职业学院
信息管理系
顺序图在两个轴: 顺序图在两个轴:
• 水平轴表示不同的对象, 水平轴表示不同的对象, • 垂直轴表示时间。 垂直轴表示时间。 表示, 顺序图中的对象用一个带有垂直虚线的矩形框表示, 并标有对象名和类名。 并标有对象名和类名。 垂直虚线是对象的生命 表示在某段时间内对象是存在的。 线,表示在某段时间内对象是存在的。 对象间的通信通过在对象的生命线间画消息来表 消息的箭头指明消息的类型。 示。消息的箭头指明消息的类型。 浏览顺序图的方法是,从上到下按时间的顺序查看 从上到下按时间的顺序查看 对象之间交互的消息。 对象之间交互的消息。
河南经贸职业学院
信息管理系
协作图
协作图(Collaboration Diagram)用于描述相互合作的
对象间的交互关系和链接关系.
虽然顺序图和协作图都是用来描述对象间的交互关 系,但侧重点一样。顺序图着重体现交互的时间顺
序,而协作图则着重体现交互对象间的静态链 接关系。 接关系。
河南经贸职业学院
信息管理系
河南经贸职业学院 信息管理系
小结
顺序图 活动图 协作图
河南经贸职业学院
信息管理系
河南经贸职业学院
信息管理系
对象1:类名 1
对象2:类名2
对象3:类名3
消息1 消息2 消息3
UML流程图(PPT 41张)
• 结点 • 连接
部署图
老师在线答疑系统部署图
课后练习
老师在线答疑系统的网络白板需求描述: 1、同时使用白板的用户必须是2个,一个老师和一个学生 2、使用白板的2个用户是对等的,两个用户看到的内容是一 样的
3、用户可以在上面写文字和作图,后者包括:直线,圆, 椭圆和矩形
4、用户可以增删,选择,移动上面的文字和图形标记
活动图
老师登陆系统
活动图
练习 1、学生第一次开学入学,首先正确填写表格, 如果表格不正确,那么必须获得帮助以正 确填写它们。接着办理大学的入学手续。 但是,在大学里成功入学后,必须参加指 定的概况介绍,还要至少登记一个研习班 并交付一部分的学费。使用活动图来表达 该流程
顺序图
顺序图用来描述对象之间动态的交互关系, 着重体现对象间消息传递的时间顺序。 • 对象 • 消息
状态图
状态图表示某个类所具有的不同状态和状态 转移时的触发条件。 • 状态 • 转移
状态图
• 老师在线状态图
状态图
练习
1、汽车有向前行驶,向后行驶和停止3种状
态,请使用UML图将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
场景描述
曹操 :刘备
:孔明
求战 请拟策略
:关羽
:张飞 孙权
请防守荆州
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
顺序图
面向时间描述对象交互的图
协作图
对象间消息的结构化视图
2 顺序图
按照时间顺序显式对象之间交互的图
2.1 顺序图的组成
活动者(actor)或者 对象(object) 生命线(lifeline) 激活(activation)/ 控制焦点(focus of control) 消息(message)
2.5 消息
格式
[前缀][守卫条件][顺序表达式][返回值:=]消息名([参数列表])
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() 简单消息 在发送线程c的第2个 带返回值的嵌套消息 消息之前,必须先发 条件消息 送线程a的第3个消息 循环消息 和线程b的第4个消息 在发送消息1.2之 线程同步 前必须已经同时 带前缀消息 发送并发消息给 线程a和b
recurrence表示一个条件或迭代的执行有两种选择
* [ 循环子句 ] 循环子句(iteration-clause)用来指定一个循环(重复执行) 例如:一个包括循环的消息 1.1 *[x = 1..10] : doSomething()
[ 条件子句 ] 条件子句一般用来表示分支而不是用作守卫条件[x<0],是 两个可以用来分枝的条件子句,这两个条件只能有一个为 真因而只有一个分枝被执行(即发送与分枝有关的消息) 条件子句和循环子句都可以用伪代码或真正的编程语言表示 序列表达式用冒号结束
2.5 消息
UML三种消息:
调用(Procedure
Call) 异步(Asynchronous) 返回(Return)
Rose扩充:
阻止(Balking)
超时(Time-out)
2.5 消息
UML三种消息:
调用(Procedure
Call) 发送者把消息发送后,等待直到接收者返回控制, 可以表示同步; 实心箭头符号
面向对象方法中,消息是对象间交互信息的主要方 式。 结构化程序设计中,模块间传递信息的方式主要是 过程(或函数)调用。 对象A向对象B发送消息,可以简单地理解为对象A 调用对象B的一个操作(operation)。
2.5 消息
顺序图中,尽力保持消息的顺序是从左到右排列的。 一个顺序图的消息流开始于左上方,消息2的位置 比消息1低,这意味着消息2的顺序比消息1要迟。 因为西方的阅读习惯是从左到右。 顺序图中消息编号可显示,也可不显示。协作图中 必须显示。
2.2 活动者或对象
活动者和对象按照从左到右的顺序排列 一般最多两个活动者,他们分列两端。启动这个 用例的活动者往往排在最左边;接收消息的活动 者则排在最右端; 对象从左到右按照重要性排列或按照消息先后顺 序排列。
2.2 活动者或对象
对象的命名方式有三种:
包括对象名和类名 类名(匿名对象) 对象名(不关心类)
2.5 消息
自调用(回授)(Self Call)
某对象自己调用自己的操作 UML标记
(嵌套的矩形条)
Rose标记
2.5 消息
Rose新增消息
阻止(Balking)
接收者如果无法立即接收消息,则发送者放弃该消息 超时(Time-out) 如果接收者无法在指定的时间内接收消息,则发送者放 弃该消息
守卫条件(guard-condition)
语法:
[ 条件短语 ] 条件短语通常用伪代码或真正的程序语言来表示, UML并不规定其语法 例如,[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, 等。这样的序列号不仅能够表示消息的顺序而且还 能表示消息的嵌套关系(当消息是异步消息时消息为嵌套 的操作调用及返回) name表示并发控制线程,例如1.2a和1.2b为同时发送 的并发消息
2.3 生命线
生命线(Lifeline):
每个对象都有自己的生命线,用来表示在该用例中一个对
象在一段时间内的存在 垂直的虚线 如果对象生命期结束,则用注销符号表示 对象默认的位置在图顶部,表示对象在交互之前已经存在 如果是在交互过程中由另外的对象所创建,则位于图的中 间某处。
例:
前缀(predecessor)
语法:消息序列号,消息序列号,
... / 前缀是一个用来同步线程或路径(path)的表达式 意思是在发送当前消息之前指定序列号的消息被处理 (必须连续执行) 消息序列号之间用逗号隔开,用斜杠结束 例如 1.1a, 1.1b/1.2: continue() ,在发送消息1.2之前 必须已经同时发送并发消息给线程a和b
2.4 激活期
激活期(activation)/控制焦点(focus of control)
对象在一段时间内获得了焦点,也称激活期
对象执行某个动作的时期 空心矩形条
激活期的长短意味着对象执行某个动作的时间有多长,
可以通过约束{10ms}来限制执行时间的长短。
2.5 消息
返回值、消息名和参数表 返回值表示一个操作调用(即一个消息)的结果
2.7 建立顺序图的步骤
确定交互的范围; 识别参与交互的对象和活动者; 设置对象生命线开始和结束; 设置消息; 细化消息;
3 协作图
描述系统对象(或活动者)如何共同协作 实现用例; 强调的是参与交互的对象的组织; 一般,顺序图和交互图可以相互转换, Rose提供了转换工具。 先画顺序图,再转成协作图更容易
顺序图与协作图
1 交互图概述
Interaction diagram,是描述对象之间的关系和 对象之间的信息传递的图; 通常用来描述一个用例的行为,实现一个用例, 完成对系统的动态行为建模; 包含两种:
顺序图(或时序图,sequence
diagram) 协作图(collaboration diagram)
UML标记
Rose标记
4.3.3 案例:存款
2.5 消息
UML三种消息:
异步(Asynchronous)
消息发送后,发送者继续操作,不等待,常用于并 发;
2.5 消息
UML三种消息:
返回(Return)
表示消息的返回。消息上方放置返回值 同步消息的返回可以画出(如果想明确表达返回值), 也可以不画出,直接隐含。 异步消息可以有返回,也可以没有。(可以响应异步 消息,也可以不响应该异步消息。) 如果顺序图上显示有编号,则返回消息的编号和当初 发送消息的编号完全一样。 虚线箭头表示,和依赖关系不要混淆
4.3.1 多对象
多对象是多个对象组成的集合,往往是同 一个类的对象; 如果消息同时发给多个对象,则用多对象 表示; 在顺序图中仍然显示为单对象一样的图标, rose中multiple instance 协作图中重叠的方框。4Biblioteka 3.2 活动对象/主动对象
主动对象是一组属性和一组方法的封装体,其中至 少有一个方法不需要接收消息就能主动执行(称为 主动方法) 主动对象是不需接收消息就可自动启动交互的对象 除了含有主动方法外,主动对象和被动对象无区别