软件架构风格
考试趋势:本章平均每年约4~5 分。
- 软件架构风格从 2013 年至今持续出现,近年每场都有记录,是架构设计中最稳定的基础主线之一。
- 题目以风格识别、构件与连接件特征、数据或控制流向及适用场景辨析为主;复习时先按五类风格建立对照,再记具体风格的优缺点。
软件架构风格是特定应用领域中系统组织方式的惯用模式,反映该领域系统共有的结构和语义特征。它通过构件、连接件及其组合约束,描述一类系统通常如何组织和协作。
1. 软件架构风格概述
一个架构风格通常包含:
- 词汇表:规定可使用的构件类型和连接件类型;
- 约束:规定构件和连接件如何组合、如何交互;
- 语义:说明这种组织方式所表达的系统行为和协作含义。
常见架构风格可以按核心组织方式分为五类:数据流风格、调用/返回风格、以数据为中心的风格、虚拟机风格和独立构件风格。
对应真题:#2013.11-29#2014.11-34#2015.11-29#2016.11-35#2023.11-22#2024.11-33#2026.05-70
2. 典型架构风格与辨析
先看架构的核心组织方式,再看构件之间如何交互,以及数据或控制如何流动。
风格特点执行取决于输入是否可用,顺序不预先确定
批处理完整批次 + 严格串行;构件是独立程序
管道-过滤器过滤器处理 + 管道传输;连续数据流,可并行
风格特点调用/返回机制;分治,降低系统复杂度
主程序/子程序主程序调用子程序;过程调用是连接件
面向对象对象封装数据和操作
分层上层调用下层、层间服务
客户机/服务器客户请求 + 服务器服务;资源不对等
胖客户端客户端承担更多业务逻辑和用户交互;瘦客户端更多依赖服务器
三层 C/S表示层 + 功能层 + 数据层;B/S 是特殊的三层 C/S
仓库中央数据结构 + 独立构件读写
黑板黑板 + 知识源 + 控制组件;适合复杂、非结构化问题
区别:仓库看共享数据状态;黑板看知识源协同求解。
风格特点构造运行环境,解析和运行自定义语言
解释器解释引擎 + 代码存储区 + 当前状态 + 执行进度;效率较低
规则系统规则集 + 规则解释器 + 规则/数据选择器 + 工作内存
区别:解释器执行语言或脚本;规则系统执行可调整的业务规则。
进程通信独立进程 + 消息传递;点到点、同步/异步、RPC
事件系统事件触发、间接调用;事件源不必知道处理者
C2顶部/底部接口;构件不能直接连接,必须通过连接件
核心输入 → 处理 → 输出 → 反馈,形成闭环
判断根据环境或结果不断调整状态,如空调控温、定速巡航
对应真题:#2013.11-32#2015.11-12#2015.11-36#2015.11-37#2016.11-31#2016.11-34#2016.11-36#2016.11-37#2016.11-38#2017.11-34#2017.11-35#2017.11-36#2017.11-37#2018.11-34#2018.11-35#2020.11-10#2020.11-26#2021.11-35#2021.11-48#2022.11-42#2023.11-34#2023.11-43#2024.05-24#2024.05-25#2024.05-42#2024.05-43#2024.11-6#2024.11-44#2024.11-55#2025.05-14#2025.05-27#2025.05-55#2025.11-30#2025.11-40#2025.11-52#2025.11-53#2026.05-48#2026.05-50#2026.05-51