UML基础与建模实践:7、第七章 顺序图_第1页
UML基础与建模实践:7、第七章 顺序图_第2页
UML基础与建模实践:7、第七章 顺序图_第3页
UML基础与建模实践:7、第七章 顺序图_第4页
UML基础与建模实践:7、第七章 顺序图_第5页
已阅读5页,还剩51页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

UML基础与建模实践

第七章交互图

主讲人:

内容摘要顺序图1协作图2定时图3小结与习题47.1顺序图

7.1.1什么是顺序图1.顺序图顺序图也称为时序图,它描述了系统中对象间通过消息进行的交互,强调了消息在时间轴上的先后顺序。2.顺序图的作用3.顺序图的组成元素

7.1顺序图

如图7-1所示便是自动车锁系统中,实现“锁车”场景的顺序图。图7-1顺序图7.1.2顺序图的表示在UML中,表示一个顺序图,主要是标识系统中的对象、对象的生命线、对象的控制焦点(对象获得控制权)以及对象间交互的消息。

1.对象 2.生命线 3.控制焦点 4.消息7.1.2顺序图的表示(1)同步消息如图7-3就是一个同步消息。图7-3同步消息的表示(2)异步消息如图7-4就是一个异步消息图7-4异步消息的表示7.1.2顺序图的表示(3)返回消息返回消息由开放箭头的虚线表示,如图7-5所示。图7-5返回消息的表示(4)创建对象的消息创建对象的消息用开放箭头的实线表示,如图7-6所示。图7-6创建对象的消息表示7.1.2顺序图的表示(5)销毁对象的消息销毁对象的消息表示,如图7-7所示。图7-7销毁对象的消息表示(6)发现消息发现消息的表示如图7-8所示。图7-8来自不明对象的消息表示7.1.2顺序图的表示(7)丢失消息丢失消息的表示,如图7-9所示。图7-9丢失消息的表示7.1.2顺序图的表示5.消息编号有两种消息编号方案: 一种是顺序编号 另一种是嵌套编号7.1.2顺序图的表示(1)顺序编号下面是一个顺序图,该图演示了“饮料已售完”的场景,如图7-10所示。图7-10饮料已售完的顺序图7.1.2顺序图的表示(2)嵌套编号

依据UML嵌套编号方案,如果对图7-10采用嵌套编号方案,则顺序图改为如图7-11所示。在图

7-11

中,把属于同一个对象发送和接收的消息放在同一层进行编号,如对象user的发送消息放在第一层编号,其编号是1位数字,编号是1;把对象atm发送和接收的消息放在第二层编号,其编号是2位数字,给它们分配的编号是1.1、1.2、1.3;匿名对象“钱币记录仪”的发送和接收消息放在第三层编号,其编号是3位数字,给它们分配的编号是1.1.1、1.1.2。7.1.2顺序图的表示图7-11嵌套编号7.1.3表示分支、并发和循环顺序图中,对象的行为有分支、并发和循环三种方式,为了表示这三种行为,引入组合区和操作符的概念,下面分别讲述。7.1.3表示分支、并发和循环下面分别讲述每种操作符的语义和应用。1.alt和opt表示分支 可以表示分支的操作符有两个: alt用来表示多选一 opt用来表示单选一7.1.3表示分支、并发和循环(1)alt表示多选一

在图7-13所示,组合区包含2个区域。上面的区域的监护条件是:x<10,执行语句是calculate(x);下面的区域的监护条件是else,执行语句是calculate(x)。 该组合区表示的逻辑是:如果x<10,就要求B类对象执行calculate(x)操作;否则就要求c类对象执行calculate(x)操作。7.1.3表示分支、并发和循环图7-13alt操作符的使用7.1.3表示分支、并发和循环(2)opt表示单选一在图7-14所示演示opt操作符的使用,该组合区只有一个区域,它表示的逻辑是:“如果x<10,就要求B类对象执行calculate(x)操作。7.1.3表示分支、并发和循环图7-14opt操作符的使用7.1.3表示分支、并发和循环2.loop 操作符loop用来表示操作的循环执行。表示循环的语句格式如下:Loop(1,n):表示的语义相当于程序语言的for语句:for(i=1;i<n;i++)Loop(n):表示执行n次。7.1.3表示分支、并发和循环图7-15所示,loop(1,3)表示矩形框中的操作可以循环执行1~3次。首先,用户输入密码到ATM中,然后ATM对密码进行验证,如果无效,用户可以继续输入密码,但循环的次数不能超过3次,即你输入密码不能超过三次。图7-15loop操作符的使用7.1.3表示分支、并发和循环3.par par操作符用来表示并行操作。即,par操作符所拥有的多个区域的操作是并行执行的。图7-16所示,是某个客户的取款操作交互图。该顺序图说明,首先执行loop操作,由用户输入密码,当密码有效时,进入opt操作符所属的组合区执行。7.1.3表示分支、并发和循环图7-16par操作符的使用7.1.3表示分支、并发和循环4.consider与Assert 操作符consider包含一个消息列表,在consider组合区中,只有消息列表中的消息才能执行。 图7-17所表示的逻辑是,在consider组合区中,只有start和brake消息才能执行,在消息列表中(start,brake),由于brake(刹车)消息在start消息之后,因此,只有执行过start消息后才能执行brake消息。尽管其它消息可以出现在consider组合区中,但是,不会执行。

7.1.3表示分支、并发和循环图7-17consider和assert操作符7.1.3表示分支、并发和循环5.ignore与assert操作符ingore包含一个消息列表,与consider操作符相反,在ingore组合区中,消息列表中的消息被忽略。图7-18所表示的逻辑是,在ingore组合区中,backoff(后退)和presshorn(按喇叭)消息被忽略(驾驶员汽车启动后,当驾驶员发送后退或者按喇叭时,汽车不会接受这些消息)。

7.1.3表示分支、并发和循环图7-18ignore和assert操作符7.1.3表示分支、并发和循环6.break

操作符break常与循环操作符配合使用,当break组合区执行时,首先测试监护条件,若监护条件为真,则跳出循环语句,否则继续执行循环体。Break操作符与程序语言中的break语句作用相同。在图7-19中,当系统要求用户登录ATM系统时,ATM系统首先要求用户输入密码,这时进入loop组合区,在组合区中,用户输入密码,然后,流程进入break组合区,break组合区的逻辑是:测试监护条件,若密码有效,则执行exit语句(跳出循环),如果密码无效,则继续执行循环,但是,循环不能超过三次。7.1.3表示分支、并发和循环图7-19break操作符7.1.3表示分支、并发和循环7.critical操作符crtical所在的区域称为“临界区域”,在临界区域中,所有的操作要么全部成功执行,要么都不执行。我们常用临界区来完成一个完整的事务。例如,我们把一个账户的的钱转到另一个账户时,就是一种事务性操作,即,从一个账户中扣钱的操作与向另一个账户中加钱的操作要么都成功,要么都不成功。因此,我们必须把这两个动作设置为临界区。7.1.3表示分支、并发和循环图7-20表示的含义是,客户从账号a中扣除的钱(money)的操作和往账户b中增加的钱的操作要么全部成功完成,要么都不执行。图7-20操作符crtical7.1.3表示分支、并发和循环8.ref操作符ref表示引用其它的图。我们在矩形框中写明被引用的图名称。图7-21是一个取款顺序图,在取款前,客户首先要登录ATM

机,我们可以用ref操作符来引用图7-19(该图名称是login)。7.1.3表示分支、并发和循环图7-21ref操作符7.1.3表示分支、并发和循环在UML中,各种图类型的表示法如表7-1所示。表7-1图类型及其对应的表示法图类型对应的表示法图类型对应的表示法类图class对象图object包图package用例图usecase顺序图sd协作图comm定时图timing活动图activity交互概观图intover状态机图statemachine构件图component部署图deployment7.1.4顺序图应用我们常用顺序图来对场景建模,即表示场景中对象之间的交互。下面以饮料自动销售系统为例,学习如何绘制顺序图。下面对“买饮料”的3种场景进行建模,对每一个场景绘制其对应的顺序图。7.1.4顺序图应用1.买饮料的正常场景下面是买到饮料的一般事件流:(1)顾客在饮料机器的前端投入钱币,然后选择想要的饮料。(2)钱币到达钱币记录仪,记录仪获得钱币后,检查存货。(3)记录仪通知分配器分发饮料到机器前端。7.1.4顺序图应用买到饮料的场景对应的顺序图,如图7-22所示。图7-22买到饮料的场景7.1.4顺序图应用2.饮料“已售完”的场景3.机器没有合适的零钱4.带有临时对象的顺序图7.2协作图

协作图(CollaborationDiagram,也叫合作图)是一种交互图,强调的是发送和接收消息的对象之间的组织结构。一个协作图显示了一系列对象之间的交互。 设计师使用协作图和顺序图确定并阐明对象的角色,这些对象执行用例的特定事件流。这些图提供的信息主要用来确定类的职责和接口7.2.1协作图的表示在UML中,表示一个协作图主要是标识系统中的对象、对象间交互的消息、对象间的链。协作图由以下基本元素组成:活动者(Actor)、对象(Object)、连接(Link)和消息(Message)。具体见表7-2。7.2.1协作图的表示表7-2UML协作图包含的基本图符可视化图符名称描述对象用于表示协作图中参与交互的对象多对象用于表示协作图中参与交互的多对象连接用于表示对象之间的关系消息用于表示对象之间发送的消息注释对协作图或某一个具体对象进行说明注释连接将注释体与要描述的实体连接起来,表明该注解是对于哪个实体的描述1.对象

2.连接

3.消息

4.消息编号7.2.1协作图的表示4.消息编号消息的编号有两种,一种是无层次编号(按顺序编号),它简单直观;另一种是嵌套的编号,它更易于表示消息的包含关系。 图7-26所示是系统管理员添加书籍的协作图。图7-26协作图7.2.2表示循环和分支1.迭代标记 在协作图中,我们用一个迭代符“*”和迭代子句(可选)来表示循环。可以使用任何有意义的句子来表示迭代子句。常用的迭代表子句如表7-3所示。表7-3常用迭代表达式迭代子句语义[i:=1…n]迭代n次[I=1…10]I迭代10次[while(表达式)]表达式为true时才进行迭代[until(表达式)]迭代到表达式为true时,才停止迭代[foreach(对象集合)]在对象集合上迭代7.2.2表示循环和分支图7-27所示,是管理员通过课程管理器打印所有的课程信息的协作图。图7-27打印课程信息7.2.2表示循环和分支2.监护条件 在协作图中,我们用监护条件来表示分支。监护条件的格式是:[条件表达式]。当监护条件为真时,才执行消息。图7-28展示了课程注册系统的协作图。为学生注册课程,分三个步骤:第一步:在系统中找出某个学生的信息;第二步:在系统中找出正确的课程;第三步:在学生和课程都存在的情况下,为该学生注册。7.2.2表示循环和分支图7-28课程注册7.2.3顺序图与协作图的关系顺序图与协作图都表示对象之间的交互作用,只是它们的侧重点有所不同。(1)顺序图描述了对象交互的时间顺序,但没有明确地表达对象之间的关系,也没有表明对象在交互中承担的角色。(2)协作图描述了对象在交互中承担的角色(关系),但对象在交互中的时间顺序必须从消息的顺序号获得。(3)顺序图可以表示出对象的激活状态和去激活状态,也可以表示出对象的创建和销毁的相对时间,协作图则没有这些功能。 两种图的语义是等价的,可以采用RationalRose工具把一种形式的图转换成另一种形式的图,而不丢失任何信息。7.3定时图定时图是一种特殊的顺序图。如果要对实时性较强的系统建模,我们就采用定时图。例如,对工业控制系统、人工智能系统、嵌入式系统进行建模时,最好用定时图。

7.3定时图定时图是一种特殊的顺序图。如果要对实时性较强的系统建模,我们就采用定时图。例如,对工业控制系统、人工智能系统、嵌入式系统进行建模时,最好用定时图。

7.3定时图1.定时图与顺序图的区别定时图与顺序图的区别主要体现在以下几个方面:

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论