网站大量收购独家精品文档,联系QQ:2885784924

第四部分(面向对象设计二).pptVIP

  1. 1、本文档共95页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第四部分(面向对象设计二)

软件技术基础讲义 赵英良 第四部分 面向对象的设计(OOD) §1控制驱动部分的设计 一、什么是控制驱动部分 控制流——进程(process)或线程(thread)的别称 有多个任务(控制流)并发执行的系统,称作 多任 务系统 或 并发系统。 控制流部分—— 是OOD模型的组成部分之一,用来定义和表示并发系 统中的每个控制流。 用主动对象表示每个控制流(进程、线程) 所有的主动类构成控制流管理部分 并发行为是现实中固有的 并发行为是现实中固有的 当前大量的系统都是并发系统(多任务系统),例如: 负责几台设备的数据采集及控制的系统 多用户系统 有多个子系统并发工作的系统 单或多处理机系统上运行的多个进程或线程 网上的各计算机中运行的多进程 …… 设置多控制流部分的原因: 描述问题域固有的并发行为; 为了隔离硬件、操作系统、网络的变化对整个系统的影响; 表达实现所需的设计决策; 二、 控制流 1、进程 进程是一个具有一定独立功能的程序,在一个数据集合上的一次动态 执行的过程。 在大多数操作系统中(如Windows和Unix),每个程序都在它自己的 地址空间里作为一个进程运行。 一般情况下,一个节点上的所有进程是互相平等的,竞争这个节点上 提供的所有相同的资源。 如果在一个节点上有多个处理器,那么在这个节点上实现真正地并发 是可能的。如果这个节点只有一个处理器,那么只是真正并发的错觉,是 由基础的操作系统来完成的。 线程与进程的区别: 进程既是处理机分配单位, 也是存储空间、设备等资源的分配单位; 线程只是处理机分配单位; 一个进程可以包含多个线程,也可以是单线程的。 在面向对象中,将每一个独立的控制流建模为一个主动对象,该对象代表 一个能启动控制活动的进程或线程。 在顺序系统中,只有一个控制流。这意味着在一个时间点有且仅有一件事情在发生。当一个顺序程序开始时,控制处于程序的开头,操作一个接一个地被执行。即使在系统外的参与者之间有并发的事情发生,顺序程序在一个时间点上也只执行一个事件,任何并发的外部事件都要排队或者被丢弃。 在并发系统中,存在多个控制流。也就是说,在一个时间点上有多于一件的事情发生。在一个并发系统中,有多个同时发生的控制流,每个都以一个表示独立的进程或线程的主动对象为根。这种表示法意味着,控制流的创建与撤消的时机分别为: 当创建一个主动对象时,就开始相关的控制流; 当撤消这个主动对象时,就终止相关的控制流; 多控制流的语义仍可以用类图和交互图来描述。 用包括主动类(对象)的类图(对象图)捕捉控制流的静态语义,用顺序图或协作 图捕捉控制流的动态语义。 三、 如何进行控制驱动部分的设计 1、识别每个控制流 1)OOA定义的主动对象 主动对象类的每个对象实例都是一个控制流 2)系统的并发需求所要求的多控制流 要求多项工作同时进行,则每一项工作就是一个控制流。 例如,销售与统计。 3)系统分布方案所要求的多控制流 每一个分布站点至少有一个控制流 4)为提高性能而增设的控制流 高优先控制流,低优先控制流,紧急控制流; 5)为实现方便设立的控制流 例如:负责处理机之间通讯的控制流,时钟驱动的控制流 2、 审查与筛选 去掉不必要的控制流 多余的并发性意味着执行效率的损失 每个控制流应该有以上列举的理由之一 不要人为地增加控制流 例如,杂技的抛球,每增加一个新球,演员处理球的控制的复杂性会以指数级增长。 3、 定义各控制流 描述说明控制流 对控制流命名,并进行简单说明。 对设计部分的每个操作指定它属于哪个控制流。要保证每个操作属于一个控制流。 定义各控制流的细节若控制流由事件驱动,则要描述触发控制流的条件。 例如,若控制流由时钟驱动,则可能要描述触发之前所经历的时间间隔。 考虑描述控制流从那里取数据和往那里送数据之类的情况 。 定义控制流协调情况 控制流的表示 用主动对象表示每个控制流 用主动类描述每一类控制流 原有的主动对象 原有的普通对象标为主动对象 新定义的主动对象 考虑用主动对象的主动操作描述控制流的功能 说明各线程是属于哪个进程。 4、进程间和线程间的通信 控制流间常用的通信机制主要有: ?操作调用 一个控制流中的对象调用另一个控制流中的对象的操作,是通过发送了一条同步消息来实现的。同步的含义为:(1)调用者调用操作,(2)调用者等待接收者接收这个调用,(3)接收者的操作被唤醒,(4)计算结果返回给调用者,(5)然后两者分别继续它们各自的执行。 ?邮箱 一个控制流的对象异步地向另一个控制流中的对象发送一个信号,其异步的含义为:请求者发送信号,然后就继续它自己的执行;而接收者只有在准备好

文档评论(0)

sheppha + 关注
实名认证
文档贡献者

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

版权声明书
用户编号:5134022301000003

1亿VIP精品文档

相关文档