本章目录:
一、节概述
在系统架构设计师考试中,软件架构风格
是理解架构设计模式与系统组织结构的基础,是考生深入理解软件系统组织方式与性能取舍的关键章节。
本节主要介绍了常见的软件架构风格及其适用场景和组织模式,包括数据流风格
、调用/返回风格
、以数据为中心的风格
、虚拟机风格
、独立构件风格
、以及C2风格
等。每种风格都反映了不同类型系统在架构设计中的共性和结构化思路。
二、知识详解
1. 软件架构风格概述
架构风格
是指在特定领域中系统架构的通用组织模式,它定义了:
词汇表
:系统的基本构件(如对象、过程)和连接件(如消息、数据流)约束
:描述构件之间的组合和通信规则
🔺 架构风格的核心价值在于:重用结构化思路和模式,提高设计效率与质量一致性
2. 数据流体系结构风格
🔹 批处理风格
- 每个处理步骤为独立程序
- 数据需完整传输,各步骤顺序执行
- 典型场景:
银行对账、日志处理
🔹 管道-过滤器风格
- 每个处理阶段是过滤器
- 使用数据流连接各处理阶段
- 优势:
高模块化、易扩展
📌 关键特征:构件为过滤器
,连接件为数据流
3. 调用/返回体系结构风格
🔸 主程序/子程序风格
- 单一控制线程
- 程序结构为“树形调用”
🔸 面向对象风格
- 构件为
对象
- 强调封装、继承、多态
- 适用于
可复用性强的应用
🔸 层次型风格
- 系统分为多个互相依赖的层级
- 每层仅与相邻层通信
- 示例:
TCP/IP协议栈
🔸 客户端/服务器风格(C/S)
- 二层:客户端 + 数据服务器
- 三层:表示层 + 功能层 + 数据层
- 三层适用于:
业务逻辑复杂的应用
🔸 浏览器/服务器风格(B/S)
- 三层结构为:浏览器 / Web服务器 / 数据库
- 常见于:
企业信息系统、OA系统
4. 以数据为中心的体系结构风格
🔹 仓库风格
- 一个
中央数据仓库
+ 多个操作构件 - 构件通过共享数据进行交互
🔹 黑板风格
- 类似“专家系统”结构
- 包含:
黑板(中央数据)+ 知识源(推理模块)+ 控制器
- 用于:
问题求解系统(如语音识别、故障诊断)
5. 虚拟机体系结构风格
🔸 解释器风格
- 系统内置虚拟机解释执行
- 弥合程序语义与硬件语义差异
- 缺点:
执行效率较低
🔸 规则系统风格
- 构件包括:
知识库
规则解释器
工作内存
- 典型应用:
专家系统、智能推理系统
6. 独立构件体系结构风格
该风格强调模块的独立性与低耦合性
🔹 进程通信风格
- 构件为独立进程
- 使用消息机制传递信息
- 适合:
并发性高、可移植性要求高
的系统
🔹 事件系统风格
- 构件通过事件触发进行协作
- 无直接调用,耦合度低
- 应用于:
GUI应用、Web系统
7. C2 风格
- 构件间无直接连接
- 所有通信通过
连接件
完成 - 适用于:
分布式、高内聚低耦合的架构需求
📌 构件通过上行接口(接受数据)
和下行接口(发送数据)
通信,强调异步广播
三、关键点提炼
关键点 | 内容 |
---|---|
风格结构组成 | 构件(功能单元)+ 连接件(通信机制) + 约束 |
数据流风格 | 批处理(完整传输)与管道-过滤器(连续处理) |
调用/返回风格 | 主/子程序、OO、层次型、C/S、B/S |
以数据为中心 | 仓库(数据集中)与黑板(专家协作) |
虚拟机风格 | 解释器(虚拟执行)与规则系统(知识推理) |
独立构件风格 | 进程通信(消息)与事件驱动(触发) |
C2 风格 | 所有通信通过连接件,强调解耦与异步 |
四、考试提示
📝 常见考题类型:
- 概念匹配题:给定描述,判断属于哪种架构风格
- 优缺点分析题:分析风格适用性及其影响
- 风格对比题:如 C/S 与 B/S,管道-过滤器与黑板等
⚠️ 易混淆点:
概念 | 易混点 | 区分要点 |
---|---|---|
管道-过滤器 vs 批处理 | 都为数据流 | 前者连续传输,后者整体传输 |
仓库 vs 黑板 | 都有中央数据结构 | 黑板含有推理控制流程 |
解释器 vs 编译器 | 架构级误用 | 解释器用于虚拟机架构风格 |
C/S vs B/S | 层数混淆 | B/S明确分为浏览器、Web服务器、数据库三层 |
五、总结与建议
本节内容围绕各类架构风格进行系统介绍,是架构设计的“结构化语言”。考试时既考概念理解,也考应用适配能力。
✅ 建议如下:
- 建立
对风格的结构化记忆框架
(如数据流、调用返回等类别) - 结合实际案例加深对风格特性的理解
- 注意各风格的构件类型、连接方式、组织结构与典型应用场景
🧠 掌握架构风格,就等于掌握了“系统设计的基本语法”。选择合适的风格是系统可维护、可扩展、高性能运行的第一步。