免费智能真题库 > 历年试卷 > 系统架构设计师 > 2017年下半年 系统架构设计师 上午试卷 综合知识
  第50题      
  知识点:   管道/过滤器
  章/节:   软件架构的风格       

 
软件架构风格描述某一特定领域中的系统组织方式和惯用模式,反映了领域中众多系统所共有的(48)特征。对于语音识别、知识推理等问题复杂、解空间很大、求解过程不确定的这一类软件系统,通常会采用(49)架构风格。对于因数据输入某个构件,经过内部处理,产生数据输出的系统,通常会采用(50)架构风格。
 
 
  A.  事件驱动系统
 
  B.  黑板
 
  C.  管道-过滤器
 
  D.  分层系统
 
 
 

 
  第56题    2009年下半年  
   63%
一个软件的架构设计是随着技术的不断进步而不断变化的。以编译器为例,其主流架构经历了管道-过滤器到数据共享为中心的转变过程。..
  第48题    2019年下半年  
   39%
对软件体系结构风格的研宄和实践促进了对设计的复用。Garlan和Shaw对经典体系结构风格进行了分类。其中,   (46)&n..
  第53题    2009年下半年  
   42%
某软件开发公司负责开发一个Web服务器服务端处理软件,其核心部分是对客户端请求消息的解析与处理,包括HTTP报头分离、SOAP报文解..
   知识点讲解    
   · 管道/过滤器
 
       管道/过滤器
        在管道/过滤器风格中,每个构件都有一组输入和输出,构件读输入的数据流,经过内部处理,然后产生输出数据流。因此,这里的构件被称为过滤器,这种风格的连接件就像是数据流传输的管道,将一个过滤器的输出传到另一个过滤器的输入。此风格中特别重要的过滤器必须是独立的实体,它不能与其他的过滤器共享数据,而且一个过滤器不知道它上游和下游的标识。
        一个典型的管道/过滤器架构的例子是以UNIX shell编写的程序。UNIX既提供一种符号,以连接各组成部分(UNIX的进程),又提供某种进程运行机制以实现管道。另一个著名的例子是传统的编译器。传统的编译器一直被认为是一种管道系统,在该系统中,一个阶段(包括词法分析、语法分析、语义分析和代码生成)的输出是另一个阶段的输入。
        管道/过滤器风格的软件架构具有许多很好的特点:
        (1)使得构件具有良好的隐蔽性和高内聚、低耦合的特点。
        (2)允许设计者将整个系统的I/O行为看成是多个过滤器行为的简单合成。
        (3)支持软件重用。只要提供适合在两个过滤器之间传送的数据,任何两个过滤器都可被连接起来。
        (4)系统维护简单,可扩展性好。新的过滤器可以添加到现有系统中来;旧的可以被改进的过滤器替换掉。
        (5)允许对一些属性,如吞吐量、死锁等进行分析。
        (6)支持并行执行。每个过滤器是作为一个单独的任务完成,因此可与其他任务并行执行。
        但是,这样的系统也存在着若干不利因素:
        (1)通常导致进程成为批处理的结构。这是因为虽然过滤器可增量式地处理数据,但它们是独立的,所以设计者必须将每个过滤器看成一个完整的从输入到输出的转换。
        (2)不适合处理交互的应用。当需要增量地显示改变时,这个问题尤为严重。
        (3)因为在数据传输上没有通用的标准,每个过滤器都增加了解析和合成数据的工作,这样就导致了系统性能下降,并增加了编写过滤器的复杂性。
   题号导航      2017年下半年 系统架构设计师 上午试卷 综合知识   本试卷我的完整做题情况  
1 /
2 /
3 /
4 /
5 /
6 /
7 /
8 /
9 /
10 /
11 /
12 /
13 /
14 /
15 /
 
16 /
17 /
18 /
19 /
20 /
21 /
22 /
23 /
24 /
25 /
26 /
27 /
28 /
29 /
30 /
 
31 /
32 /
33 /
34 /
35 /
36 /
37 /
38 /
39 /
40 /
41 /
42 /
43 /
44 /
45 /
 
46 /
47 /
48 /
49 /
50 /
51 /
52 /
53 /
54 /
55 /
56 /
57 /
58 /
59 /
60 /
 
61 /
62 /
63 /
64 /
65 /
66 /
67 /
68 /
69 /
70 /
71 /
72 /
73 /
74 /
75 /
 
第50题    在手机中做本题