软考高级系统架构师 —— 复习资料
软考高级系统架构师 —— 复习资料
考试简介:系统架构设计师(System Architect)属于全国计算机技术与软件专业技术资格(水平)考试高级科目。考试分为三科:综合知识(选择题75分,45分及格)、案例分析(问答题75分,45分及格)、论文(写作题75分,45分及格),一次通过三科方可获证。
目录
一、计算机系统基础
1.1 计算机体系结构
冯·诺依曼 vs 哈佛结构
| 特性 | 冯·诺依曼 | 哈佛 |
|---|---|---|
| 指令与数据 | 共享总线 | 独立总线 |
| 瓶颈 | 冯·诺依曼瓶颈 | 缓解 |
| 应用 | 通用计算机 | DSP、MCU |
流水线技术
- 流水线周期:最长段执行时间
- 流水线执行时间:( T = T_1 + (n-1) \times \Delta t )(( \Delta t ) 为流水线周期)
- 加速比:( S = T_{串行} / T_{流水线} )
- 吞吐率:( TP = n / T )
- 数据冒险:RAW(读后写)、WAR(写后读)、WAW(写后写)
多级存储体系
CPU寄存器 → Cache(L1/L2/L3) → 主存(DRAM) → 外存(SSD/HDD)
↓ 速度最快 ↓ 次之 ↓ 较慢 ↓ 最慢
↓ 容量最小 ↓ 较小 ↓ 中等 ↓ 最大
- Cache 映射方式:直接映射、全相联、组相联
- Cache 写策略:写直达(Write Through)、写回(Write Back)
- 局部性原理:时间局部性、空间局部性
1.2 操作系统
进程管理
- 三态模型:就绪 → 运行 → 阻塞
- 五态模型:新建、就绪、运行、阻塞、终止
- PV 操作(信号量):
- P(S):S = S - 1,若 S < 0 则阻塞
- V(S):S = S + 1,若 S ≤ 0 则唤醒
死锁
四个必要条件(缺一不可):
- 互斥条件
- 请求保持
- 不可剥夺
- 循环等待
死锁处理策略:预防(破坏四个条件之一)、避免(银行家算法)、检测与解除
内存管理
- 页式存储:逻辑地址 → 页号 + 页内偏移;通过页表映射到物理地址
- 段式存储:按逻辑段划分,段表存基址和段长
- 段页式:段内分页,兼顾逻辑和效率
- 页面置换算法:OPT(最优)、LRU(最近最少使用)、FIFO(先进先出)、CLOCK
1.3 文件系统
- 索引结构:直接索引、间接索引(一级/二级/三级)
- 空闲空间管理:位示图、空闲链表、成组链接法
- RAID:RAID0(条带)、RAID1(镜像)、RAID5(分布式奇偶校验)、RAID10
二、系统架构设计
2.1 架构风格
| 风格 | 特点 | 典型应用 |
|---|---|---|
| 管道-过滤器 | 数据流,组件间通过管道传递 | Unix Shell、编译器 |
| 分层架构 | 每层提供接口给上层,n层只依赖n-1层 | OSI、Spring MVC |
| C/S & B/S | 客户端-服务器 / 浏览器-服务器 | 企业应用 |
| 事件驱动 | 发布-订阅,异步解耦 | GUI、消息中间件 |
| 微内核 | 核心功能在内核,扩展在外部服务 | 操作系统 |
| 微服务 | 小型独立服务,独立部署 | 云原生应用 |
| SOA | 面向服务,ESB总线 | 企业集成 |
| MVC | Model-View-Controller | Web框架 |
| REST | 资源导向,无状态 | API设计 |
2.2 架构质量属性(重要 ★★★)
| 属性 | 定义 | 战术 |
|---|---|---|
| 可用性 | 系统正常运行时间比例 | 冗余、心跳检测、故障转移 |
| 性能 | 响应时间、吞吐量 | 缓存、并发、负载均衡 |
| 安全性 | 抵御攻击能力 | 认证、授权、加密、审计 |
| 可修改性 | 变更代价 | 抽象、接口隔离、依赖注入 |
| 可测试性 | 缺陷发现容易度 | 依赖注入、日志、桩/模拟 |
| 易用性 | 用户交互质量 | 界面一致性、容错、帮助 |
| 可靠性 | 规定条件下执行功能 | 冗余、事务、检查点 |
2.3 架构评估方法
ATAM(架构权衡分析法)
- 场景和需求收集:确定质量属性场景
- 架构描述:描述架构方案
- 属性模型建立:分析每个场景的响应
- 属性模型分析:识别敏感点、权衡点、风险点
- 报告:输出评估报告
SAAM(软件架构分析方法)
更轻量,通过场景评估架构对质量需求的满足程度。
关键概念:
- 敏感点:一个修改影响的一个或多个组件
- 权衡点:影响多个质量属性的点
- 风险点:架构中的潜在问题
- 非风险点:已验证的良好设计
2.4 架构模式
MVC 模式
用户输入 → Controller → 更新 Model → 通知 View → 用户看到
分层架构
表示层 → 业务逻辑层 → 数据访问层 → 数据库
微服务架构
特点:独立部署、技术异构、围绕业务能力、去中心化治理
挑战:分布式复杂性、数据一致性、服务发现、容错
事件驱动架构
两种拓扑:
- 中介拓扑:事件通过中央中介分发
- 代理拓扑:事件通过消息队列链式传递
2.5 设计模式(高频考点 ★★★)
创建型模式
| 模式 | 意图 | 场景 |
|---|---|---|
| 单例 | 全局唯一实例 | 配置管理、日志 |
| 工厂方法 | 子类决定实例化哪个类 | 框架扩展点 |
| 抽象工厂 | 创建相关对象族 | 跨平台UI |
| 建造者 | 分步构建复杂对象 | StringBuilder |
| 原型 | 克隆对象 | 对象复制 |
结构型模式
| 模式 | 意图 | 场景 |
|---|---|---|
| 适配器 | 接口转换 | 旧系统集成 |
| 桥接 | 抽象与实现分离 | 跨平台开发 |
| 组合 | 树形结构统一处理 | 文件系统、UI组件树 |
| 装饰器 | 动态添加职责 | Java IO流 |
| 外观 | 统一高层接口 | 复杂子系统的简化入口 |
| 享元 | 共享细粒度对象 | 字符处理、连接池 |
| 代理 | 控制对象访问 | RMI、AOP |
行为型模式
| 模式 | 意图 | 场景 |
|---|---|---|
| 责任链 | 多个处理者依次处理 | 审批流、过滤器链 |
| 命令 | 请求封装为对象 | 撤销/重做、队列 |
| 解释器 | 解释语言文法 | SQL解析、正则 |
| 迭代器 | 统一遍历方式 | 集合遍历 |
| 中介者 | 对象间松耦合交互 | GUI组件通信 |
| 备忘录 | 快照与恢复 | 撤销操作 |
| 观察者 | 一对多依赖通知 | 事件监听、发布订阅 |
| 状态 | 状态驱动行为变化 | 订单状态、状态机 |
| 策略 | 算法族可切换 | 排序策略、支付方式 |
| 模板方法 | 定义算法骨架 | 框架基类 |
| 访问者 | 操作与结构分离 | 编译器AST |
三、软件工程
3.1 软件开发模型
| 模型 | 特点 | 适用场景 |
|---|---|---|
| 瀑布模型 | 阶段串行、文档驱动 | 需求明确稳定的项目 |
| V模型 | 测试与开发并行对应 | 质量要求高的项目 |
| 原型模型 | 快速构建原型、迭代 | 需求不明确 |
| 螺旋模型 | 风险驱动、迭代增量 | 大型高风险项目 |
| 增量模型 | 逐步构建、分批交付 | 中等规模项目 |
| RAD | 快速应用开发 | 时间紧迫 |
| 敏捷 | 迭代增量、拥抱变化 | 需求易变的项目 |
3.2 敏捷开发
Scrum
Sprint计划 → 每日站会(15min) → Sprint Review → Sprint Retro
2-4周 每天 评审 回顾
三个角色:Product Owner、Scrum Master、Development Team
XP(极限编程)
12个实践:计划游戏、小版本、隐喻、简单设计、测试先行、重构、结对编程、集体代码所有权、持续集成、每周40小时、现场客户、编码标准
看板(Kanban)
可视化工作流,限制 WIP(进行中工作),度量周期时间
3.3 需求工程
需求层次
业务需求 → 用户需求 → 功能需求 + 非功能需求
(Why) (What) (How)
需求获取方法
- 访谈、问卷调查、头脑风暴
- 原型法、观察法、文档分析
- 联合需求计划(JRP)
需求分析
- 结构化分析:数据流图(DFD)、数据字典(DD)、E-R图
- 面向对象分析:用例图、类图、活动图、状态图
需求规格说明书(SRS)
应具备:无歧义、完整、可验证、一致、可修改、可跟踪
3.4 软件测试(高频 ★★★)
测试层级
单元测试 → 集成测试 → 系统测试 → 验收测试
↓ ↓ ↓ ↓
白盒为主 灰盒/黑盒 黑盒为主 用户参与
测试分类
| 维度 | 类型 |
|---|---|
| 是否执行代码 | 静态测试、动态测试 |
| 是否了解内部 | 白盒、黑盒、灰盒 |
| 测试目标 | 功能、性能、安全、兼容性、易用性 |
| 执行方式 | 手工、自动化 |
白盒测试
- 语句覆盖:每个语句至少执行一次(最弱)
- 判定覆盖:每个判定的真假分支至少一次
- 条件覆盖:每个条件的真假至少一次
- 判定-条件覆盖:判定 + 条件
- 条件组合覆盖:所有条件组合(较强)
- 路径覆盖:所有可能路径(最强,但可能不可行)
McCabe 圈复杂度:( V(G) = E - N + 2 = P + 1 )(P 为判定节点数)
黑盒测试
- 等价类划分:有效等价类、无效等价类
- 边界值分析:边界值、边界+1、边界-1
- 决策表:条件与动作的组合矩阵
- 因果图:输入条件的逻辑关系
- 正交试验法:多因素多水平的组合优化
性能测试
- 负载测试:预期负载下系统行为
- 压力测试:超出极限的负载
- 并发测试:多用户同时访问
- 稳定性测试:长时间运行
- 容量测试:最大数据处理能力
3.5 软件维护
| 类型 | 占比 | 说明 |
|---|---|---|
| 改正性 | 20% | 修复错误 |
| 适应性 | 25% | 适应环境变化 |
| 完善性 | 50% | 增加新功能 |
| 预防性 | 5% | 预防未来问题 |
3.6 软件质量模型(ISO/IEC 25010)
- 功能适用性:功能完备、正确、适当
- 性能效率:时间行为、资源利用、容量
- 兼容性:共存性、互操作性
- 易用性:可辨识、可学习、可操作、用户差错保护
- 可靠性:成熟性、可用性、容错、可恢复
- 安全性:保密性、完整性、不可抵赖性、可追溯性
- 可维护性:模块化、可复用、可分析、可修改
- 可移植性:适应性、可安装、可替换
四、项目管理
4.1 范围管理
WBS(工作分解结构):面向交付物的层次化分解,底层为工作包(8~80小时工作量)
4.2 时间管理
关键路径法(CPM)
- 关键路径:总时差为零的活动序列,决定项目最短工期
- 总时差 ( TF = LS - ES = LF - EF )
- 自由时差 ( FF = \min(ES_{后继}) - EF )
PERT(计划评审技术)
期望工期 ( T = \frac{O + 4M + P}{6} )(O:乐观、M:最可能、P:悲观)
标准差 ( \sigma = \frac{P - O}{6} )
4.3 成本管理
- 挣值分析(EVM):
| 指标 | 公式 | 说明 |
|---|---|---|
| PV | 计划值 | 计划完成工作的预算 |
| EV | 挣值 | 实际完成工作的预算 |
| AC | 实际成本 | 实际花费 |
| SV | EV - PV | 进度偏差(>0 超前) |
| CV | EV - AC | 成本偏差(>0 节约) |
| SPI | EV / PV | 进度绩效指数 |
| CPI | EV / AC | 成本绩效指数 |
4.4 风险管理
风险应对策略:
- 规避:消除威胁
- 转移:转移给第三方(如保险)
- 减轻:降低概率或影响
- 接受:不采取措施(主动/被动)
4.5 配置管理
- 配置项(CI):受控的软件/硬件组件
- 基线:正式评审通过的配置项状态
- 变更控制流程:变更申请 → 变更评估 → 变更审批 → 变更实施 → 变更验证
五、信息安全
5.1 信息安全要素(CIA 三元组)
| 要素 | 含义 | 措施 |
|---|---|---|
| 机密性 | 信息不被泄露给非授权者 | 加密、访问控制 |
| 完整性 | 信息不被篡改 | 数字签名、Hash |
| 可用性 | 合法用户可正常访问 | 冗余、DDoS防护 |
5.2 加密算法
对称加密
| 算法 | 密钥长度 | 特点 |
|---|---|---|
| DES | 56 bit | 已淘汰 |
| 3DES | 168 bit | 安全但慢 |
| AES | 128/192/256 bit | 当前标准 |
| RC4 | 可变 | 流密码,已不安全 |
| SM4 | 128 bit | 中国国密标准 |
非对称加密
| 算法 | 原理 | 用途 |
|---|---|---|
| RSA | 大数分解 | 加密、签名、密钥交换 |
| ECC | 椭圆曲线 | 移动端优先(密钥短) |
| SM2 | 椭圆曲线 | 中国国密标准 |
对比:对称加密速度快(数据加密)、非对称加密速度慢(密钥交换、签名)
Hash 算法
| 算法 | 输出长度 | 安全性 |
|---|---|---|
| MD5 | 128 bit | 已破解,仅用于校验 |
| SHA-1 | 160 bit | 不安全 |
| SHA-256 | 256 bit | 安全 |
| SM3 | 256 bit | 中国国密标准 |
5.3 数字签名
- 签名过程:用私钥加密 Hash → 附加到原文
- 验证过程:用公钥解密签名 → 对比 Hash
5.4 网络安全
常见攻击
| 攻击 | 说明 | 防御 |
|---|---|---|
| SQL注入 | 恶意 SQL 拼接 | 参数化查询 |
| XSS(跨站脚本) | 注入恶意脚本 | 输出编码 |
| CSRF(跨站请求伪造) | 伪造用户请求 | Token 验证 |
| DDoS | 分布式拒绝服务 | 流量清洗、限流 |
| 中间人 | 窃听/篡改通信 | TLS/SSL |
防火墙类型
- 包过滤:基于 IP/端口规则(网络层)
- 状态检测:追踪连接状态(传输层)
- 应用代理:应用层代理转发(应用层)
- WAF:Web 应用防火墙
安全协议
| 协议 | 层级 | 功能 |
|---|---|---|
| IPSec | 网络层 | VPN,AH+ESP |
| SSL/TLS | 传输层 | HTTPS 基础 |
| SET | 应用层 | 电子交易安全 |
| Kerberos | 应用层 | 身份认证 |
5.5 等级保护
等保 2.0:一级(自主保护)→ 二级(指导保护)→ 三级(监督保护)→ 四级(强制保护)→ 五级(专控保护)
核心变化:从「被动防御」到「主动防御」;增加云计算、物联网、移动互联、工业控制等扩展要求。
六、网络与通信
6.1 OSI 七层模型 & TCP/IP
| OSI 层 | 功能 | 典型协议 | TCP/IP 层 |
|---|---|---|---|
| 应用层 | 用户接口 | HTTP、FTP、SMTP、DNS、SNMP | 应用层 |
| 表示层 | 数据格式 | JPEG、ASCII、加密 | (应用层) |
| 会话层 | 会话管理 | RPC、SQL | (应用层) |
| 传输层 | 端到端传输 | TCP、UDP | 传输层 |
| 网络层 | 路由选择 | IP、ICMP、OSPF、BGP | 网际层 |
| 数据链路层 | 帧传输 | Ethernet、PPP、ARP | 网络接口层 |
| 物理层 | 比特流 | RJ45、光纤 | 网络接口层 |
6.2 TCP vs UDP
| 特性 | TCP | UDP |
|---|---|---|
| 连接 | 面向连接 | 无连接 |
| 可靠性 | 可靠(确认重传) | 不可靠 |
| 顺序 | 有序 | 无序 |
| 流量控制 | 滑动窗口 | 无 |
| 拥塞控制 | 慢启动、拥塞避免 | 无 |
| 适用场景 | 文件传输、Web、邮件 | 视频直播、DNS、语音 |
TCP 三次握手:SYN → SYN-ACK → ACK
TCP 四次挥手:FIN → ACK → FIN → ACK
6.3 路由协议
| 协议 | 类型 | 算法 |
|---|---|---|
| RIP | 内部网关(IGP) | 距离向量 |
| OSPF | 内部网关(IGP) | 链路状态(Dijkstra) |
| BGP | 外部网关(EGP) | 路径向量 |
七、数据库系统
7.1 事务 ACID
| 特性 | 说明 | 实现 |
|---|---|---|
| 原子性 | 全做或全不做 | Undo Log |
| 一致性 | 事务前后约束一致 | 应用层 + 约束 |
| 隔离性 | 并发事务不互相干扰 | 锁、MVCC |
| 持久性 | 提交后永久生效 | Redo Log |
7.2 并发控制
封锁协议
- 一级封锁协议:写前加 X 锁,事务结束释放(防止丢失修改)
- 二级封锁协议:一级 + 读前加 S 锁,读完释放(防止脏读)
- 三级封锁协议:一级 + 读前加 S 锁,事务结束释放(防止不可重复读)
隔离级别
| 级别 | 脏读 | 不可重复读 | 幻读 |
|---|---|---|---|
| READ UNCOMMITTED | ✓ | ✓ | ✓ |
| READ COMMITTED | ✗ | ✓ | ✓ |
| REPEATABLE READ | ✗ | ✗ | ✓(MySQL 通过间隙锁解决) |
| SERIALIZABLE | ✗ | ✗ | ✗ |
7.3 数据库设计与范式
关系代数
- 并 ( \cup )、交 ( \cap )、差 ( - )、笛卡尔积 ( \times )
- 选择 ( \sigma_{条件}® )、投影 ( \pi_{属性列表}® )
- 连接 ( \bowtie ):( \theta )-连接、等值连接、自然连接、外连接
范式
| 范式 | 条件 | 反例 |
|---|---|---|
| 1NF | 属性不可再分 | 嵌套表 |
| 2NF | 1NF + 消除部分函数依赖 | (学号,课程)→ 姓名 |
| 3NF | 2NF + 消除传递依赖 | 学号 → 系号 → 系主任 |
| BCNF | 3NF + 消除主属性对码的部分传递依赖 | 更严格的 3NF |
| 4NF | BCNF + 消除非平凡多值依赖 | — |
7.4 分布式数据库
CAP 定理
三选二:
- 一致性(Consistency):所有节点同一时刻数据相同
- 可用性(Availability):每次请求都能获得非错响应
- 分区容错性(Partition Tolerance):网络分区时系统仍可运行
BASE 理论
- BA(Basically Available):基本可用
- S(Soft State):软状态(允许中间状态)
- E(Eventually Consistent):最终一致性
NoSQL 四大类型
| 类型 | 代表 | 特点 |
|---|---|---|
| 键值 | Redis | 极快,简单查询 |
| 文档 | MongoDB | 灵活schema,类JSON |
| 列族 | HBase | 稀疏宽表,大数据 |
| 图 | Neo4j | 关系查询,社交网络 |
八、法律法规与标准化
8.1 知识产权
- 著作权:自动获得,保护表达不保护思想,个人终身+50年,单位发表后50年
- 专利权:需申请,发明20年/实用新型10年/外观设计15年(自申请日起)
- 商标权:注册获得,有效期10年,可续展每次10年
- 商业秘密:通过保密措施保护,无期限限制
8.2 标准代号
| 标准 | 说明 |
|---|---|
| GB | 强制性国家标准 |
| GB/T | 推荐性国家标准 |
| ISO | 国际标准化组织 |
| IEEE | 电气电子工程师学会 |
| ANSI | 美国国家标准学会 |
8.3 企业信息化
- ERP:企业资源计划
- CRM:客户关系管理
- SCM:供应链管理
- BI:商业智能
- EAI:企业应用集成
- SOA:面向服务架构
九、论文写作
9.1 论文结构(约 2500~3000 字)
题目(摘要)
├── 项目背景(400字)
│ - 项目名称、规模、团队
│ - 个人角色与职责
│ - 项目投资与周期
├── 理论阐述(500字)
│ - 论文主题相关概念
│ - 技术选型理由
│ - 架构设计思路
├── 实践展开(1200字,核心)
│ - 具体问题描述
│ - 采用的解决方案
│ - 方案实施过程
│ - 遇到的困难与对策
├── 效果分析(300字)
│ - 方案效果(最好有数据)
│ - 不足与改进方向
└── 总结(200字)
- 经验教训
- 未来展望
9.2 常见论文主题
| 主题 | 关键点 |
|---|---|
| 微服务架构设计 | 服务拆分、服务治理、容错、监控 |
| 高可用系统设计 | 冗余、故障转移、限流降级、异地多活 |
| 企业应用集成 | ESB、消息队列、API网关、数据集成 |
| 大数据处理架构 | Lambda/Kappa、流批一体、数据湖 |
| 云原生架构 | 容器化、K8s、服务网格、DevOps |
| 系统性能优化 | 缓存策略、数据库优化、异步化、CDN |
| 安全性设计 | 纵深防御、零信任、数据加密、安全审计 |
| 遗留系统迁移 | 绞杀者模式、灰度迁移、双跑验证 |
9.3 论文评分要点
- 切题性(30%):是否紧扣题目要求
- 实践性(30%):是否有真实项目经验
- 系统性(20%):是否全面覆盖题目各个方面
- 深度(15%):是否有深入的技术细节
- 规范性(5%):格式、语言是否规范
扣分项:摘要超300字、理论空洞无实践、堆砌概念、人称混乱、字迹潦草
十、备考策略
10.1 时间分配建议
| 阶段 | 时间 | 任务 |
|---|---|---|
| 基础阶段 | 4周 | 通读教材,建立知识框架 |
| 强化阶段 | 3周 | 刷真题(近5年),攻克薄弱点 |
| 冲刺阶段 | 2周 | 案例分析专项 + 论文范文背诵 |
| 模考阶段 | 1周 | 全真模拟 + 查漏补缺 |
10.2 三科特点
| 科目 | 时间 | 题量 | 难度 | 策略 |
|---|---|---|---|---|
| 综合知识 | 150min | 75选择题 | 中等 | 知识点面广,多做真题 |
| 案例分析 | 90min | 3~5道简答题 | 较高 | 先看题再看材料,条理清晰 |
| 论文 | 120min | 1篇(2选1) | 最高 | 提前背框架,选熟悉主题 |
10.3 重点分值分布
- 系统架构设计:25~30分(最大权重)
- 软件工程:10~15分
- 项目管理:5~8分
- 信息安全:5~8分
- 计算机网络:5~8分
- 数据库:5~8分
- 法律法规:3~5分
10.4 推荐学习资源
- 教材:《系统架构设计师教程》(清华大学出版社)
- 真题:近5年真题反复做,总结高频考点
- 论文:背诵5~8篇不同主题的范文框架
- 工具:思维导图梳理知识点,错题本积累薄弱点
最后叮嘱:架构师考试重在「系统化思考」而非死记硬背。综合知识靠广度,案例分析靠深度,论文靠实践。备考时多问自己「为什么这样设计」「有没有更好的方案」,培养架构思维才是通过的关键。
AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。
更多推荐



所有评论(0)