管道/过滤器
考试要求: 掌握     
知识路径:  > 软件工程  > 软件体系结构风格  > 经典软件体系结构风格


 
       在管道/过滤器风格中,每个构件都有一组输入和输出,构件读输入的数据流,经过内部处理,然后产生输出数据流。因此,这里的构件被称为过滤器,这种风格的连接件就像是数据流传输的管道,将一个过滤器的输出传到另一个过滤器的输入。此风格特别重要的过滤器必须是独立的实体,它不能与其他的过滤器共享数据,而且一个过滤器不知道它上游和下游的标识。
       一个典型的管道/过滤器体系结构的例子是以UNIX shell编写的程序。UNIX既提供一种符号,以连接各组成部分(UNIX的进程),又提供某种进程运行机制以实现管道。另一个著名的例子是传统的编译器。传统的编译器一直被认为是一种管道系统,在该系统中,一个阶段(包括词法分析、语法分析、语义分析和代码生成)的输出是另一个阶段的输入。
       管道/过滤器风格的软件体系结构具有许多很好的特点:
       (1)使得构件具有良好的隐蔽性和高内聚、低耦合的特点。
       (2)允许设计者将整个系统的I/O行为看成是多个过滤器行为的简单合成。
       (3)支持软件重用。只要提供适合在两个过滤器之间传送的数据,任何两个过滤器都可被连接起来。
       (4)系统维护简单,可扩展性好。新的过滤器可以添加到现有系统中来;旧的可以被改进的过滤器替换掉。
       (5)允许对一些如吞吐量、死锁等属性的分析。
       (6)支持并行执行。每个过滤器是作为一个单独的任务完成,因此可与其他任务并行执行。
       但是,这样的系统也存在着若干不利因素:
       (1)通常导致进程成为批处理的结构。这是因为虽然过滤器可增量式地处理数据,但它们是独立的,所以设计者必须将每个过滤器看成一个完整的从输入到输出的转换。
       (2)不适合处理交互的应用。当需要增量地显示改变时,这个问题尤为严重。
       (3)因为在数据传输上没有通用的标准,每个过滤器都增加了解析和合成数据的工作,这样就导致了系统性能下降,并增加了编写过滤器的复杂性。
 

更多复习资料
请登录电脑版软考在线 www.rkpass.cn

京B2-20210865 | 京ICP备2020040059号-5
京公网安备 11010502032051号 | 营业执照
 Copyright ©2000-2025 All Rights Reserved
软考在线版权所有