系统架构设计师常见高频考点总结之软件架构设计

张开发
2026/6/10 3:51:31 15 分钟阅读
系统架构设计师常见高频考点总结之软件架构设计
1.软件架构风格这是架构考试中最基础也是最重要的部分,需要掌握各种风格的定义、优缺点及适用场景。软件架构风格描述某一特定领域中的系统组织方式和惯用模式,反映了领域中众多系统所共有的结构和语义特征。一个架构风格定义了一个词汇表和一组约束。词汇表包含构件和连接件的类型。约束规定了系统是如何将这些构件和连接件组合起来的。Garlan Shaw 的 5 大体系结构风格五大家族(主分类)旗下小弟(子风格)考场秒杀“特征词”(看到这些词直接选)1. 数据流风格(流水线作业)批处理序列管道-过滤器数据驱动、线性顺序、前一个的输出是后一个的输入、编译器(词法分析-语法分析)、传统信号处理。2. 调用/返回风格(发号施令)主程序/子程序面向对象层次结构分而治之、降低耦合、对象封装、OSI网络模型、系统分层(严格不允许越级)。3. 独立构件风格(互相不认识,靠广播)进程通信事件系统(隐式调用)高度解耦、发布-订阅、广播、触发器、回调函数、图形界面开发、IDE编辑器插件。4. 虚拟机风格(自己造个翻译官)解释器规则系统自定义语言、脚本引擎、专家系统、推理机、动态修改业务规则、IF-THEN。5. 数据中心风格(大家围着一块板子)数据库系统黑板系统仓库风格以数据为中心、全局共享状态、无确定性算法、语音识别、模式识别、知识源。1.1分层架构定义:将系统垂直划分为若干层(如 MVC 的表现层、业务层、数据层)。优点:结构清晰、职责分离、易于维护和扩展。缺点(重点记忆):性能损耗(请求必须穿过每一层)、级联修改(改底层可能影响上层)、代码冗余。适用:企业级应用、Web 应用。1.2 管道-过滤器风格定义:每个构件都有一组输入和输出,构件读取输入的数据流,经过内部处理(计算或增值),产生输出数据流。前一个构件的输出作为后一个构件的输入,前后数据流关联。过滤器就是构件,连接件就是管道。特征:强调数据像水流一样处理,处理过程有顺序性。适用:批处理系统、编译器、信号处理。1.3 微内核风格优点:在于结构清晰、核代码量少,安全性和可靠性高、可移植性强、可伸缩性、可扩展性高;缺点:是难以进行良好的整体优化、进程间互相通信的开销大、内核功能代码不能被直接调用而带来服务的效率低。适用:操作系统(如 Minix)、IDE(如 Eclipse, VS Code)。VS Code 刚下载下来的时候是个“白板”(只有最基本的文本编辑功能,这就是微内核)。你要写 Python、要连接 Git、要换个酷炫的主题,你得去下载对应的 Extension(这就是插件)。1.4 微服务架构特征:服务原子化、独立部署、去中心化治理。对比单体:解决了单体的高耦合、扩展难问题,但带来了分布式系统的复杂性。1.5 批处理风格特征:每一步必须完全结束后,下一步才能开始;数据在步骤间以完整文件的形式传递。不能并发处理数据流(区别于管道-过滤器风格)。数据传递:整体 (Whole) 传递。1.6 虚拟机风格只要题干里强调**“用户可以自定义行为/逻辑/对象关系”、“动态解析”,大方向上就是虚拟机风格。如果选项里同时出现了这几个词,注意抠字眼:看到“解释引擎、自定义语言、工作流节点处理、游戏对象行为定义”,优先选解释器**。看到“规则集、知识库、响应外界突发事件调整状态”,优先选规则系统。解释器风格特征:偏向于执行某种“语言”或“伪代码”。它在程序语言定义的计算和有效硬件操作确定的计算之间建立联系。典型场景: 经常用于实现编译器、工作流语言的解析、或者支持用户自定义行为的游戏引擎。可以通过部分解释代码预先编译的方式提高系统性能规则系统特征:偏向于“条件 ➔ 动作”的逻辑。它不是按顺序执行代码,而是根据当前的数据或状态,去匹配规则库里的规则,匹配上了就执行。典型场景:专家系统,或者需要根据外界环境触发突发事件并进行动态调整的系统。例如:“扫地机器人/地面清洁机器人接受自定义任务后,响应外界触发的突发事件并动态调整”基于规则的系统核心组件规则集 :知识库存储知识(If-Then 规则)。规则解释器:推理引擎。规则/数据选择器:决定应用哪条规则。工作内存1.7 隐式调用风格构件不直接调用一个过程,而是触发或广播一个或多个事件。构件中的过程在一个或多个事件中注册,当某个事件被触发时,系统自动调用在这个事件中注册的所有过程。一个事件的触发就导致了另一个模块中的过程调用。可以通过处理函数的并发调用提高系统处理性能。比如:IDE你按下了Ctrl+S保存代码(触发事件),代码格式化插件自动运行。看到 交互式编程 / 修改代码同时触发高亮、查错选择隐式调用1.8仓库风格(数据中心风格)一、 核心概念与软考术语核心思想:仓库风格又称“以数据为中心的架构风格”组成构件:中央数据结构(仓库):负责说明当前状态。独立构件:在中央数据存储上执行操作,构件间不直接通信。软考辩析点:软考常考察仓库风格

更多文章