软件体系结构大作业模板.

  • 格式:doc
  • 大小:580.51 KB
  • 文档页数:9

下载文档原格式

  / 9
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

软件体系结构大作业

题目:管道-过滤器模型

专业班级: 13 软件工程1班

学生姓名:马潇霄

学号: 12013241604

2015年 10月 20 日

目录

1.问题背景 (3)

2.相关综述: 管道-过滤器模型 (3)

3. 设计内容/方案:管道-过滤器的设计原型 (6)

4. 总结 (8)

参考文献 (9)

1.问题背景

摘要软件体系结构设计给出了大规模软件复用,特别是领域复用的重要设计模式。体系结构描述了软件系统的整体组织结构与风格,对软件的性能和质量有直接的影响。管道-过滤器模式是一种面向数据流的软件体系结构。该文对这种体系结构做了深入的讨论,并结合一个具体应用给出了设计原型。

关键词管道-过滤器模型管道过滤器

随着软件系统规模和复杂性的增加,系统总体结构设计的重要性已远远超过特定算法和数据结构的选择,良好的体系结构是保证系统成功的关键。基于软件体系结构的过程开发是现代软件开发的基本途径,也是软件工程成熟的标志。软件体系结构的风格或模式包括客户-服务器模式的体系结构,管道-过滤器模式的体系结构,层次式体系结构,面向对象的体系结构等。

管道-过滤器模式的体系结构是面向数据流的软件体系结构。它最典型的应用是在编译系统。一个普通的编译系统包括词法分析器,语法分析器,语义分析与中间代码生成器,优化器,目标代码生成器等一系列对源程序进行处理的过程。人们可以将编译系统看作一系列过滤器的连接体,按照管道-过滤器的体系结构进行设计。此外,这种体系结构在其它一些领域也有广泛的应用。因此它成为软件工程和软件开发中的一个突出的研究领域。

2.相关综述: 管道-过滤器模型

2.1 模型的结构与特征

管道-过滤器模型的基本部件都有一套输入输出接口。每个部件从输入接口中读取数据,经过处理,将结果数据置于输出接口中,这样的部件称为“过滤器”。这种模型的连接者将一个过滤器的输出传送到另一个过滤器的输入,该文把这种连接者称为“管道”。

在这种模型中,过滤器必须是独立的实体,每一个过滤器的状态不受其它过滤器的影响。并且,虽然人们对过滤器的输入输出有一定的规约,但过滤器并不需要知道向它提供数据流的过滤器和它要提供数据流的过滤器的内部细节。

过滤器的基本结构如图 1。

3

图1管道-过滤器中的基本单元:过滤器

管道-过滤器模式的系统构架如图 2。

图 2管道-过滤器模式的系统构架

2.2模型的优点

管道-过滤器模型有如下的优点:

(1)设计人员将整个系统的输入输出行为理解为单个过滤器行为的叠加与组合。这样可以将问题分解,化繁为简。

(2)任何两个过滤器,只要它们之间传送的数据遵守共同的规约就可以相连接。每个过滤器都有自己独立的输入输出接口,如果过滤器间传输的数据遵守其规约,只要用管道将它们连接就可以正常工作。

(3)整个系统易于维护和升级:旧的过滤器可以被替代,新的过滤器可以添加到已有的系统上。软件的易于维护和升级是衡量软件系统质量的重要指标之一,在管道-过滤器模型中,只要遵守输入输出数据规约,任何一个过滤器都可以被另一个新的过滤器代替,同时为增强程序功能,可以添加新的过滤器。这样,系统的可维护性和可升级性得到了保证。

(4)支持并发执行:每个过滤器作为一个单独的执行任务,可以与其它过滤器并发执行。过滤器的执行是独立的,不依赖于其它过滤器的。

2.3模型的缺点及其改进

4

管道-过滤器模型有如下的缺点:

(1)交互式处理能力弱:管道-过滤器模型适于数据流的处理和变换,不适合为与用户交互频繁的系统建模。在这种模型中,每个过滤器都有自己的数据,这些数据或者是从磁盘存储器中读取来,或者是由另一个过滤器的输出导入进来,整个系统没有一个共享的数据区。这样,当用户要操作某一项数据时,要涉及到多个过滤器对相应数据的操作,其实现较为复杂。

由以上的缺点,可以对每个过滤器增加相应的用户控制接口,使得外部可以对过滤器的执行进行控制。改进的过滤器如图 3。

图 3 带有用户控制接口的过滤器

(2)数据的打包与解包:有时,系统中的过滤器需要有一个数据转换器来对输入输出数据进行解包打包。这样会降低系统性能,增加实现过滤器的复杂性。

2.4与面向对象的体系结构的比较

面向对象的体系结构就是应用面向对象的方法建立系统的体系结构。其主要思想是:对问题域中客观存在的各项事物建立相应的对象,对象的属性与方法分别描述事物的静态特征与动态行为,对象间的交互通过对其方法的调用进行。面向对象方法的优点是它封装了对象的属性和行为,实现了“信息隐蔽”。同时,对象内部行为的修改不影响外部对它的调用。

面向对象的体系结构的一个明显的缺点是:当一个对象通过过程调用与其它对象交互时,它必须知道其它对象的标识。而当一个对象的标识改变时,需要对所有调用这一方法的对象进行修改。而在管道(过滤器这种体系结构中,过滤器与其它过滤器相连接时不必知道系统中的其它过滤器。而且当某个过滤器发

生改变时,不需要对其他过滤器进行改动。

5

在实际应用中,可以将这两种体系结构结合起来。例如,先按照管道(过滤器的思想建立系统的体系结构,然后应用面向对象的方法设计和实现过滤器及管道。

3. 设计内容/方案:管道-过滤器的设计原型

3.1问题域

下面举一个简单的例子说明管道-过滤器的应用与实现。需求描述:假设有一批实时的二维坐标点数据需要变换(即对点的横、纵坐标进行缩放),并在屏幕上进行显示,要求外部要能设置变换规则(如缩放倍数)和显示规则(如显示模式和显示颜色)。

3.2体系结构建模

这是一个对坐标点的数据流进行顺序处理的过程,可以应用管道(过滤器体系结建模。将这个系统分为两个过滤器,一个为坐标点数据流变换过滤器,另一个为坐标点数据流实时显示过滤器。其中,坐标点数据流变换过滤器有一个外部控制接口对变换规则如缩放倍数进行设置,坐标点数据流实时显示过滤器有一个外部控制接口对显示规则如显示模式和显示颜色进行设置。

整个系统的体系结构如图4。

图4坐标点变换与显示的体系结构

3.3过滤器的设计

可以将过滤器用状态转换图表示。

过滤器有如下状态:停止状态,工作状态,等待状态,休眠状态。

停止状态:表示过滤器处于待启动状态,当外部启动过滤器后,过滤器处于处理状态;

处理状态:表示过滤器正在处理输入数据队列中的数据;

6