【2017年整理】_软件体系结构.ppt

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

软件体系结构;模式分类;惯用法;设计模式;基本概念; Dewayne Perry和A1exander Wo1f曾这样定义:“软件 体系结构是具有一定形式的结构化元素,即构件的集合,包 括处理构件、数据构件和连接构件。处理构件负责对数据进 行加工,数据构件是被加工的信息,连接构件把体系结构的 不同部分组合连接起来。” ;基本概念; 体系结构的重要作用体现在以下三个方面 : (1)体系结构的表示有助于风险承担者(项目干系 人)进行交流。 (2)体系结构突出了早期设计决策。 (3)软件体系结构是可传递和可复用的模型。 ;体系结构风格;体系结构风格;当输入数据经过一系列的计算和操作构件的变换形成输出数据时,可以应用这种体系结构。 管道/过滤器、批处理序列都属于数据流风格。 管道/过滤器结构如下图所示:; 从上图可看出,管道/过滤器结构拥有一组被称为过滤器(filter)的构件,这些构件通过管道(pipe)连接,管道将数据从一个构件传送到下一个构件。 每个过滤器独立于其上游和下游的构件而工作,过滤器的设计要针对某种形式的数据输入,并且产生某种特定形式的数据输出。 如果数据流退化成为单线的变换,则称为批处理序列(batch sequential)。这种结构接收一批数据,然后应用一系列连续的构件(过滤器)变换它。 ;管道/过滤器风格具有以下优点: (1)使得软构件具有良好的隐蔽性和高内聚、低耦合的特 点。 (2)允许设计者将整个系统的输入/输出行为看成是多个过 滤器的行为的简单合成。 (3)支持软件复用。只要提供适合在两个过滤器之间传送 的数据,任何两个过滤器都可被连接起来。 (4)系统维护和增强系统性能简单。新的过滤器可以添加 到现有系统中来;旧的可以被改进的过滤器替换掉。 (5)允许对一些如吞吐量、死锁等属性的分析。 (6)支持并行执行。每个过滤器是作为一个单独的任务完 成,因此可与其他任务并行执行。;管道/过滤器风格主要缺点如下: (1)通常导致进程成为批处理的结构。这是因为虽然过滤 器可增量式地处理数据,但它们是独立的,所以设计者必须 将每个过滤器看成一个完整的从输入到输出的转换。 (2)不适合处理交互 的应用。当需要增量地显示改变时, 这个问题尤为严重。 (3)因为在数据传输上没有通用的标准,每个过滤器都增 加了解析和合成数据的工作,这样就导致了系统性能下降, 并增加了编写过滤器的复杂性。;在此类体系结构中,存在以下3种子风格。 ? 主程序/子程序体系结构(C语言?) 这种传统的程序结构将功能分解为一个控制层次,其 中“主”程序调用一组程序构件,这些程序构件又去调用别 的程序构件,如下图所示。这种结构总体上为树状结 构,可以在底层存在公共模块。 ;主程序/子程序体系结构的优点如下: (1)可以使用自顶向下,逐步分解的方法得到体系结构 图,典型的拓扑结构为树状结构。基于定义—使用关系对子 程序进行分解,使用过程调用作为程序之间的交互机制。 (2)采用程序设计语言支持的单线程控制。 其主要缺点如下: (1)子程序的正确性难于判断。需要运用层次推理来判断 子程序的正确性,因为子程序的正确性取决于它调用的子程 序的正确性。 (2)子系统的结构不清晰。通常可以将多个子程序合成为 模块。;? 面向对象的调用——返回风格 系统的构件(类/对象)封装了数据和必须应用到该数据上的操 作,构件间通过消息传递进行通信与合作。与主程序/子程 序的体系结构相比,面向对象风格中的对象交互会复杂一 些。面向对象风格与网络应用的需求在分布性、自治性、 协作性、演化性等方面具有内在的一致性。 面向对象风格具有以下优点: (1)因为对象对其他对象隐藏它的表示,所以可以改变一 个对象的表示,而不影响其他对象。 (2)设计者可将一些数据存取操作的问题分解成一些交互 的代理程序的集合。;其缺点如下: (1)为了使一个对象和另一个对象通过过程调用等进行 交互,必须知道对象的标识。只要一个对象的标识 改变了,就必须修改所有其他明确调用它的对象。 (2)必须修改所有显式调用它的其他对象,并消除由此 带来的一些副作用。例如,如果A使用了对象B,C 也使用了对象B,那么,C对B的使用所造成的对A 的影响可能是料想不到的。 ;? 层次结构 层次结构的基本结构如下图所示。在这种体系结构中,整 个系统被组织成一个分层结构,每一层为上层提供服务,并 作为下一层的客户。; 这种风格支持基于可

文档评论(0)

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

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

1亿VIP精品文档

相关文档