UML顺序图和协作图



《UML顺序图和协作图》由会员分享,可在线阅读,更多相关《UML顺序图和协作图(42页珍藏版)》请在装配图网上搜索。
1、,,,,,,,单击此处编辑母版标题样式,,单击此处编辑母版文本样式,,第二级,,第三级,,第四级,,第五级,,,*,电气与信息工程学院 翟亚红,UML,建模技术,,,,——,第,4,章 顺序图和协作图,,交互图概述,,顺序图,,协作图,,顺序图与协作图的比较,,练习,主要内容,,UML,中几个图的关系,用例图,需求,类图,(,复杂,),状态图,顺序图,类图,(,简单,),活动图,协作图,需求获取阶段,系统分析阶段,设计阶段,,案例,1,:,ATM,自动柜员机系统,建立一个具有基本功能的,ATM,机软件,客户可以存钱,取钱,客户可以查询帐户余额,客户可以修改密码,客户可以进行转帐,,,案例,1
2、,:,ATM,自动柜员机系统,【,任务描述,】,客户到,ATM,机上,取款,,其操作为插卡、输入密码、查询余额、输入取款数额、出钞、取钞、出卡、取卡等一系列动作,每一个动作(操作)是有一定的时间顺序的。根据以上操作绘制出一个,ATM,机,取款的顺序图,。,,1.,交互图概述,交互图(,interaction diagram,)是用来描述,对象之间,以及,对象与参与者之间,的动态协作关系以及协作过程中行为次序的图形文档。,,,交互图包括,顺序图,(,sequence diagram),和,协作图,(,collaboration diagram,)两种形式。,,1.,交互图概述,顺序图:着重描述对
3、象,按时间,顺序的消息交换,,,协作图:着重描述系统成分,如何协同,工作,,2.,顺序图,定义:顺序图也称时序图,是显示对象之间交互的图,这些对象是按时间顺序排列的。,,顺序图中显示的是参与交互的,对象,以及对象之间,消息交互,的顺序。,,,顺序图的作用,表示用例的行为顺序,描述对象之间以及对象与,Actor,之间的消息发送关系;,,,,发现类并依据其,职责,构建类的属性和方法。,,,案例回顾,,曹操,赤壁之战,孙权,刘备,关羽,孔明,张飞,,曹操举兵南下,,刘备,请,孔明,拟定策略。派遣,关羽,和,张飞,防守荆州,同时请,孔明,联络孙权,共同对抗曹操。,孔明,联合孙权,借东风,火烧曹军于赤壁
4、。,,,场景描述,,,:,刘备,:,孔明,:,关羽,求战,请拟策略,:,张飞,请防守荆州,请防守,,荆州前线,孙权,曹操,请联络孙权,请孙权领兵相助,借东风火攻,火攻曹军,,写,C++程序内容,,,:,刘备,求战,请拟定策略,请防守荆州,请联络孙权,写,C++,,程序,Class,刘备,{,,孔明,,k =,New,孔明,,关羽,,g,=,,New,关羽,Public,,迎战曹操,(),,,{,,,k.,拟定策略,(),,,g.,防守荆州,(),,,,k.,联合孙权,(),,,},,},,写,C++程序内容,,:,孔明,请拟定策略,请联络孙权,请孙权领兵相助,借东风火攻,借东风火攻,写,C++
5、,,程序,Class,孔明,{,,孙权,,s,= new,孙权,,Public,,拟定策略,(),,,{,,……,,,},,Public,,联合孙权,(),,,{,,,s.,请领兵相助,(),,,借东风火攻(),,,},,Private,,借东风火攻,(),,{,,,……,,,},,},,案例,1,:,ATM,自动柜员机系统,【,任务描述,】,储户到,ATM,机上,取款,,其操作为插卡、输入密码、查询余额、输入取款数额、出钞、取钞、出卡、取卡等一系列动作,每一个动作(操作)是有一定的时间顺序的。根据以上操作绘制出一个,ATM,机,取款的顺序图,。,,(,1,)确定操作顺序,,根据需求分析,客户
6、使用,ATM,机取款的操作顺序如下:,,1,),客户,将卡插入,ATM,的读卡机(银行卡)。,,2,),读卡机,接受,ATM,卡,并把它交给,客户管理,模块。,,3,)客户管理模块启动验证密码程序,向储户显示输入密码请求。,,4,)客户通过,输入设备,输入密码,输入设备把密码传递给客户管理模块。,,5,)客户管理模块向事务管理模块请求确认密码的合法性。,,6,)事务管理模块向客户管理模块确认密码的合法性。,,7,)客户管理模块通过,显示屏,向客户显示输入服务类别请求。,,8,)客户通过输入设备输入取款请求,并传递给客户管理模块。,,9,)客户管理模块通过显示设备询问客户取款数额。,,10,)客
7、户通过输入设备输入取款数额,并传递给客户管理模块。,,11),客户管理模块通过显示设备向客户询问取款确认。,,12,)客户通过输入设备向客户管理模块传递确认信息。,,13,)客户管理模块向,事务管理,模块请求数额合法性确认。,,14,)事务管理模块向客户管理模块确认数额合法性。,,15,)事务管理模块向,点钞机,发出出钞请求。,,16,)点钞机出钞。,,17,)客户取钞。,,18,)客户取出,ATM,卡(银行卡)。,,(,2,)确定对象,,,,,,(,3,)创建对象之间的消息,,(,4,)创建顺序图,:,ATM,机顺序图,,顺序图是一个二维图形。在顺序图中水平方向为,对象维,,沿水平方向排列的
8、是参与交互的对象。,,顺序图中的垂直方向为,时间维,,沿垂直向下方向按时间递增顺序列出各对象所发出和接收的消息。,2.,顺序图,,顺序图建模元素,对象,(,object,),,生命线,(,lifeline,),,控制焦点,(,focus of control,),,消息,(,message,),,顺序图中对象的命名方式有,3,种:,显示对象名和类名,只显示类名,只显示对象名,,同步消息,/,调用消息,发送者把控制传递给消息的接收者,然后停止活动,等待消息接收者放弃或返回控制。,,同步消息必有一个配对的返回消息,在图中可以不用画出。,,异步消息,异步消息的发送者通过消息把信号传递给消息的接收者,
9、然后继续自己的活动,不等待接收者返回消息或控制。异步消息的发送者和接收者是并行工作的。,,返回消息,返回消息表示从过程调用返回,以,虚线箭头,表示。,,阻止消息,阻止消息是指消息发送者发出消息给接收者,若接收者无法立即接收消息,则发送者放弃此消息。,Rose,中用折回的箭头表示阻止消息。,,Rose,所扩充的消息类型,,超时消息,超时消息是指消息发送者发出消息给接收者并按指定时间等待。若接收者无法在指定时间内接收消息,则发送者放弃此消息。,Rose,所扩充的消息类型,,对象的创建和销毁,,一个对象可以在交互中创建。如果一个对象是在交互中创建的,则该对象的生命线就从接收到一个标有构造型,>,的创
10、建消息之时开始。,,一个对象可以在交互中销毁。如果一个对象是在交互中销毁的,则该对象的生命线就从接收到一个标有构造型,>,的销毁消息之时终止。对象销毁的标志是在其生命线的端部标上一个,“,×,”,。,,一个对象可以由其它的对象发送,>,消息予以销毁,也可以自己销毁。,,返回消息按需要绘制,图,1,对数据库的,JDBC,接口的访问,,建立顺序图的一般步骤,(1),确定交互过程的上下文(,context);,,(2),确定参与交互过程的活动者和对象;,,(3),确定活动者、对象的生命周期;,,(4),确定交互中产生的消息;,,(5),从引发该交互过程的初始消息开始,在生命线之间自顶向下依次画出随后
11、的各个消息;,,,,一个单独的顺序图最好只显示一个控制流(建议尽量少用迭代和分支),,案例,2,:饮料自动销售机,假设饮料销售机有,3,部分:前端(,front,)、钱币记录仪(,register,)(负责收集顾客投的钱币)、分配器(,dispenser,)。,,前端负责:,,1,、接收顾客的选购和现钞。,,2,、显示诸如,Out of selection,和,Use correct change,的信息。,,3,、从记录仪接收找回的零钱并返还给顾客。,,4,、返还现钞。,,5,、从分配器接收一罐饮料并把它交给顾客。,,钱币记录仪负责:,,1,、从前端获取顾客输入信息(即选购的饮料种类和现钞)
12、。,,2,、更新现钞储存。,,3,、找零钱。,,分配器负责:,,1,、检查选购的饮料是否还有存货。,,2,、分发一罐饮料。,,下面对“,buy soda”(,买饮料,),的理想场景建模:顾客塞入合适的零钱,顾客选择的饮料还有存货。买饮料的顺序如下:,,1,、,顾客,从机器,前端,的钱币口塞入钱币,然后选择想要的饮料。,,2,、钱币到达,钱币记录仪,,记录仪更新自己的存储。,,3,、,分配器,检查饮料是否还有的结果是还还有存货,记录仪通知分配器分发一罐饮料到机器前段。,,案例,2,:饮料自动销售机,,对上述步骤建模的顺序图如下:,,思考:,1,、在,Buy Soda,(买饮料)场景中,假设顾客选
13、择的饮料已经销售完了(,sold out),,如何建立,sold-out,场景建模的顺序图。,,2,、假设顾客塞入的零钱数量不对,该场景用顺序图如何描述呢?,,3.,协作图,(Collaboration Diagram),协作图:,用于描述系统的行为是如何由系统的成分协作实现的图。,,协作图中的一些主要建模元素:,,Object(,包括,actor,实例,),,Message,(消息),,Link(,链,),,链,(link),:协作图中用链来连接对象,消息显示在链的旁边,一个链上可以有多个消息。,,链是关联的实例。,,顺序图中不使用链,只有在协作图中才使用链。,,例:饮料销售机中“,Buy
14、soda”,理想场景的协作图如下:,,建立,Collaboration,图的步骤,1.,确定交互过程的上下文,(context),;,,2.,确定参与交互过程的活动者与对象;,,3.,确定对象之间的链,(link),,,以及沿着链的消息;,,4.,从引发这个交互过程的初始消息开始,将随后的每个消息附到相应的链上;,,5.,细化消息内容。如需要说明时间或空间的约束时。,,思考:,在,Buy Soda,(买饮料)场景中,假设顾客选择的饮料已经销售完了(,sold out),,如何建立,sold-out,场景建模的协作图。,,,顺序图和协作图对比(,1,),均属交互图,都用于描述系统中对象之间的动态
15、关系。,,两者可相互转换,但两者强调重点不同。,,顺序图强调消息的,时间顺序,,按时间顺序布图;协作图强调的是,参与交互的对象的组织,,按空间组织布图。,,顺序图和协作图对比(,2,),两者语义上是等价的,但两者并不能完全相互代替。,,,例如,在顺序图中不能表示对象与对象之间的,链,,在协作图中则可以表示;协作图不能表示,生命线和控制焦点,,在顺序图中则可以表示。,,知识技能,,目标,(,1,)熟悉,UML,顺序图与协作图的功能和组成元素,,(,2,)理解顺序图与协作图的绘制方法,,(,3,)学会构思顺序图与协作图,,(,4,)学会在,Rational Rose 2003,中绘制顺序图与协作图,本章重点,(,1,),UML,顺序图与协作图的功能和组成元素,,(,2,)在,Rational Rose 2003,中绘制顺序图与协作图,小结,,练习:,ATM,自动柜员机系统,参照,ATM,自动柜员机的,取款,用例的顺序图,试着完成以下任务:,,(,1,)绘制,存款,用例的顺序图及协作图。,,(,2,)绘制,修改密码,用例的顺序图及协作图。,,(,3,)绘制,查询账户余额,及,转账,用例的顺序图及协作图。,,
- 温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。