软考高级《系统架构设计师》-- 刷题-02-架构风格相关题目总结

语言: CN / TW / HK

theme: channing-cyan

前言

今天是 2022年9月3日,距离软考高级《系统架构设计师》还有62天。

image.png

继续来把前几天刷题后,觉得比较典型的设计模式和软件架构风格的题目总结一下。

题目1 设计模式-桥接模式

image.png

这道题首先需要了解桥接模式的关键作用。

《系统架构设计师教程-清华版》里面只有一句话的概括:

将类的抽象部分和实现部分分离开来,使他们可以独立变化。 这里的抽象部分也就是Drawing。实现部分也就是Shape部分。

再看一个类似题

题目2 设计模式-桥接模式

image.png

本题来看一下:

A 装饰器模式,肯定排除,装饰器一般是在一个核心功能的类上,进行额外功能的扩展 B 适配器模式,咋一看好像对,但是仔细想,不对。适配器模式,大概就是,用户需要调用若干个内容,但是各个内容之间略微有一些差异,需要专门进行给适配,来让用户调用不同的内容。 D Facade 外观模式。为子系统中的一组接口提供一个一致的外观,从而简化了该接口。

所以ABD都不行。

C 在本题题干部分提到宣传产品有多种表现形式,又有多种媒介,如果用一棵类树来表达,必然会带来“类爆炸”的问题,所以使用桥接模式是合适的。桥接模式的最核心特点便是:将抽象部分与它的实现部分分离,使它们都可以独立地变化。

题目3 架构风格-解释器风格

image.png

本题考察的是架构风格,关于架构风格,建议综合以下三本书一起学习,因为这几本数都讲的不全面,考试的内容指不定从哪个书里出。

《系统架构设计师教程-清华版》

《系统架构设计师教程-第四版(希赛版)》

《系统架构设计师考试全程指导》

本题考察的是解释器风格。它属于虚拟机风格的一种。

这个只有在《系统架构设计师教程-第四版(希赛版)》里看到相关解释:

其他两本书并未发现相关陈述。

虚拟机风格

包括以下两种风格: * 解释器风格 * 基于规则的系统 image.png

本题是极为经典的考题。题目中提及“支持玩家自行创建战役地图”这说明系统要能应对“自定义”内容的解析,这需要用到解释器风格。游戏内仿真一些列过程,就有点像书中的描述。

其他错误选项:

A:描述中未发现和层次相关的内容。

C:黑板风格是仓库风格中的一种

D:事件驱动系统,往往会有一些事件、命令相关的信息。

image.png

仓库风格

仓库风格包括的子风格有:数据库系统、超文本系统、黑板风格。

黑板系统

黑板系统主要由三部分组成:

(1)知识源。知识源中包含独立的、与应用程序相关的知识,知识源之间不直接进行通信,它们之间的交互只通过黑板来完成。

(2)黑板数据结构。黑板数据是按照与应用程序相关的层次来组织的解决问题的数据,知识源通过不断地改变黑板数据来解决问题。

(3)控制。控制完全由黑板的状态驱动,黑板状态的改变决定使用的特定知识。

黑板系统适合于解决复杂的非结构化的问题,能在求解过程中综合运用多种不同知识源,使得问题的表达、组织和求解变得比较容易。黑板系统是一种问题求解模型,是组织推理步骤、控制状态数据和问题求解之领域知识的概念框架。它将问题的解空间组织成一个或多个应用相关的分级结构。分级结构的每一层信息由一个唯一的词汇来描述,它代表了问题的部分解。领域相关的知识被分成独立的知识模块,它将某一层次中的信息转换成同层或相邻层的信息。各种应用通过不同知识表达方法、推理框架和控制机制的组合来实现。影响黑板系统设计的最大因素是应用问题本身的特性,但是支撑应用程序的黑板体系结构有许多相似的特征和构件。

对于特定应用问题,黑板系统可通过选取各种黑板、知识源和控制模块的构件来设计;也可以利用预先定制的黑板体系结构的编程环境。黑板系统的传统应用是信号处理领域,如语音和模式识别。另一应用是松耦合代理数据共享存取。

数据库架构风格

数据库架构是库风格最常见的形式。构件主要有两大类:

  • 一个是中央共享数据源,保存当前系统的数据状态;

  • 另一个是多个独立处理元素,处理元素对数据元素进行操作。

而超文本系统的典型代表,就是早期的静态网页。三种架构子风格中,最复杂的是黑板系统。

再看一个题目

题目4 架构风格-黑板系统

image.png

语音识别是典型的黑板系统,所以选黑板系统

题目5 架构风格-解释器风格

image.png

这里特意强调了业务灵活,更偏向于解释器风格。

题目6 架构风格-规则系统

image.png

规则系统属于虚拟机风格的一种,在本题中要求机器人的控制者首先定义清洁任务和任务之间的关系,然

后由机器人执行,这说明机器人能对自定义的一些逻辑进行解析,这是虚拟机风格的一大特色。

题目中有很强的提示信息:定义一些关系,这就是在定义规则。

题目7 架构风格-解释器

image.png

依据题目要求拟开发的在线游戏需要自定义对象之间的交互,这样必须有机制能支持系统对新定义的规则进行解析,这需要用到虚拟机风格,构造一个虚拟机对规则进行解析,所以在此应选择归属于虚拟机风格的解释器。

本题的选项中没有基于规则系统,如果有的话,就有点难区分了。它和解释器风格比较接近,都是虚拟机风格的一种。

题目8 架构风格

image.png

我们看49 和50 两题

黑板系统的典型应用就是语音识别,适合处理有一些列复杂的,求解过程不确定的问题。。

看到有输入,有输出的,就知道是管道过滤器风格。

题目9 架构风格-数据仓储风格

image.png

题目10 架构风格-顺序批处理

image.png

第9题和第10题综合来看一下。

传统的编译器:顺序批处理 现代编译器:数据仓储

题目11 架构风格-C2

image.png

C2风格的特点就是“组合”

其他选项:

黑板:处理语音识别等不确定过程,复杂场景问题。 规则系统:题目中一定会出现“定义”等,和规则相关的描述 虚拟机:往往用来在模拟在某个环境假设下的一些操作。

后记

刷完这些题目后,发现:

如果不理解每个风格的具体含义,直接记住也行,因为每年真题的题目描述都非常接近。看描述有时候就能知道答案。

希望这些整理的题目能对大家有帮助。