UML七交互交互.ppt

上传人:牧羊曲112 文档编号:5576363 上传时间:2023-07-29 格式:PPT 页数:43 大小:998KB
返回 下载 相关 举报
UML七交互交互.ppt_第1页
第1页 / 共43页
UML七交互交互.ppt_第2页
第2页 / 共43页
UML七交互交互.ppt_第3页
第3页 / 共43页
UML七交互交互.ppt_第4页
第4页 / 共43页
UML七交互交互.ppt_第5页
第5页 / 共43页
点击查看更多>>
资源描述

《UML七交互交互.ppt》由会员分享,可在线阅读,更多相关《UML七交互交互.ppt(43页珍藏版)》请在三一办公上搜索。

1、UML Unified Modeling Language统一建模语言Lecture七 交互、交互图,杜育根,2,戏说三国Scenario,刘备,孔明,关羽,求战,请拟策略,张飞,请防守荊州,请防守荊州前线,孙权,曹操,请联络孙权,请孙权领兵相助,借東风火攻,火攻曹军,锦囊妙计,3,Review:UML的概念模型,4,交互图Interaction Diagram,交互对象或角色(role)参与者消息 交互图顺序图sequence diagram通信图Communication diagram/协作图collaboration diagram,5,1 引言,在任何有意义的系统中,对象都不是孤立存

2、在的,它们之间通过传递消息进行交互。使用交互建模软件系统中对象之间的消息的传递,用以描述对象之间的交互行为。交互是为达某一目的而在一组对象之间进行消息交换的行为。交互可以对软件系统为实现某一任务而必须实施的动态行为进行建模。交互所包含的UML建模元素包括对象或角色(role)参与者消息在UML中,使用交互图建模对象之间的交互。,6,1 引言,例如,用软件实现移动图形的动态行为(下图)考虑系统外部和系统打交道的对象“用户”和“显示窗口”-在图中标识为系统的参与者将这两个外部对象描绘在交互图上之后,十分自然地,也是“面向对象”地考虑在系统中应该如何设置担负不同职责的软件“角色”,它们共同完成这一任

3、务这如同当人们需要互相通信来完成某一工作时,需要进行分工一样。,7,1 引言,8,1 引言,该例中,用户和系统的交互可以分为三个连续执行的动作1、用户在位图区域内按下鼠标左键;2、保持左键按下拖动鼠标;3、释放鼠标左键。这三个动作构成了系统参与者和系统的交互每一动作都相当于向系统发出了一个命令系统必须在内部执行相应的操作,以正确地响应这些命令,即消息(message)。在考虑系统内部对象的设置时,首先区分系统“边界”与系统内核专设一个对象“接收鼠标消息”用于接收用户传来的鼠标消息对象收到操作系统传来鼠标消息后,把它传给对象:“处理鼠标消息”然后,发送消息给bmpviewer的系统内核里的对象:

4、“系统数据”,进行具体的执行。,9,2.1 交互的基本概念-消息,对象间的互相合作与交流表现为一个对象以某种方式启动另一个对象的活动,通过发送消息实现对象相互之间的交互。,10,2.1 交互的基本概念-消息,消息所能采取的形式:调用(call):启动某个对象的操作操作是对象的类所能提供的服务的实现对象也可以给自己发送消息返回(return):操作向调用者返回一个值发送(send):向一个对象发送一个信号。同步消息异步消息创建(create):此消息的发送导致目标对象被创建。销毁(destroy):此消息的发送导致目标对象被销毁。,11,2.1 交互的基本概念-消息,消息的表示在UML里,消息用

5、箭头表示,从发送消息的对象指向接收消息的对象同步消息:实心箭头异步消息:枝状箭头在消息的各种形式中创建和销毁消息用消息的 构造型来表示 create,destroy返回消息,用带虚线的箭头表示,12,2.1 交互的基本概念-消息,request,response,Blocking period,invokingexecution thread,invokedexecution thread,同步消息的逻辑意义,13,2.1 交互的基本概念-消息,put,put,Thread remainsactive,invokingexecution thread A,invokedexecution th

6、read B,fetch,fetch,queue,queue,异步消息的逻辑意义,14,2.1 交互的基本概念-消息,消息的发送形式,调用自己的消息,撤销对象,15,2.1 交互的基本概念-消息,消息的表示消息可以有名字它列在消息的箭头的直线上如果对象的实现类已经确定,则此名字可以标记为实现类的某一操作的定义例如,C/C+语言里的函数定义等消息的发送是有顺序的此顺序由它在顺序图垂直方向上的位置决定垂直方向靠近顺序图的顶端的消息先执行靠近顺序图底部的消息后执行,图 消息、消息名和消息顺序号(单调顺序号),16,2.1 交互的基本概念-消息,消息的顺序号此顺序号可前缀于消息的名字前面它们之间用冒号

7、分隔 顺序号分为两种:单调顺序号(flat sequence)单调顺序号严格按照消息的发送顺序排列如:1,2,3,等等 过程顺序号(procedual sequence)过程顺序号是嵌入式的当一个消息启动了另一个消息顺序时,此消息顺序内的各消息就可以重新开始编号。如:消息1发送后,启动了其后的一系列消息,则这些消息就可以编号为1.1,1.2,1.3,17,2.2 交互的基本概念 语境,交互通常发生在一定的语境、场景中:例如:C/S系统中,Client对象和Server对象之间有交互在操作的实现中可以发现对象之间的交互操作的参数、局部/全局变量在构件、节点或用例的表示中发现交互,18,2.3 交

8、互的基本概念 对象和角色,参与交互的对象既可以是具体的事物,又可以是角色学生张力、学生王海(具体的事物)学生甲、学生乙(角色)影视剧中的角色:肯定需要一个人来演但不一定是某个特定的演员来演,19,2.4 交互的基本概念 链,链是关联的实例(a link is an instance of an association),20,2.4 交互的基本概念 链,下列约束可以用来修饰链的有关端点Association说明对应的对象通过关联是可见的Self说明对应的对象因为是本操作的调遣者,所以是可见的global说明对应的对象在全局范围内可见local说明对应的对象在局部范围内可见parameter说明

9、对应的对象是一个参数,因此,是可见的。多重性不能用于链,因为链是关联的实例。,21,3.交互图,在UML中使用交互图建模系统中的交互行为:交互图描述了一系列的对象之间传递的消息交互图分为两种:顺序图 Sequence diagram通信图communicationdiagram/协作图 collaboration diagram 它们在语义上是等价的顺序图:强调消息的时间顺序协作图:强调接收和发送消息的对象的结构组织,22,3.1 顺序图,顺序图的定义:顺序图是交互图的一种,它强调的是消息发送在时间上的先后顺序。顺序图的构成参加交互的各角色(对象、参与者)在顺序图的顶端沿水平方向排列角色之间传

10、递的消息用箭头表示,水平放置,按照消息发送的先后顺序沿垂直方向排列,很直观。每个对象的底部中心都有一个垂直虚线,这条虚线被称为对象生命线(object lifeline)对象生命线代表一个对象在某个时间段内的存在如果在顺序图上某一对象收到了创建消息或销毁消息,则此对象的生存期始于它收到创建消息的时刻,终止于收到销毁消息的时刻。,23,3.1 顺序图,控制焦点在UML里,由消息引发的动作的执行过程被描述为控制焦点定义:控制焦点代表一个对象直接地或通过一个子过程间接地执行一个动作的那段时间。图形化表示:它由位于对象生命线上的一个窄长方形表示控制焦点长方形的顶端代表动作的开始时刻底端代表动作的结束时

11、刻控制焦点可以理解为是C语言中一对花括弧(“”)内的内容,24,3.1 顺序图,25,3.1 顺序图,动作(Action)当一个对象收到了消息后,此对象把消息当做执行某种动作的命令。在UML里,一个动作(Action)被定义为动作是执行一系列可执行的原子计算(atomic computation),并可导致系统状态的变化或返回某个值。典型的例子:执行某个函数在动作的执行过程中,会导致其它一系列的消息的顺序发送典型的例子是:函数调用其它函数,26,3.1 顺序图中的结构化控制,顺序图中的结构化控制可选执行(标签:opt)条件执行(标签:alt)并行执行(标签:par)循环(迭代)执行(标签:lo

12、op),27,3.1 顺序图,Ref(reference):表示引用其他交互,28,SD 案例(POS系统)用例描述和用例图,用例:处理销售1、顾客携带所购商品来到POS机付款处进行购买交易2、收银员开始一次新的销售交易3、收银员输入商品ID4、系统逐条记录出售的商品条目,并显示该商品的描述、价格和累计额。价格通过一组价格规则来计算5、收银员重复步骤34,直到结束6、系统显示总额7、收银员告知顾客总额并提请付款。8、顾客支付,系统处理支付。(此处仅有主事件流),29,SD 案例(POS系统)用例描述和用例图,(1)基本资料管理(包括货品资料、客户资料、供应商资料、收支类型、其他库存变动类型等)

13、基本资料填写(或修改)提交资料填写(或修改),30,SD 案例:基本资料管理(以货品资料为例)顺序图,31,货品采购入库的顺序图,小结:顺序图的作用,1.建模系统中对象之间的交互行为2.根据顺序图上建模的交互动作,定义类图中具体某个类的操作3.描述USE CASE的事件流。,33,3.2 通信图/协作图,通讯图/协作图是交互图的另一种表现形式。它在语义上和顺序图是等价的,通信图强调的是参加一个交互的各对象的组织。通信图的构成:对象连接在此连接上传递的消息,34,3.2 通信图/协作图,链接的表示在协作图上,链接 用对象之间相连的直线来表示链接可以有名字,它标在表示链接的直线上如果有消息借助此链

14、接关系传递,则把消息的图符沿直线方向绘制,消息的箭头指向接受消息的对象由于仅从图符的绘制上无法在协作图上读出消息发送的顺序所以,通常在消息上保留对应的顺序图的消息顺序号,35,3.2 协作图(复杂一点),36,3.3 顺序图和协作图的区别,顺序图和协作图都来自UML的元模型中相同的信息,所以二者在语义上是等价的,可以相互转化。协作图显示对象之间是如何被连接的local globalparameter但顺序图没有顺序图显示消息的返回、有对象生命线、控制焦点,而协作图没有协作图的特征:有路径在消息前加前缀,表示消息的时间顺序,37,4.建模指南,交互图是连接系统边界和系统内部的重要桥梁当一个待建造

15、的系统的需求分析由用例图描述清楚之后使用交互图描述系统的动态行为以及为实现此动态行为系统应具备的合理的结构绘制顺序图时,需要考虑的因素有:软件系统的边界系统参与者和系统的交互系统为实现这交互内部应设置的对象及其职责,38,4.建模指南,在设置对象时应考虑软件结构的合理性、软件部件的可重用性、可维护性、可移植性。在顺序图上,用对象之间的消息定义各对象之间为实现系统的功能而进行的交互。在描述消息顺序时使用控制焦点来突出为实现特定的动作所需的消息子顺序动作的嵌套通过控制焦点的嵌套来描述嵌套的消息顺序,使用过程顺序号来标识可将顺序图转换为协作图以进一步考察软件的组织结构,为下一步设计类图作好准备。,3

16、9,4.建模指南,绘制交互图时,应注意图的组织对于复杂的问题,用多张交互图分别描述例如,一个用例的多个场景分别表示的多个事件流程,可以用不同的交互图描述要充分利用UML的模型包的机制,标注的机制使问题的描述有合理明晰的结构。绘制顺序图时要突出问题的重点,省略对描述问题无关紧要的细节问题应有节制地在顺序图上描述复杂的分支循环结构无关紧要的分支循环可留到程序设计时解决重要而复杂的分支循环,可用活动图来描述,40,4.建模指南,分析和考察类的职责的平衡分布,可以在交互图上进行。软件系统只有和外部直接交互,才能够为其用户提供使用价值因此在设计和建造一个软件系统时,需要要对软件系统之外的非软件事物如用户

17、、外部设备等,进行分析和建模例如:建造一个信息管理系统需要分析用户群的结构、分工、职责和业务流程类和对象也是描述这类非软件事物的手段可以用特定的类来代表一类特定的非软件事物用交互图描述它们的业务流程用属性和操作定义它们的职责可以用UML的变体机制将非软件事物与软件事物相区分,41,5.代码和SD的映射,public class A private B myB=new B();public void doOne()myB.doTwo();myB.doThree();/,42,练习1:电梯系统中UC:travel to floor,43,练习2:电梯系统中UC:announce emergency,

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号