第 1 章 · 架构基础与架构风格
考点梳理
1.1 什么是软件架构
- 架构=组件 + 连接件 + 约束(也有定义强调"结构、视图与决策");
- 架构关注全局:模块划分、交互方式、技术选型、非功能属性(质量属性);
- 架构决策:一旦确定,后期修改代价高,因此要在早期充分评估。
1.2 4+1 视图模型(必考)
| 视图 | 关注 | 面向读者 |
|---|---|---|
| 逻辑视图 | 功能与对象模型(类、职责、关系) | 设计人员、用户 |
| 进程视图 | 并发、同步、性能与吞吐 | 系统集成人员 |
| 开发视图 | 代码组织、模块与包结构 | 程序员 |
| 物理视图 | 硬件/部署拓扑、节点分布 | 系统工程师、运维 |
| 场景(用例)视图 | 用若干用例串联验证以上视图 | 全体干系人 |
记忆锚:逻辑看"类"、进程看"并发"、开发看"代码"、物理看"部署"、场景做"串联"。
1.3 架构风格五大类(高频)
| 大类 | 典型子风格 | 特点/适用 |
|---|---|---|
| 数据流 | 批处理、管道-过滤器 | 数据按序处理;适合编译器、数据处理流水线 |
| 调用/返回 | 主程序-子程序、面向对象、分层 | 易理解、易维护;分层适合企业应用 |
| 独立构件 | 进程通信、事件驱动(隐式调用) | 松耦合、易扩展;适合 GUI、消息系统 |
| 虚拟机 | 解释器、规则系统 | 灵活可配置;适合规则引擎、脚本平台 |
| 仓库(数据共享) | 数据库系统、超文本、黑板 | 以中心数据为核心;适合知识推理、IDE |
记忆锚:数据流、调用返回、独立构件、虚拟机、仓库——"流、调、独、虚、仓"。
1.4 架构与生命周期
需求分析 → 架构设计(关键决策点)→ 详细设计 → 实现 → 测试 → 运维演化;架构在演化阶段常需重构以适应新需求(可修改性质量属性的体现)。
🧠 记忆工具箱
口诀速记
- 4+1 视图:逻辑、进程、开发、物理 + 场景;
- 架构风格五类:流、调、独、虚、仓;
- 分层风格的优点:关注点分离、可替换、便于标准化;缺点是性能开销与层间耦合风险;
- 事件驱动(隐式调用)核心:发布-订阅、松耦合、控制流不确定。
例题(带解析)
例题 1:某数据处理系统由多个处理环节串联,每个环节独立完成一种转换,数据依次流经各环节。该架构风格属于? A. 调用/返回风格 B. 数据流风格(管道-过滤器) C. 仓库风格 D. 虚拟机风格 答案 B。解析:数据依次流经独立处理单元(过滤器)、由管道连接,是典型的管道-过滤器(数据流)风格。
例题 2:4+1 视图模型中,用于描述并发与同步机制、面向系统集成人员的视图是? A. 逻辑视图 B. 进程视图 C. 开发视图 D. 物理视图 答案 B。解析:进程视图关注并发、同步、性能与吞吐;逻辑视图关注对象与职责,开发视图关注代码组织,物理视图关注部署拓扑。
⚠️ 易错提醒
- 分层风格 ≠ 面向对象风格:分层强调"层间依赖单向",面向对象强调"对象封装与继承";
- 事件驱动的控制流由事件触发,不确定,因此难以预测整体行为(可靠性设计需注意);
- 黑板风格属仓库类(以共享数据为中心、由多个知识源协作),不要与"事件驱动"混淆;
- 4+1 视图中的场景视图用于验证其他视图,不是独立的实现视图。