2022软考系统架构设计师备考经验
写在前面:2024年回看,才发现自己是软考笔考的最后一届。当时的备考经验现在大概已经不那么有针对性了,但是作为一个软考变革的记录点留在这里也挺好
不太了解软考系统架构设计师的同学先往这里看。软考系统架构设计师一般每年只在下半年考一次(2024年开始,系统架构设计师已经可以一年考两次了),比较偏重软件开发技术而不是项目管理。考试内容分为综合知识(选择题,上午),材料分析(问答题,下午)和论文(下午)三项。系统架构设计师综合知识题考察计算机专业综合基础知识(主要是计算机组成原理、操作系统、数据库、网络、软件工程的基础知识),材料分析题比较贴近实际的软件开发技术,计算机/软件专业学生及工作年限不长的相关从业人员非常适合参加。如果是非相关专业/从业人员参加则需要花更多时间补充相关的专业基础知识以及适当的开发经验(至少有一点网购平台或者管理系统的项目经验(技术栈最好新一点),主要用于材料分析题和论文)。

1、备考经验
我本身非计算机专业,毕业后转程序员主要进行全栈开发(Springboot+React),有3年工作经验。我一共参加过2次软考高级考试。在2021年第一次参加系统分析师的考试,但因为时间有限准备不足,最终材料分析题差2分没有通过。在2022年又参加了系统架构设计师的考试,比较幸运的低分飘过。
2022年的考试我断断续续复习了约2个月,第一个月主要用来过官方系统架构设计师教程。其实有些浪费时间。因为教程上有很多不太考的知识点和漏掉的知识点。比如教程上的XML相关技术和系统可靠性建模实际很少考到。而教程没有的面向对象分析、结构化分析等在材料分析题常考。推荐对着考纲或者历年真题复习会更好。B站上也有一些不错的培训视频,可以适当对着看(不喜欢自己看书总结知识点的同学也可以考虑报一些网课)。
第二个月起开始做真题并针对材料分析题和论文准备素材。真题非常非常非常重要!因为软考会有大量题目和往年真题类似甚至基本相同,这一部分分数一定要拿下。我一共做了6套真题(使用了历年真题参考书和各种刷题APP)。综合知识部分尽量每一道题都找到对应知识点,举一反三的弄清楚。材料分析题的部分尽量根据以往的考点多准备相关技术背景知识,并且一定一定要认真读题。因为题目中常常已经暗含了一部分答案,不认真看题可太亏了。我个人觉得在软考的3个考察部分里,材料分析题是难度最大的。论文一定要提前至少至少模考一次,分配好构思和写作的时间,保持卷面整洁。现在大家都打字居多,在短时间内要手写2500字还是不容易的(2023年开始,系统架构设计师已经是机考了,不需要再手写论文)。同时大家有可能还是多准备一点模版,我论文只准备了3篇模版,主要因为做过的项目比较少以及时间有限以及懒,实考的时候构思了很久,最后是卡着点写完的,都没能回头检查一遍错别字。没有太多项目经历的同学也可以多看看各大互联网公司的架构展示ppt,用更高的视角分析自己做过的小项目。另外2022年明显考了很多区块链相关的知识点(包括论文题),是以往系统架构设计师里没太考过的,建议大家也可以适当在这个部分做一些准备。
2、参考资料
1、系统架构设计师教程(官网指定那本蓝色大板砖)
2 、系统架构设计师2016至2020年试题分析与解答(非软广:使用软考通等免费APP刷题也很方便,还会有一些模拟题可以做。参考书的答案相对会更详细、准确一点,根据自己的需要选择即可)
3 、系统架构设计师考试32小时通关(比较适合本身基础比较好,时间非常有限的选手)
4、系统分析师教程(官网指定的蓝色大板砖。因为我2021考过系统分析师,所以面向对象分析、结构化分析还有软件测试的部分我参考了系分教程。但是不建议为复习这些知识点去买一本系统分析师的教程,借助图书馆的相关书籍或者网上的总结博客复习即可)
5、各种总结视频、博客
3、简易知识清单
综合知识题部分
综合知识部分多而杂,暂且只列举部分教程缺失的考点,之后再分专题总结教程里的知识点。

用例图三元素:参与者、用例、通信关系
3种用例之间的关系:扩展(我理解为异常处理)、泛化(我理解为继承)、包含(我理解为共用)
6种类之间的关系:关联(对象实例之间的关系)、依赖(类之间的关系)、泛化(子类继承父类,父类泛化子类)、聚合(车与车轮)、组合(公司与部门)、实现(实现接口)。这里需要记住具体图示的形状。
软件架构风格的定义

材料分析题部分参考知识点
Mysql与Redis同步
反规范化方法
反规范化带来数据不一致的解决方案(使用触发器、应用事务逻辑、运行批处理)
Redis中各种数据类型的适用场景
Redis分区
Redis持久化方法(RDB、AOF、混合)
Redis内存淘汰机制(读时轮询、定时检查、定时抽样检查+读时检查)和策略(lru、lfu、random-ttl、noeviction)
Redis集群方式(主从复制、哨兵模式、cluster模式)
Redis集群方案(twemproxy、codis、redis cluster、应用层sharding)
Redis分布式锁方法
MongoDB分片(config、Router前端路由、sharding数据存储)
Nginx负载均衡策略(轮询、最少链接、ip hash)
https请求过程
https v.s http
论文部分
论文部分常考大数据、软件开发/设计方法/过程、网站开发开发优化(nosql、serveless、SOA等)、云服务等主题,建议分专题结合自己的擅长方向/项目经历各准备一篇模版。论文可以按照摘要、项目背景介绍(项目来源、项目需求、整体功能、个人职责、客户评价)、项目设计分析(简答论文考察知识点)、项目实现方法(结合考查知识点回答具体在项目中的体现)、总结(项目的上线情况、优缺点、贡献与优化方向等)的流程写。我只准备了3篇模版,分别是面向对象程序设计、微服务和nosql数据库主题的。主要把自己做过的项目梳理了一下,把项目背景、技术栈、设计思路、遇到的问题和解决方法仔细描述了一遍。实考的时候没有遇到复习过的考点,只能临时构思,最后勉强过关,太痛了...
最后祝大家都好运满满,顺利通过!