软考高级系统架构师 —— 复习资料

软考高级系统架构师 ------ 复习资料

考试简介 :系统架构设计师(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 则唤醒
死锁

四个必要条件(缺一不可):

  1. 互斥条件
  2. 请求保持
  3. 不可剥夺
  4. 循环等待

死锁处理策略:预防(破坏四个条件之一)、避免(银行家算法)、检测与解除

内存管理
  • 页式存储:逻辑地址 → 页号 + 页内偏移;通过页表映射到物理地址
  • 段式存储:按逻辑段划分,段表存基址和段长
  • 段页式:段内分页,兼顾逻辑和效率
  • 页面置换算法: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(架构权衡分析法)
  1. 场景和需求收集:确定质量属性场景
  2. 架构描述:描述架构方案
  3. 属性模型建立:分析每个场景的响应
  4. 属性模型分析:识别敏感点、权衡点、风险点
  5. 报告:输出评估报告
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篇不同主题的范文框架
  • 工具:思维导图梳理知识点,错题本积累薄弱点

最后叮嘱:架构师考试重在「系统化思考」而非死记硬背。综合知识靠广度,案例分析靠深度,论文靠实践。备考时多问自己「为什么这样设计」「有没有更好的方案」,培养架构思维才是通过的关键。

相关推荐
黄昏回响5 小时前
信息系统基础知识(八):典型信息系统架构模型详解
程序人生·面试·系统架构·改行学it
雪的季节6 小时前
软件体系结构风格与软件体系结构
系统架构
wanzehongsheng9 小时前
光伏凉亭系统架构设计与工程实践探讨
系统架构
毛小茛9 小时前
系统架构设计师概述
系统架构
圣殿骑士-Khtangc1 天前
系统架构风格选型全景图:REST、GraphQL、gRPC、事件驱动、微内核怎么选?
系统架构
@insist1231 天前
系统架构设计师-系统性能评估核心理论与方法
系统架构·软考·系统架构设计师·软件水平考试
毛小茛1 天前
系统架构概述
系统架构
marsh02061 天前
61 openclaw电商系统架构:从需求到实现的完整方案
ai·系统架构·技术美术