好文档就是一把金锄头!
欢迎来到金锄头文库![会员中心]
电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

软件体系结构-第2章讲解.ppt

51页
  • 卖家[上传人]:我**
  • 文档编号:115108843
  • 上传时间:2019-11-12
  • 文档格式:PPT
  • 文档大小:1.04MB
  • / 51 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 1,软件体系结构,,北京理工大学计算机科学技术学院,徐 进,,,第二章,2,课程内容 第一章 软件体系结构基本概念 第二章 软件体系结构经典风格 第三章 软件体系结构应用 第四章 软件体系结构设计模式 第五章 软件体系结构研究与发展,3,第2章 软件体系结构的经典风格 2.1 管道过滤器风格 2.2 主程序与子过程风格 2.3 数据抽象与面向对象风格 2.4 事件驱动隐式调用风格 2.5 黑板知识库风格 2.6 虚拟机(解释器)风格 2.7 过程控制回路风格 2.8 部件链接器C2风格,4,经典体系结构: 总结软件系统组织结构的惯用形式,认识特定软件结构的原理和价值,提供软件体系结构设计的选择空间•某种结构风格的基本成分和连接方式是什么? •某种结构风格的基本形式是什么? •某种结构风格潜在的计算模式是什么? •某种结构风格中不变的因素是什么? •某种结构风格可以使用的示例是什么? •某种结构风格的优缺点是什么?,讨论中考虑的问题:,5,2.1 管道过滤器 (Pipes and Filters),管道过滤器结构特征,过滤器A,过滤器B,过滤器C,过滤器D,过滤器E,,,,,,,,,,,,,,,,增量计算的 功能模块,输入/输出 数据流,•以数据流向的过程为核心(也称:数据流风格) •过滤器自身功能独立而完整,相互之间无状态交互 •过滤器不需要知道其他过滤器的存在与否 •过滤器仅对输入的数据流有限制,并保证输出流的正确 •系统内各部分的执行,与整体系统的最终输出不相关,管道1,管道2,管道3,管道4,管道5,管道6,管道8,管道7,返回本章目录,6,管道过滤器软件成分,管道过滤器的连接器,被动过滤器:通过事件或过程调用激发动作,接受前续成分推入的内容 主动过滤器:作为独立的过程或线程任务,主动取前续成分的内容。

      数据源:作为系统的输入过滤器,提供探测数据、采集数据的功能,以 及主动推出数据,激发或者等待后继成分启动 数据池:作为收集结果的过滤器,分为主动取数据和被动接受推入数据 两种方式•管道是两个过滤器的连接器,是先进先出的数据缓冲区 •如果两个主动式过滤器相连,管道需要有同步控制能力 •如果过滤器的行为受到相邻过滤器的控制,管道就是被动过滤器的过程调用实现7,管道过滤器形式的示例(1),数字通信系统结构简略描述:,信息源,加密器,编码器,调制器,发送设备,解调器,解码器,解密器,接收设备,受信者,噪声源,,信息源: 把各种可能的数据转换成原始电信号 发送设备: 对原始电信号完成信号加密、差错控制编码和调制解调 信道: 信号传输的通道也相当于过滤器,因为它对传输信息进行适 当的处理 接收设备: 与发送设备反向 同步控制部件:图中没有标出因为它在其中的位置并不固定,它负责收发 双方的一致性控制信道,8,,,,,,编辑存储 光谱采样集,图形处理 (光谱筛选),存储调整 建模样本集,建模 处理,模型 管理,建摸公式 管理,,,,,给定性质,模型,建模样本集,光谱采样集,,,,,,,,建摸公式,,,,,,建模公式,模型,,管理要求,,图符说明: 控制流: 数据流: I/O: 处理:,,,,,化学光谱分析系统,管道过滤器形式的示例(2),9,,管道过滤器形式的优势,对整个系统的理解简单化。

      可理解系统的各功能为抽象“黑盒子” 支持可维护性,容易替换只要输入/输出管道达成一致的任何两个过滤器(可能一个是另一个的扩充性或修改),则可以任意替换 支持复用一个过滤器可以被多次挂接,只要它们对数据的需求场合是一致的 支持并发设计可以将存在并发可能的过滤器,在调度算法的基础上,组织为多任务并发系统 系统的结构清晰,容易进行某些性能的分析,例如:数据流量、死锁问题,计算正确性等等10,管道过滤器形式的不足,由于过滤器的独立特性,每个过滤器完成从输入到输出的转换需要成批量而完整,这样,为了交互必须表示的过滤内容与输出的流方式差异很大,导致实现交互困难 由于支持并发设计,两个相互独立的过滤器,如果存在同步问题,则需要花较大的精力去协调 每个过滤器的输出只强制公共的命名,要保持数据的一致必须对传输的数据解析,这样造成系统效率资源的损耗,以及程序复杂性增加 直接调用被动过滤器,使过滤器的重新组织产生困难 需要处理数据在管道中的阻塞状态11,2.2 主程序与子过程 (Main Program/Subroutine),主程序,子过程1,子过程2,子过程n,•••••,,,,,,,主程序与子过程的结构特征: 主程序将基于功能分解的子过程,通过调用的形式连接起来;子过程可作为主程序,继续以同样的方式连接子过程。

      子过程k1,子过程k2,调用,返回,,,,,,,,,子过程f,,,,,返回本章目录,12,主程序与子调用结构的成分,主程序与子调用结构的连接器,主程序:基本的程序主体成分 子过程:各种层次上的函数,可调用成分 模块包:由主程序子过程组成的大粒度结构成分 函数库:通用子过程集合,过程调用机制,13,主程序与子调用结构的优势,由于直接对应过程性程序语言机制,因此,具有代码率高的优势,主程序与子调用结构的缺陷,基于功能的过程嵌套式分解使系统的维护困难 因为基于功能的分解,只能覆盖特定的问题,不具普遍性所以,子过程实现的功能成分很难复用14,2.3 数据抽象和面向对象(Data Abstraction and Object-Oriented),,对象 实体,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,对象 实体,对象 实体,对象 实体,对象 实体,对象 实体,对象 实体,对象 实体,消息,消息,消息,消息,消息,消息,消息,消息,消息,消息,消息,对象实体是具有自身属性和行为能力的主动的独立个体 任何事务处理都是对象采用“消息”相互作用的结果 发送消息给对象是“请求”,接受的对象是“响应”请求,完成自身的行为或动作,也可以向其他对象发出请求。

      面向对象结构的特征,返回本章目录,15,化学光谱分析系统,,给定 性质,,,,,,,,,,,,,,,,,,光谱文件,光谱采样集,建摸公式,建模 样本集,模型,设定消息,采样消息,请求消息,请求消息,采集消息,存储消息,返回消息,,输出消息,调整消息,建模消息,管理消息,面向对象形式的示例,16,面向对象结构的成分,面向对象结构的连接器,类:对象实体的抽象,可复用的类型模板 继承类:抽象类型的复用,提供类的可扩充、可变化方式 对象:某类的实体,具有属性和各种行为能力的独立执行体,消息: 与对象的联系仅通过消息发送请求给对象,向对象发出执行它动作的信息接受请求的对象,根据自身的属性状态,完成动作,也可以向其它对象发出请求,并且可以同时发出多个请求,除非它继续的工作与发出的请求有同步关系 多态机制: 相关的对象行为,可以通过相同的消息形式这正是行为的多种形态概念所谓相关,是指同范畴对象(有继承关系类的实体对象是同范畴的)同样的消息,连接不同的执行成分,这就是多态机制17,面向对象结构的优势,接近人们的认知习惯,即:事物主体和事物行为是不可分的整体,处理事务的关注点只是事物可操作的外部行为 实现真正意义的信息封装,把对象的属性和行为封装在一起,对外可见的只有操作。

      稳定的结构,系统建造的基础依赖于独立的对象实体,而不是处理过程这使改变或增加系统的处理过程与系统的整体架构关联减弱,因为,大部分的修改是对象个体上的行为扩充,或是增加新的对象成分 本身的并发特性,支持普遍应用的分布式系统 实体对象比起过程在语义上容易理解一致,因此更容易复用;类和继承使软件成份又达到更高层的复用18,面向对象结构的缺陷,•对象的标识是发送消息必须知道的,如果标识被改变,消息就不知去向在系统中对象本来是独立的,但他们必须相互知道、懂得和理解,否则将无法协同完成工作这一点又使得他们似乎很密切相关,互为依赖 •对象接受多个来自不同请求者的同一个消息,所得到的结果有时不可预测,因为其自身的状态属性可能被改变,这种情况系统必须考虑,并付出代价19,2.4 事件驱动隐式调用(Event-Based,Implicit Invocation),外部实体1,,,,外部实体n,,,,事件过滤1,事件过滤n,中断服务n,中断服务1,•••••,•••••,系统消息调度,应用A 消息 调度,应用线程1,应用线程n,应用B 消息 调度,,,,,,,,,,,,,,,系统传送,系统传送,消息发送,消息发送,事件,事件,1)外部事件以中断方式被接受; 2)接受后的事件,通过统一的形式接受处理; 3)在系统的统一调度下,事件被转换为消息发送到对应的应用队列中; 4)每个应用队列通过消息循环机制,连接应用线程操作,应用线程1,应用线程n,基本过程,消息等待 B,消息等待 A,,,,•••••,返回本章目录,20,指外部事件,包括硬件设备和软件的应用发出的请求,通过中断方式形成为消息,事件驱动,隐式调用,指消息不是直接地被各响应的处理操作接收,而是通过了隐藏在中间的一个层次(透明访问概念的体现)。

      事件驱动和隐式调用结构概念,21,隐式调用的方式,两种发送方式 点发式:经过中间转发,一点到一点响应 广播式:经过中间转发,一点到多点响应,也叫增生 异步方式 发送成分与接收成分之间采用异步方式,各自独立,不受约束其限定和约束由中间隐式层处理 消息过滤 变换:转变消息形式成为某种统一的类型和取值范围 抑制:截获或阻止某种消息 转发:转发经过某种处理的消息到需要响应的成分,22,事件驱动和隐式调用结构的示例,源对象,源对象,注册连接 提供监听对象注册和注销的方法,接口 登记源对象的操作方法,监听 对象,监听 对象,监听 对象,监听 对象,监听 对象,,,,,,,,事件驱动机制,事件 状态对象,事件 状态对象,•••••,•••••,•••••,JavaBean事件驱动,适配 转发类,适配 转发类,源对象:产生事件的对象 监听对象:响应事件的对象 事件驱动机制:通过监听注册和事件接口,连接源对象和监听对象 适配器:一组响应事件的组装配发 事件状态:封装事件的发生时的类型、位置等信息23,转换,接口对象,输入操作事件驱动和隐式调用分析,用户按下鼠标或键盘的一个键,操作系统的AWT(抽象窗口工具)将不同平台的信息转换成统一的事件对象。

      然后,将对象事件及状态,作为参数,向接口对象发出请求接口对象中有已经注册的监听对象,通过适配对象向监听对象发出该事件这样,一个输入操作事件,就被监听对象接收并响应处理它鼠标对象,注册的 监听对象,菜单条对象,文本框对象,事件 状态 对象,,适配对象,复选框对象,适配对象,,,,,,•••••,•••••,键盘对象,,,•••••,,24,事件驱动和隐式调用结构的优势,•在消息与响应中间建立隐式层,完成消息形式的统一处理及统一调度,对接受消息的成分进行必要的管理和控制使请求成分与响应成分之间形成松散耦合关系可以动态调整事件的请求与响应关系,为灵活设计创造了条件 •支持软件复用由于成分之间的没有直接的联系,任何已有的软件成分只要处理逻辑适用,都可以无所顾忌地使用,将一切限定留给中间层处理 •使系统更易维护替换某一软件成份,除了中间转接的适应,对其他成分影响极小 •对于异步并发系统是一种极好的控制方式25,事件驱动和隐式调用结构的不足,•请求成份和接收成份完全自主而独立,不易管理和控制,需要消耗较大系统的精力去控制,包括:必要识别、转换和统一 •相比直接方式的连接,增加了中间层必要的消耗,包括时间和资源,提升系统运行效率成为系统的关键所在。

      26,2.5 黑板知识库 (仓储) (Repository),黑板 (共享状态 和策略数据),,知识源1,知识源8,知识源7,知识源6,知识源3,知识源4,知识源2,知识源5,,,,,,,,,•以黑板作为协同操作的。

      点击阅读更多内容
      关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
      手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
      ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.