《UML顺序图和协作图》由会员分享,可在线阅读,更多相关《UML顺序图和协作图(43页珍藏版)》请在金锄头文库上搜索。
1、电气与信息工程学院电气与信息工程学院 翟亚红翟亚红UMLUML建模技术建模技术 第第4 4章章 顺序图和协作图顺序图和协作图n交互图概述交互图概述n顺序图顺序图n协作图协作图n顺序图与协作图的比较顺序图与协作图的比较n练习练习主要内容主要内容UML中几个图的关系中几个图的关系用例图用例图需求需求类图类图(复杂复杂)状态图状态图顺序图顺序图类图类图(简单简单)活动图活动图协作图协作图需求获取阶段需求获取阶段系统分析阶段系统分析阶段设计阶段设计阶段案例案例1:ATM自动柜员机系统n建立一个具有基本功能的建立一个具有基本功能的ATMATM机软件机软件客户可以存钱,取钱客户可以存钱,取钱客户可以查询帐
2、户余额客户可以查询帐户余额客户可以修改密码客户可以修改密码客户可以进行转帐客户可以进行转帐案例案例1:ATM自动柜员机系统n【任务描述任务描述】客户到客户到ATM机上机上取款取款,其操,其操作为插卡、输入密码、查询余额、输入取作为插卡、输入密码、查询余额、输入取款数额、出钞、取钞、出卡、取卡等一系款数额、出钞、取钞、出卡、取卡等一系列动作,每一个动作(操作)是有一定的列动作,每一个动作(操作)是有一定的时间顺序的。根据以上操作绘制出一个时间顺序的。根据以上操作绘制出一个ATM机机取款的顺序图取款的顺序图。1.交互图概述交互图概述n交互图(交互图(interaction diagraminter
3、action diagram)是用来描述)是用来描述对象之间对象之间以及以及对象与参与者之间对象与参与者之间的动态的动态协作关系以及协作过程中行为次序的图协作关系以及协作过程中行为次序的图形文档。形文档。n交互图包括交互图包括顺序图顺序图(sequence diagram)sequence diagram)和和协作图协作图(collaboration diagramcollaboration diagram)两种形式。)两种形式。1.交互图概述交互图概述n顺序图:着重描述对象顺序图:着重描述对象按时间按时间顺序的消息顺序的消息交换交换n协作图:着重描述系统成分协作图:着重描述系统成分如何协同如
4、何协同工作工作2.顺序图顺序图n 定义:顺序图也称时序图,是显示对定义:顺序图也称时序图,是显示对象之间交互的图,这些对象是按时间顺象之间交互的图,这些对象是按时间顺序排列的。序排列的。n顺序图中显示的是参与交互的顺序图中显示的是参与交互的对象对象以及以及对象之间对象之间消息交互消息交互的顺序。的顺序。 顺序图的作用顺序图的作用n表示用例的行为顺序,描述对象之间以表示用例的行为顺序,描述对象之间以及对象与及对象与ActorActor之间的消息发送关系;之间的消息发送关系; n发现类并依据其发现类并依据其职责职责构建类的属性和方构建类的属性和方法。法。案例回顾 曹操赤壁之战孙权刘备关羽孔明张飞
5、曹操举兵南下,刘备请孔明拟定策略。派遣关羽和张飞防守荆州,同时请孔明联络孙权,共同对抗曹操。孔明联合孙权,借东风,火烧曹军于赤壁。 场景描述 :刘备:孔明:关羽求战请拟策略:张飞请防守荆州请防守荆州前线孙权曹操曹操请联络孙权请孙权领兵相助借东风火攻火攻曹军写C程序内容 :刘备求战请拟定策略请防守荆州请联络孙权写C程序Class 刘备孔明 k New 孔明关羽 g New 关羽Public 迎战曹操() k.拟定策略() g.防守荆州() k.联合孙权() 写C程序内容 :孔明请拟定策略请联络孙权请孙权领兵相助借东风火攻借东风火攻写C程序Class 孔明孙权 s new 孙权Public 拟定策
6、略() Public 联合孙权() s.请领兵相助() 借东风火攻() Private 借东风火攻() 案例案例1:ATM自动柜员机系统n【任务描述任务描述】储户到储户到ATM机上机上取款取款,其操,其操作为插卡、输入密码、查询余额、输入取作为插卡、输入密码、查询余额、输入取款数额、出钞、取钞、出卡、取卡等一系款数额、出钞、取钞、出卡、取卡等一系列动作,每一个动作(操作)是有一定的列动作,每一个动作(操作)是有一定的时间顺序的。根据以上操作绘制出一个时间顺序的。根据以上操作绘制出一个ATM机机取款的顺序图取款的顺序图。n(1 1)确定操作顺序)确定操作顺序n根据需求分析,客户使用根据需求分析,
7、客户使用ATMATM机取款的操作顺序如下:机取款的操作顺序如下:n1 1)客户客户将卡插入将卡插入ATMATM的读卡机(银行卡)。的读卡机(银行卡)。n2 2)读卡机读卡机接受接受ATMATM卡,并把它交给卡,并把它交给客户管理客户管理模块。模块。n3 3)客户管理模块启动验证密码程序,向储户显示输入密码请求。)客户管理模块启动验证密码程序,向储户显示输入密码请求。n4 4)客户通过)客户通过输入设备输入设备输入密码,输入设备把密码传递给客户管理输入密码,输入设备把密码传递给客户管理模块。模块。n5 5)客户管理模块向事务管理模块请求确认密码的合法性。)客户管理模块向事务管理模块请求确认密码的
8、合法性。n6 6)事务管理模块向客户管理模块确认密码的合法性。)事务管理模块向客户管理模块确认密码的合法性。n7 7)客户管理模块通过)客户管理模块通过显示屏显示屏向客户显示输入服务类别请求。向客户显示输入服务类别请求。n8 8)客户通过输入设备输入取款请求,并传递给客户管理模块。)客户通过输入设备输入取款请求,并传递给客户管理模块。n9 9)客户管理模块通过显示设备询问客户取款数额。)客户管理模块通过显示设备询问客户取款数额。n1010)客户通过输入设备输入取款数额,并传递给客户管理模块。)客户通过输入设备输入取款数额,并传递给客户管理模块。n11)11)客户管理模块通过显示设备向客户询问取
9、款确认。客户管理模块通过显示设备向客户询问取款确认。n1212)客户通过输入设备向客户管理模块传递确认信息。)客户通过输入设备向客户管理模块传递确认信息。n1313)客户管理模块向)客户管理模块向事务管理事务管理模块请求数额合法性确认。模块请求数额合法性确认。n1414)事务管理模块向客户管理模块确认数额合法性。)事务管理模块向客户管理模块确认数额合法性。n1515)事务管理模块向)事务管理模块向点钞机点钞机发出出钞请求。发出出钞请求。n1616)点钞机出钞。)点钞机出钞。n1717)客户取钞。)客户取钞。n1818)客户取出)客户取出ATMATM卡(银行卡)。卡(银行卡)。n(2)确定对象)
10、确定对象n(3)创建对象之间的消息)创建对象之间的消息n(4)创建顺序图)创建顺序图:ATM机顺序图机顺序图n顺序图是一个二维图形。在顺序图中水顺序图是一个二维图形。在顺序图中水平方向为平方向为对象维对象维,沿水平方向排列的是,沿水平方向排列的是参与交互的对象。参与交互的对象。n顺序图中的垂直方向为顺序图中的垂直方向为时间维时间维,沿垂直,沿垂直向下方向按时间递增顺序列出各对象所向下方向按时间递增顺序列出各对象所发出和接收的消息。发出和接收的消息。2.顺序图顺序图顺序图建模元素顺序图建模元素n对象对象(objectobject)n生命线生命线(lifelinelifeline)n控制焦点控制焦
11、点(focus of controlfocus of control)n消息消息(messagemessage)顺序图中对象的命名方式有顺序图中对象的命名方式有3 3种:种:显示对象名和类名显示对象名和类名只显示类名只显示类名只显示对象名只显示对象名同步消息同步消息/调用消息调用消息n发送者把控制传递给消息的接收者,然后停止发送者把控制传递给消息的接收者,然后停止活动,等待消息接收者放弃或返回控制。活动,等待消息接收者放弃或返回控制。n同步消息必有一个配对的返回消息,在图中可同步消息必有一个配对的返回消息,在图中可以不用画出。以不用画出。异步消息异步消息n异步消息的发送者通过消息把信号传递给消
12、息的异步消息的发送者通过消息把信号传递给消息的接收者,然后继续自己的活动,不等待接收者返接收者,然后继续自己的活动,不等待接收者返回消息或控制。异步消息的发送者和接收者是并回消息或控制。异步消息的发送者和接收者是并行工作的。行工作的。返回消息返回消息n返回消息表示从过程调用返回消息表示从过程调用返回,以返回,以虚线箭头虚线箭头表示。表示。阻止消息阻止消息n阻止消息是指消息发送者发出消息给接收者,阻止消息是指消息发送者发出消息给接收者,若接收者无法立即接收消息,则发送者放弃此若接收者无法立即接收消息,则发送者放弃此消息。消息。Rose中用折回的箭头表示阻止消息。中用折回的箭头表示阻止消息。Ros
13、eRose所扩充的消息类型所扩充的消息类型超时消息超时消息n超时消息是指消息发送者发出消息给接收者并超时消息是指消息发送者发出消息给接收者并按指定时间等待。若接收者无法在指定时间内按指定时间等待。若接收者无法在指定时间内接收消息,则发送者放弃此消息。接收消息,则发送者放弃此消息。RoseRose所扩充的消息类型所扩充的消息类型对象的创建和销毁对象的创建和销毁n一个对象可以在交互中创建。如果一个对象是一个对象可以在交互中创建。如果一个对象是在交互中创建的,则该对象的生命线就从接收在交互中创建的,则该对象的生命线就从接收到一个标有构造型到一个标有构造型的创建消息之时开的创建消息之时开始。始。n一个
14、对象可以在交互中销毁。如果一个对象是一个对象可以在交互中销毁。如果一个对象是在交互中销毁的,则该对象的生命线就从接收在交互中销毁的,则该对象的生命线就从接收到一个标有构造型到一个标有构造型的销毁消息之时的销毁消息之时终止。对象销毁的标志是在其生命线的端部标终止。对象销毁的标志是在其生命线的端部标上一个上一个“”。n一个对象可以由其它的对象发送一个对象可以由其它的对象发送消消息予以销毁,也可以自己销毁。息予以销毁,也可以自己销毁。返回消息按需要绘制图1 对数据库的JDBC接口的访问建立顺序图的一般步骤建立顺序图的一般步骤n(1)(1)确定交互过程的上下文(确定交互过程的上下文(context);
15、context);n(2)(2)确定参与交互过程的活动者和对象;确定参与交互过程的活动者和对象;n(3)(3)确定活动者、对象的生命周期;确定活动者、对象的生命周期;n(4)(4)确定交互中产生的消息;确定交互中产生的消息;n(5)(5)从引发该交互过程的初始消息开始,在生命线从引发该交互过程的初始消息开始,在生命线之间自顶向下依次画出随后的各个消息;之间自顶向下依次画出随后的各个消息;一个单独的顺序图最好只显示一个控制流(建议尽量少用迭代和分支)案例案例2:饮料自动销售机:饮料自动销售机n假设饮料销售机有假设饮料销售机有3 3部分:前端(部分:前端(frontfront)、钱币记录)、钱币记
16、录仪(仪(registerregister)(负责收集顾客投的钱币)、分配器)(负责收集顾客投的钱币)、分配器(dispenserdispenser)。)。n前端负责:前端负责:1 1、接收顾客的选购和现钞。、接收顾客的选购和现钞。2 2、显示诸如、显示诸如Out of selectionOut of selection和和Use correct changeUse correct change的信息。的信息。3 3、从记录仪接收找回的零钱并返还给顾客。、从记录仪接收找回的零钱并返还给顾客。4 4、返还现钞。、返还现钞。5 5、从分配器接收一罐饮料并把它交给顾客。、从分配器接收一罐饮料并把它交
17、给顾客。n钱币记录仪负责:钱币记录仪负责:1 1、从前端获取顾客输入信息(即选购的饮料种、从前端获取顾客输入信息(即选购的饮料种类和现钞)。类和现钞)。2 2、更新现钞储存。、更新现钞储存。3 3、找零钱。、找零钱。n分配器负责:分配器负责:1 1、检查选购的饮料是否还有存货。、检查选购的饮料是否还有存货。2 2、分发一罐饮料。、分发一罐饮料。n下面对下面对“buy sodabuy soda”( (买饮料买饮料) )的理想场景建模:的理想场景建模:顾客塞入合适的零钱,顾客选择的饮料还有存货。顾客塞入合适的零钱,顾客选择的饮料还有存货。买饮料的顺序如下:买饮料的顺序如下: 1 1、顾客顾客从机器
18、从机器前端前端的钱币口塞入钱币,然后选的钱币口塞入钱币,然后选择想要的饮料。择想要的饮料。 2 2、钱币到达、钱币到达钱币记录仪钱币记录仪,记录仪更新自己的存,记录仪更新自己的存储。储。 3 3、分配器分配器检查饮料是否还有的结果是还还有存检查饮料是否还有的结果是还还有存货,记录仪通知分配器分发一罐饮料到机器前段。货,记录仪通知分配器分发一罐饮料到机器前段。案例案例2:饮料自动销售机:饮料自动销售机对上述步骤建模的顺序图如下:对上述步骤建模的顺序图如下:思考:思考:n1 1、在、在Buy SodaBuy Soda(买饮料)场景中,假设(买饮料)场景中,假设顾客选择的饮料已经销售完了(顾客选择的
19、饮料已经销售完了(sold sold out)out),如何建立,如何建立sold-outsold-out场景建模的顺场景建模的顺序图。序图。n2 2、假设顾客塞入的零钱数量不对,该场、假设顾客塞入的零钱数量不对,该场景用顺序图如何描述呢?景用顺序图如何描述呢?3.协作图协作图(Collaboration Diagram)n协作图:协作图:用于描述系统的行为是如何由系用于描述系统的行为是如何由系统的成分协作实现的图。统的成分协作实现的图。n协作图中的一些主要建模元素:协作图中的一些主要建模元素:Object(Object(包括包括actoractor实例实例) )MessageMessage(
20、消息)(消息)Link(Link(链链) )n链链(link)(link):协作图中用链来连接对象,消:协作图中用链来连接对象,消息显示在链的旁边,一个链上可以有多息显示在链的旁边,一个链上可以有多个消息。个消息。n链是关联的实例。链是关联的实例。n顺序图中不使用链,只有在协作图中才顺序图中不使用链,只有在协作图中才使用链。使用链。例:饮料销售机中例:饮料销售机中“Buy soda”理想场景的理想场景的协作图如下:协作图如下:建立建立Collaboration图的步骤图的步骤1. 确定交互过程的上下文确定交互过程的上下文(context);2. 确定参与交互过程的活动者与对象;确定参与交互过程
21、的活动者与对象;3. 确定对象之间的链确定对象之间的链(link),以及沿着链的消息;,以及沿着链的消息;4. 从引发这个交互过程的初始消息开始,将随后从引发这个交互过程的初始消息开始,将随后的每个消息附到相应的链上;的每个消息附到相应的链上;5. 细化消息内容。如需要说明时间或空间的约束细化消息内容。如需要说明时间或空间的约束时。时。思考:思考:n在在Buy SodaBuy Soda(买饮料)场景中,假设顾(买饮料)场景中,假设顾客选择的饮料已经销售完了(客选择的饮料已经销售完了(sold out)sold out),如何建立,如何建立sold-outsold-out场景建模的协作图。场景建
22、模的协作图。顺序图和协作图对比(顺序图和协作图对比(1)n均属交互图,都用于描述系统中对象之均属交互图,都用于描述系统中对象之间的动态关系。间的动态关系。n两者可相互转换,但两者强调重点不同。两者可相互转换,但两者强调重点不同。n顺序图强调消息的顺序图强调消息的时间顺序时间顺序,按时间顺,按时间顺序布图;协作图强调的是序布图;协作图强调的是参与交互的对参与交互的对象的组织,象的组织,按空间组织布图。按空间组织布图。顺序图和协作图对比(顺序图和协作图对比(2)n两者语义上是等价的,但两者并不能完两者语义上是等价的,但两者并不能完全相互代替。全相互代替。n例如,在顺序图中不能表示对象与对象例如,在
23、顺序图中不能表示对象与对象之间的之间的链链,在协作图中则可以表示;协,在协作图中则可以表示;协作图不能表示作图不能表示生命线和控制焦点生命线和控制焦点,在顺,在顺序图中则可以表示。序图中则可以表示。知识知识技技能能目标目标(1 1)熟悉)熟悉UMLUML顺序图与协作图的功能和组顺序图与协作图的功能和组成元素成元素(2 2)理解顺序图与协作图的绘制方法)理解顺序图与协作图的绘制方法(3 3)学会构思顺序图与协作图)学会构思顺序图与协作图(4 4)学会在)学会在Rational Rose 2003Rational Rose 2003中绘制顺中绘制顺序图与协作图序图与协作图本章本章重重点点(1 1)
24、UMLUML顺序图与协作图的功能和组成元顺序图与协作图的功能和组成元素素(2 2)在)在Rational Rose 2003Rational Rose 2003中绘制顺序图中绘制顺序图与协作图与协作图小结小结练习:练习:ATM自动柜员机系统自动柜员机系统n参照参照ATM自动柜员机的自动柜员机的取款取款用例的顺序用例的顺序图,试着完成以下任务:图,试着完成以下任务:n(1)绘制)绘制存款存款用例的顺序图及协作图。用例的顺序图及协作图。n(2)绘制)绘制修改密码修改密码用例的顺序图及协作用例的顺序图及协作图。图。n(3)绘制)绘制查询账户余额查询账户余额及及转账转账用例的顺用例的顺序图及协作图。序图及协作图。43 以上有不当之处,请大家给与批评指正,以上有不当之处,请大家给与批评指正,谢谢大家!谢谢大家!