软件架构风格描述某一特定领域中的系统组织方式和惯用模式,反映了领域中众多系统所共有的(结构和语义)特征。对于语音识别、知识推理等问题复杂、解空间很大、求解过程不确定的这一类软件系统,通常会采用(黑板)架构风格。对于因数据输入某个构件,经过内部处理,产生数据输出的系统,通常会采用(管道-过滤器)架构风格。
软件架构风格是特定领域内众多系统共有的组织模式,核心特征聚焦于系统构件之间的结构关系,以及构件协同完成系统功能的语义模式。常见架构风格及适用场景如下:黑板架构风格,适用于问题空间复杂、解空间庞大且求解过程存在不确定性的场景,比如语音识别、专家系统、AI推理系统等,该架构通过共享的黑板协调多个独立模块完成协作推理;管道-过滤器架构风格,适配线性数据流处理类系统,像编译器、信号处理、图像处理这类遵循输入-处理-输出模式的系统,每个过滤器是独立的处理单元,管道负责在过滤器之间传递数据;此外,事件驱动架构侧重响应外部触发的事件,分层架构强调系统结构的分层清晰性,解释器架构用于语言语义的解释执行,过程控制架构适用于流程驱动型系统,实际选型需结合业务场景的核心需求确定适配的架构风格。
这组题目考察的是软件架构风格(Architectural Style) 的基础知识,涉及架构的分类、语义特征、适用场景等内容。
问题 1:软件架构风格是一种高度抽象的系统结构设计方法,重点在于系统构件之间的结构关系(结构)以及这些构件协同完成系统功能的方式(语义)。它不只是“怎么连起来”,还关心“连起来后行为是否正确、如何协作”。
A选项语法和语义:更偏向编程语言层面。
B选项结构和语义:正确,这是架构风格最核心的特征。
C选项静态和动态:一般用于描述系统行为的两个方面,而非架构风格的定义要素。
D选项行为和约束:是架构设计中考虑的内容,但不是用于描述风格的两个基本维度。
问题 2:“黑板(Blackboard)架构风格”适用于问题空间大、不确定、需要多种模块协作推理的场景,例如语音识别、专家系统、AI推理等。多个独立模块通过共享的黑板协调工作。
A. 管道-过滤器:用于顺序数据流处理。
B. 解释器:用于解释执行语言语义,不适合复杂知识推理。
C. 黑板:正确,适合语言识别等复杂推理问题。
D. 过程控制:用于流程驱动的系统,不适合非确定性问题空间。
问题 3:“管道-过滤器(Pipe-and-Filter)”架构风格适合数据处理流程,例如编译器、信号处理、图像处理等场景。每个“过滤器”是一个独立处理步骤,“管道”负责传递数据。
A. 事件驱动系统:用于响应外部事件,不强调数据流顺序。
B. 黑板:适合复杂推理协同处理,不适用于线性数据流。
C. 管道-过滤器:正确,最适合数据输入-处理-输出模式。
D. 分层系统:结构清晰但不强调数据处理过程。
