夜雨聆风学习资料网

ARTICLE · 1037678

02-软件架构设计入门

02-软件架构设计入门

软件架构设计入门

软考高级 · 系统架构设计师|第 1 课建议用时:30~40 分钟用途:综合知识 + 案例分析 + 论文基础

本课目标

建立软件架构设计的完整骨架。学完后,你应能:

  • 解释“什么是软件架构”;
  • 识别六类常考质量属性;
  • 判断常见架构风格及其适用场景;
  • 区分 4+1 架构视图;
  • 理解 ATAM 中的敏感点、权衡点和风险点。

一、软件架构设计的核心主线

软件架构不是“画几个框”,而是围绕业务目标作出一系列可解释、可验证、可权衡的高层技术决策。

软件架构 = 元素 + 关系 + 约束 + 决策依据

  • 元素:系统有哪些核心构件、服务、模块、数据库和节点。
  • 关系:元素之间怎样调用、通信、依赖和交换数据。
  • 约束:必须遵守的技术、业务、合规、成本和部署条件。
  • 决策依据:为什么这样拆分、为什么选这种风格、牺牲了什么、得到了什么。

架构设计五步主线

业务需求 → 质量属性 → 架构决策 → 架构视图 → 评估验证

考试主线:质量属性场景 → 架构风格与策略 → 4+1 视图 → SAAM / ATAM / CBAM 评估。

  • 综合知识:考概念与辨析;
  • 案例分析:考场景识别与方案落地;
  • 论文:考架构决策、实施过程与质量属性权衡。

二、质量属性:决定架构长什么样

  • 功能需求回答系统“做什么”;
  • 质量属性回答系统“做得多好”,以及面对并发、故障、攻击和变化时表现如何。
质量属性
常见度量词
典型架构策略
常见代价
性能
响应时间、TPS、吞吐量、CPU 利用率
缓存、并发、异步、分片、资源池
一致性与实现复杂度
可用性
可用率、恢复时间、停机时间
冗余、心跳、故障检测、自动切换、回滚
资源成本与运维复杂度
安全性
未授权访问、攻击阻断、数据泄漏、审计
认证、授权、加密、最小权限、审计日志
性能损耗与使用门槛
可修改性
修改时间、成本、影响模块数量
解耦、接口抽象、信息隐藏、配置化、插件化
抽象层次和初始开发成本
可测试性
故障定位时间、覆盖率、可观察性
日志、监控、依赖注入、接口隔离、状态可控
额外代码与数据采集成本
易用性
学习时间、误操作率、任务完成时间
一致交互、撤销、帮助、可访问性设计
交互设计和适配成本

2.1 质量属性场景六要素

刺激源 → 刺激 → 环境 → 制品 → 响应 → 响应度量
要素
回答的问题
刺激源
谁发起?
刺激
发生了什么?
环境
在什么条件下?
制品
作用于系统的哪个部分?
响应
系统怎样处理?
响应度量
做到什么程度?

:在系统正常运行期间,1 万名用户同时向订单服务提交请求,订单服务完成处理,并保证 95% 的请求在 2 秒内返回。

  • 刺激源:1 万名用户;
  • 刺激:同时提交订单请求;
  • 环境:系统正常运行;
  • 制品:订单服务;
  • 响应:处理并返回结果;
  • 响应度量:95% 请求在 2 秒内返回;
  • 质量属性:性能

易错点:

  • “10 天内接入新 API”是可修改性,不是性能;
  • “故障后 5 分钟恢复”是可用性,不是可靠性计算;
  • “10 分钟内定位故障实例”通常是可测试性

三、常见架构风格

架构风格
核心思想
典型场景
主要缺点
分层
上层使用下层服务,各层职责清晰
企业应用、网络协议栈
跨层调用和性能损耗
C/S
客户端与服务器分工
局域网、桌面应用
客户端部署维护成本高
MVC
模型、视图、控制器分离
Web 与 GUI 系统
小系统可能过度设计
管道-过滤器
数据依次经过独立处理步骤
编译器、ETL、音视频处理
不适合强交互;格式转换有开销
事件驱动
事件发布者与订阅者解耦
消息通知、异步业务
控制流难预测、调试困难
解释器
把语言或规则表示成可解释结构
规则引擎、脚本执行平台
执行效率一般
黑板
多个知识源协作处理共享问题
语音识别、复杂 AI 推理
控制策略复杂
微内核
小型核心 + 可插拔扩展
IDE、操作系统、插件平台
插件协议和版本管理复杂
SOA
用标准化服务契约整合企业能力
跨系统、遗留系统集成
治理较重,ESB 可能成为瓶颈
微服务
小型自治服务独立部署与演化
大型复杂、快速迭代系统
分布式与运维复杂度高

3.1 场景到架构风格

  • 连续转换、步骤可替换 → 管道-过滤器
  • 规则动态变化、需要解释执行 → 解释器
  • 多个专家模块协同求解 → 黑板
  • 发布者不知道订阅者 → 事件驱动
  • 异构企业系统通过标准服务集成 → SOA
  • 自治团队、独立部署、弹性伸缩 → 微服务
  • 小型核心与可插拔功能 → 微内核

四、4+1 架构视图

单张图无法同时满足业务、开发、测试、运维等角色的需要。4+1 模型使用多个视图描述同一个系统。

视图
主要关注点
面向角色
常用表达
逻辑视图
功能、类、对象、子系统
用户、分析师、设计师
类图、对象图
开发视图
模块、包、构件、代码组织
程序员、配置管理员
构件图、包图
进程视图
进程、线程、通信、并发和性能
性能、集成工程师
活动图、时序关系
物理视图
节点、网络、部署和拓扑
系统、运维工程师
部署图
场景视图(+1)
关键用例,驱动并验证其他视图
所有利益相关者
用例图、关键场景

记忆口诀:逻辑看功能,开发看代码,进程看运行,物理看部署,场景串联验证。


五、架构评估:SAAM、ATAM、CBAM

方法
侧重点
考试记忆点
SAAM
场景基础的架构分析,重点关注可修改性
较早、范围相对较窄
ATAM
多个质量属性之间的权衡
效用树、场景、敏感点、权衡点、风险点
CBAM
架构策略的成本与收益
在 ATAM 基础上加入经济分析与 ROI

5.1 四个必背概念

  • 敏感点:某项架构决策的变化,会显著影响某一个质量属性。例:线程池大小显著影响性能。
  • 权衡点:同一个决策同时影响多个质量属性,而且有利有弊。例:缓存提高性能,却可能损害一致性。
  • 风险点:可能导致质量目标无法实现的架构决策。例:所有请求通过单实例网关,存在单点故障。
  • 非风险点:经过分析,当前架构决策能够满足质量目标。

辨析口诀:敏感点看“影响大不大”;权衡点看“多个属性是否此消彼长”;风险点看“是否可能达不到目标”。

5.2 ATAM 基本过程

  1. 收集业务驱动因素和关键质量目标;   
  2. 描述候选架构及主要方法;
  3. 建立质量属性效用树并确定优先级;
  4. 分析架构方法与质量属性场景;
  5. 识别敏感点、权衡点、风险点和非风险点; 
  6. 汇总结果并提出架构改进建议。

六、综合案例:电商订单系统

某电商系统有以下要求:

  1. 双十一峰值达到 5 万 TPS,95% 请求在 800ms 内完成;
  2. 任一订单节点故障后 20 秒内恢复; 
  3. 三天内能够接入一个新的物流服务商;  
  4. 所有管理员操作必须可追溯;
  5. 商品价格变化后,缓存中允许最多延迟 3 秒生效。
需求
质量属性
候选策略
关键权衡
5 万 TPS、800ms
性能
缓存、读写分离、异步消息、水平扩展、分库分表
一致性、复杂度、成本
20 秒恢复
可用性
多实例、健康检查、故障摘除、自动切换
冗余成本、切换期间的一致性
三天接入物流商
可修改性
统一物流接口、适配器、配置化路由
初期抽象成本
管理员操作可追溯
安全性
身份认证、RBAC、不可抵赖审计日志
存储和性能开销
缓存延迟 3 秒
性能与一致性
缓存失效、消息通知、版本号
性能与数据一致性的权衡点

七、即时自测

1. 质量属性判断

系统应支持开发人员在 3 个工作日内接入一种新的支付渠道。这主要属于哪一种质量属性?

查看答案与解析

答案:可修改性。关键词是“接入新渠道”和“3 个工作日内完成修改”。可采用统一支付接口、适配器模式和插件化策略。

2. 架构风格判断

数据需要依次经过解析、清洗、转换和输出,每个步骤可以独立替换。最适合哪种架构风格?

查看答案与解析

答案:管道-过滤器。各处理步骤是过滤器,数据通道是管道;优点是复用与替换方便,缺点是不适合强交互应用。

3. 架构评估概念

线程池从 50 调整到 200 后,系统吞吐量显著提升。线程池大小在架构评估中属于什么?

查看答案与解析

答案:敏感点。该决策变化对性能产生显著影响。若同时导致资源占用上升并影响成本,也可能成为权衡点。

4. 架构视图判断

描述服务器节点、容器、网络连接和部署区域,应使用 4+1 模型中的哪个视图?

查看答案与解析

答案:物理视图。也称部署视图,面向系统工程师与运维工程师。

5. 质量属性权衡

某方案通过增加缓存提升查询速度,但可能读取到短暂的旧数据。这属于哪类架构评估结论?

查看答案与解析

答案:权衡点。缓存决策同时影响性能和数据一致性,两个质量目标此消彼长。


八、当日记忆卡片

主题
一句话记忆
架构定义
元素 + 关系 + 约束 + 决策依据
设计主线
需求 → 质量属性 → 决策 → 视图 → 评估
场景六要素
刺激源、刺激、环境、制品、响应、响应度量
4+1 视图
逻辑、开发、进程、物理 + 场景
三种评估
SAAM 看修改;ATAM 看权衡;CBAM 看成本收益
三类关键点
敏感点看影响;权衡点看取舍;风险点看目标

今日达标检查

  •  我能不看资料复述架构设计的五步主线。
  •  我能根据度量词识别性能、可用性、可修改性等质量属性。
  •  我能说出至少 6 种架构风格的适用场景。
  •  我能区分 4+1 的五个视图。
  •  我能区分敏感点、权衡点和风险点。

下一课

架构风格与模式深挖:分层、管道-过滤器、事件驱动、解释器、黑板、微内核,以及它们在真题场景中的选择方法。


系统架构设计师每日课程 · 第 1 课|生成日期:2026-09-19|配套总纲:01-知识大纲.html

相关学习资料