软件工程第9章 面向对象设计与测试.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
既然每个控制流都以一个表示进程或线程的主动对象为根,这意味着:控制流的创建与撤消的时机分别为: 创建一个主动对象,就启动了相关的控制流,从此按照程序的操作逻辑,就开始了层层调用,形成了一个控制流。 撤消主动对象,就终止了相关的控制流;也即在主动对象被撤消后,它所代表的线程或进程就终止了。 9.4.2控制流 对控制驱动部分建模: 通常, 用包括主动类的类图捕捉控制流的静态结构 用包括主动对象的顺序图捕捉控制流的动态行为 9.4.2控制流 1)OOA定义的主动对象 这是由业务逻辑所决定的 2)系统的并发需求所要求的多控制流 若要求多项工作同时进行,则每一项工作就是一个控制流。例如,销售与统计。 3)系统分布方案所要求的多控制流 每一个分布站点至少有一个控制流 识别控制流 9.4.3 如何设计控制驱动部分 4)根据任务的紧急程度设置控制流 高优先控制流,低优先控制流,紧急控制流; 5)为实现方便设立的控制流 例如:负责处理机之间通讯的控制流 6)对异常事件的处理 由于异常事件的发生,不能在程序的某个可预知的控制点进行处理,应该设立一个专门的控制流进行处理异常事件。 9.4.3 如何设计控制驱动部分 问题 划分 通讯 组合 映射 7)实现并行计算 通常用一个进程实现一个计算任务,用线程实现各子任务。 9.4.3 如何设计控制驱动部分 8)设置起协调者作用的控制流 若有多个控制流需要相互交换信息,可考虑增设一个或多个控制流,对相应的控制流起协调者的作用。 审查与调整 过度并发性意味着执行效率的损失; 考虑控制流之间职责的均衡分布情况,它们之间协作的情况,以保证每个控制流是高内聚的,且与相关的控制流是松耦合的; 每个控制流应该有以上列举的理由之一,除非由明确的其他理由。 9.4.3 如何设计控制驱动部分 定义各控制流 l描述控制流 对控制流命名,并进行简要说明。 为控制流指定操作 对设计部分的每个操作指定它属于哪个控制流。要保证每个操作属于一个控制流。 定义各控制流的细节 若控制流由事件驱动,则要描述触发控制流的条件。例如,若控制流由时钟驱动,则可能要描述触发之前所经历的时间间隔。 考虑描述控制流从那里取数据和往那里送数据之类的情况 …… 定义控制流协调情况(见9.3.5) 操作1 ……. 操作5 ……. 操作9 ……. …… @类名 属性 …… @操作 …… 类名《process》 属性 …… 操作 …… 类名《thread》 属性 …… 操作 …… 进程或线程的表示法 控制流间的通信 控制流间的通信机制主要有4种: 操作调用 一个控制流中的对象调用另一个控制流中的对象的操作,是通过发送了一条同步消息来实现的。具体的执行步骤为: (1)调用者调用操作 (2)调用者等待接收者接收这个调用 (3)接收者的操作被唤醒 (4)计算结果返回给调用者 (5)调用者继续它的执行。 9.4.3 如何设计控制驱动部分 邮箱 一个控制流的对象异步地向另一个控制流中的对象发送一个信号。具体的执行步骤为: (1)请求者发送信号,然后就继续它自己的执行; (2)接收者只有在准备好时或在适当的时候,才到指定的邮箱去接收信号并进行处理,完成后可能向请求者发信号来回传处理结果,接着向下执行。 主动对象A 主动对象B 控制流1 线程 Ta 控制流2 线程 Tb 邮箱 9.4.3 如何设计控制驱动部分 这样的邮箱机制也可以是同步的,但收发信号的双方事先要做好约定。 主动对象A 主动对象B 控制流1 线程 Ta 控制流2 线程 Tb 邮箱 9.4.3 如何设计控制驱动部分 共享存储器 两个或几个控制流中的对象利用一块公共的存储器,作为通信区域。 通常传输具有较复杂和较大的数据结构的数据时,才使用共享存储器方式。 生产者 消费者 公共的存储器 使用此方式,要注意同步问题。 9.4.3 如何设计控制驱动部分 远程过程调用 用于在不同计算机中的并发进程: (1)调用进程标示它想要请求的一个对象的操作,然后把它放在远程过程调用库中; (2)远程过程调用机制在网络上寻找目标对象,找到后将请求打包发送给目标对象; (3)目标方接到后将请求转换成本地格式,执行所请求的操作;执行完毕后,将结果以上述同样的方式返回给发送方。 过程 …… a.x() …… 远程过程调

文档评论(0)

132****9295 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档