- 1、本文档共190页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
3.1 软件体系结构风格概述 多年来,人们在开发某些类型软件过程中积累起来的组织规则和结构就形成了软件体系结构风格。软件体系结构风格是描述某一特定应用领域中系统组织方式的惯用模式。体系结构风格定义一个系统家族,即一个体系结构定义一个词汇表和一组约束。 词汇表中包含一些构件和连接件类型,而这组约束指出系统是如何将这些构件和连接件组合起来的。体系结构风格反映了领域中众多系统所共有的结构和语义特性,并指导如何将各个模块和子系统有效地组织成一个完整的系统。按这种方式理解,软件体系结构风格定义了用于描述系统的术语表和一组指导构件系统的规则。 对软件体系结构风格的研究和实践促进了对设计的复用,一些经过实践证实的解决方案也可以可靠地用于解决新的问题。体系结构风格的不变部分使不同的系统可以共享同一个实现代码。只要系统是使用常用的、规范的方法来组织,就可使别的设计者很容易地理解系统的体系结构。例如,如果某人把系统描述为“客户/服务器”模式,则不必给出设计细节,我们立刻就会明白系统是如何组织和工作的。 软件体系结构风格为大粒度的软件重用提供了可能。然而,对于应用体系结构风格来说,由于视点的不同,系统设计师有很大的选择余地。要为系统选择或设计某一体系结构风格,必须根据特定项目的具体特点,进行分析比较后再确定,体系结构风格的使用几乎完全是特定的。 我们可以通过回答下面的问题来确定体系结构风格: (1) 设计词汇表即构件和连接件的类型是什么? (2) 被认可的结构模式是什么? (3) 基本的计算模型是什么? (4) 使用这种风格的常见例子是什么? (5) 使用这种风格有什么优点和缺点? 这些问题的回答包括了软件体系结构风格的最关键的四要素内容,即提供一个词汇表、定义一套配置规则、定义一套语义解释原则和定义对基于这种风格的系统所进行的分析。 有原则地使用软件体系结构风格具有如下意义: (1) 它促进了设计的复用,使得一些经过实践证实的解决方案能够可靠地解决新问题。 (2) 它能够带来显著的代码复用,使得体系结构风格中的不变部分可共享同一个解决方案。 (3) 便于设计者之间的交流与理解。 (4) 通过对标准风格的使用支持了互操作性,以便于相关工具的集成。 (5) 在限定了设计空间的情况下,能够对相关风格作出分析。 (6) 能够对特定的风格提供可视化支持。 下面是Garlan和Shaw给出的对通用体系结构风格的分类: (1) 数据流风格:批处理序列;管道-过滤器。 (2) 调用/返回风格:主程序/子程序;面向对象风格;层次结构。 (3) 独立构件风格:进程通讯;事件系统。 (4) 虚拟机风格:解释器;基于规则的系统。 (5) 仓库风格:数据库系统;超文本系统;黑板系统。 3.2 经典软件体系结构风格3.2.1 管道-过滤器 在管道-过滤器风格的软件体系结构中,每个构件都有一组输入和输出,构件读输入的数据流,经过内部处理,然后产生输出数据流。这个过程通常通过对输入流的变换及增量计算来完成,所以在输入被完全消费之前,输出便产生了。 因此,这里的构件被称为过滤器,这种风格的连接件就像是数据流传输的管道,将一个过滤器的输出传到另一过滤器的输入。此风格特别重要的是过滤器必须是独立的实体,它不能与其他的过滤器共享数据,而且一个过滤器不知道它上游和下游的标识。一个管道-过滤器网络输出的正确性并不依赖于过滤器进行增量计算过程的顺序。 图3-1是管道-过滤器风格的示意图。一个典型的管道-过滤器体系结构的例子是用Unix shell编写的程序。Unix既提供一种符号,以连接各组成部分(Unix的进程),又提供某种进程运行时机制以实现管道。另一个著名的例子是传统的编译器。传统的编译器一直被认为是一种管道系统,在该系统中,一个阶段(包括词法分析、语法分析、语义分析和代码生成)的输出是另一个阶段的输入。 图3-1 管道-过滤器风格的体系结构 管道-过滤器风格的软件体系结构具有许多优点: (1) 使得软构件具有良好的隐蔽性和高内聚、低耦合的特点。 (2) 允许设计者将整个系统的输入/输出行为看成是多个过滤器的行为的简单合成。 (3) 支持软件重用。只要提供适合在两个过滤器之间传送的数据,任何两个过滤器都可被连接起来。 (4) 系统维护和增强系统性能简单。新的过滤器可以添加到现有系统中,旧的过滤器可以被改进的过滤器替换掉。 (5) 允许对一些如吞吐量、死锁等属性的分析。 (6) 支持并行执行。每个过滤器是作为一个单独的任务完成,因此可与其他任务并行执行。 但是,这样的系统也存在着若干不利因素: (1
您可能关注的文档
- (嵌入式实时操作系统uC OS-2教程)第11章μCOS-Ⅱ几个版本的区别.ppt
- (嵌入式系统原理及应用)第1章嵌入式系统概论.ppt
- (嵌入式系统原理及应用)第5章嵌入式系统开发工具.ppt
- (嵌入式系统原理及应用)第7章嵌入式Linux系统开发环境.ppt
- (软件测试)第0章绪论.ppt
- (软件测试)项目八对Windows计算器程序进行功能测试.ppt
- (软件测试)项目九对MercuryWebToursApplication网站的性能测试.ppt
- (软件测试)项目七开源网络硬盘系统测试.ppt
- (软件测试)项目三判断输入字符串格式程序的测试.ppt
- (软件测试)项目五DoWork()函数的测试.ppt
文档评论(0)