第三章软件体系结构风格.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第三章软件体系结构风格.ppt

第三章 软件体系结构风格 本章内容 3.1 软件体系结构风格概述 3.2 常用的软件体系结构风格 3.3 管道/过滤器体系结构风格 3.4 面向对象体系结构风格 3.5 事件驱动体系结构风格 3.6 分层体系结构风格 3.7 C2体系结构风格 3.8 数据共享体系结构风格 本章内容 3.9 解释器体系结构风格 3.10 反馈控制环体系结构风格 3.11 客户机/服务器体系结构风格 3.12 浏览器/服务器体系结构风格 3.13 公共对象请求代理体系结构风格 3.14 正交体系结构风格 3.15 基于层次消息总线的体系结构风格 3.16 MVC体系结构风格 3.17 异构体系结构集成 3.1 软件体系结构风格概述 软件体系结构表示系统的框架结构,用于从较高的层次上来描述各部分之间的关系和接口,主要包括:构件、构件性质和构件之间的关系 软件框架设计的核心问题是:能否复用已经成型的体系结构方案 不同系统的设计方案存在着许多共性问题,把这些共性部分抽取出来,就形成了具有代表性的和可广泛接受的体系结构风格 3.1 软件体系结构风格概述 软件体系结构风格也称为软件体系结构惯用模式,是指不同系统所拥有的共同组织结构和语义特征 软件体系结构是构件和连接件之间相互作用的形式化说明,用以指导将多个模块组织成一个完整的应用程序 软件体系结构风格定义了用于系统描述的术语表和一组用于指导系统构建的规则 3.1 软件体系结构风格概述 软件体系结构风格包括构件、连接件和一组将它们结合在一起的约束限制,诸如:拓扑限制和语义限制等 对于高质量的软件产品而言,首先要为其选择合适的体系结构风格,这样就能够更好地重用已有的设计方案和实现方案 利用软件体系结构风格中的不变部分,可以使系统大粒度地重用已有的实现代码 3.2 常用的软件体系结构风格 数据流风格:批处理和管道/过滤器 调用/返回风格:主程序/子程序、层次结构和客户机/服务器 面向对象风格 独立部件风格:进程通讯和事件驱动 虚拟机风格:解释器和基于规则的系统 数据共享风格:数据库系统和黑板系统 3.3 管道/过滤器体系结构风格 管道/过滤器结构主要包括过滤器和管道两种元素 构件被称为过滤器,负责对数据进行加工处理 每个过滤器都有一组输入端口和输出端口,从输入端口接收数据,经过内部加工处理之后,传送到输出端口上 数据通过相邻过滤器之间的连接件进行传输,连接件可以看作输入数据流和输出数据流之间的通路,这就是所谓的管道 3.3 管道/过滤器体系结构风格 管道/过滤器结构将数据流处理分为几个顺序的步骤来进行,一个步骤的输出是下一个步骤的输入,每个处理步骤由一个过滤器来实现 每个过滤器独立完成自己的任务,不同过滤器之间不需要进行交互 在管道/过滤器结构中,数据输出的最终结果与各个过滤器执行的顺序无关 3.3 管道/过滤器体系结构风格 每个过滤器都是一个独立的个体元素,各个过滤器的状态互不相关,非邻近过滤器不共享任何信息 运行结果的正确性与各个过滤器运行的先后顺序无关 3.3 管道/过滤器体系结构风格 管道/过滤器风格具有以下优点: 简单性,允许将系统的输入和输出看作是各个过滤器行为的简单组合,独立的过滤器能够减小构件之间的耦合程度 系统具有可扩展性和可进化性,各个过滤器是相互独立的,因此可以很容易地将新过滤器添加到现有的系统之中,以扩展系统的业务处理能力,原有过滤器可以很方便地被改进的过滤器所替代 3.3 管道/过滤器体系结构风格 支持复用,如果一个过滤器的输出数据格式与另一个过滤器的输入数据格式是一致的,就可以将这两个过滤器连接在一起 系统并发性,各个过滤器能够独立运行,因此,不同子任务可以并行执行,提高了系统运行效率 便于系统分析,由于系统是独立构件的组合,具有清晰的拓扑结构,因而有利于对数据吞吐量、死锁和计算准确性进行分析 3.3 管道/过滤器体系结构风格 管道/过滤器风格也存在着一定的问题: 系统处理过程是批处理方式,过滤器具有很强的独立性,对于每一个过滤器,设计者必须考虑从输入到输出的转换过程,这种方式会造成过滤器对输入数据的批量转换处理 不适合用来设计交互式应用系统 由于没有通用的数据传输标准,因此每个过滤器都需要解析输入数据和合成数据,添加和去除标记需要花费一定的时间,从而导致了系统性能下降,增加了过滤器设计的复杂性 3.3 管道/过滤器体系结构风格 难以进行错误处理,管道/过滤器结构的固有特性,决定了很难制定错误处理的一般性策略 传统的编译器是管道/过滤器体系结构风格的一个实例 3.4 面向对象体系结构风格 在这种体系结构中,数据表示和相关原语操作都被封装在抽象数据类型中 对象是构件,也称为抽象数据类型的实例 对象是一种被称为管理器的构件,负责保持资源的完整性 在对象和对象之间,通过函数调用和过

文档评论(0)

docindpp + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档