第四章 顺序图和协作图 4.1 交互图概述 交互图(interaction diagram)是用来描述对象之间以及对象与参与者之间的动态协作关系以及协作过程中行为次序的图形文档。 通常用来描述一个用例的行为,显示该用例中所涉及的对象和这些对象之间的消息传递情况 目的:帮助分析人员对照检查每个用例中所描述的用户需求 交互图包括顺序图(sequence diagram)和协作图(collaboration diagram)两种形式 顺序图着重描述对象按时间顺序的消息交换 协作图着重描述系统成分如何协同工作 4.2 顺序图 顺序图描述对象之间的动态交互关系,着重体现对象间消息传递的时间顺序。展现了在一个特殊的用例场景中系统外部参与者发起的事件、事件的顺序以及各个系统之间的交互事件等 顺序图的基本元素 对象:对象、对象的生命线、激活的对象和对象的删除。 生命线 控制焦点 消息:调用消息、异步消息、返回消息。 条件、注释体和注释连接。 顺序图用二维表来表示交互,纵向是时间轴,横向是参与的角色以及它们交换的消息。 角色的生命周期表现为生命线,一条垂直的线,在激活的时间段里是双线,在状态保持的时间里是虚线。 消息表示为从一条生命线出发到另一条生命线的有向线,从上而下,表示消息的时间顺序。 激活是过程的执行,包括它等待嵌套过程执行的时间。在顺序图中它用部分替换生命线的双道线表示。 生命线在顺序图中表示为从对象图标向下延伸的一条虚线,表示对象存在的时间 控制焦点是顺序图中表示时间段的符号,在这个时间段内,对象将执行相应的操作 4.3 顺序图中的消息 消息是对象间的单向通信,从发送者到接受者的携带信息的控制流。消息可能带有值参。 UML:调用消息、异步消息、返回消息 Rose:阻止消息、超时消息 调用消息(procedure call) 调用消息的发送者把控制传递给消息的接收者,然后停止活动,等待消息接收者放弃或返回控制 调用消息的接收者必须是一个被动对象 异步消息(asynchronous) 异步消息的发送者通过消息把信号传递给消息的接收者,然后继续自己的活动,不等待接收者返回消息或控制 返回消息(return) 返回消息表示从过程调用返回,如果是从过程调用返回,则返回消息不用画出。对于非过程调用,如果有返回消息,必须明确表示出来 阻止消息和超时消息 阻止消息是指消息发送者发出消息给接收者,如果接收者无法立即接收消息,则发送者放弃这个消息 超时消息是指消息发送者发出消息给接收者并按指定时间等待,如果接收者在指定时间内无法接收消息,则发送者放弃这个消息 自调用(self call) 消息的格式 格式: [序号][条件][表达式][返回值:=]消息名([参数列表]) 例: 2:display(x,y) 简单消息 1.3.1:p:find() 带返回值的嵌套消息 [x0] 4:invert(x,color) 条件消息 3.1 *:update() 循环消息 A3,b4/c2:copy(a,b) 线程同步 4.4 建立顺序图的步骤 确定交互过程的上下文 识别参与交互过程的对象 为每个对象设置生命线,即确定哪些对象存在于整个交互过程中,哪些对象在交互过程中被创建和撤销 从引发这个交互过程的初始消息开始,在生命线之间自顶向下依次画出随后的各个消息 如果需要表示消息的嵌套,或/和表示消息发生时的时间点,则采用控制焦点。 如果需要说明时间约束,则在消息旁边加上约束说明 如果需要,可以为每个消息附上前置条件和后置条件 试用顺序图描述下列情形,当用户在自己的计算机上向网络打印机发出一个打印任务时,他的计算机便向打印机服务器发送一条打印命令,譬如print(file)。打印机服务器如果发现网络打印机处于空闲状态,则向打印机发送打印命令命令print(file);否则向打印队列发送一条保存命令store(file)。 实例:存款 4.5 协作图 协作图是用于描述系统的行为是如何由系统的成分协作实现的图,描述系统对象(或活动者)如何共同协作完成用例 强调的是参与交互的对象的协作和组织 顺序图和协作图可以相互转换 协作图中包括的建模元素有对象、消息、链等 多重对象 多重对象:由多个对象组成的对象集合,用多个方框重叠表示,往往是同类的对象 如果消息发送给多个对象,则用多重对象表示 在顺序图中仍然显示单对象的图标 主动对象 主动对象:一组属性和一组方法的封装体,其中至少有一个方法不需要接受消息就能主动执行,即主动对象可以在不接受外部消息的情况下自己开始一个控制流 对象的创建与销毁 在协作图中表示创建和销毁一个对象采用标有版型《creat
原创力文档

文档评论(0)