大家好我是小宇,本文基于2021年、2022年、2023年三年的软考真题,并增加restful、微服务、数据库主从、集群、数据加密、脱敏相关知识,对相关常考知识点进行详细梳理。
本文全面整合系统分析师案例高频考点,涵盖建模、开发方法论、需求工程、架构技术、数据技术五大核心模块,贴合真题考情、聚焦应试得分点。建模部分重点梳理UML各类视图与结构化DFD建模规则,明确各类图示适用场景、易错点及分析类核心划分标准。
开发方法论涵盖RUP、FAST、原型法、MBSE及遗留系统治理策略,囊括可行性分析、全流程开发规范等常考内容。需求工程聚焦需求分类、验证标准、评审及变更管理核心要点,贴合案例改错与问答题型。
架构板块补充微服务与RESTful接口规范,对比SOA、容器与虚拟机差异,详解分布式事务、分层架构、区块链核心特性。数据技术板块完善大数据流处理体系,新增数据库主从复制、集群部署、冷热备份机制,同时系统梳理数据脱敏与对称、非对称、哈希加密等安全技术,补齐历年高频冷门考点。
整体内容摒弃冗余原理,聚焦真题问答、改错、选型核心题型,适配软考案例应试需求,全面覆盖近年必考及新增拓展知识点。
一、UML与结构化分析(案例高频,占分极高)
1. 状态机图(状态图)
核心概念:描述单个对象基于事件的动态行为;组成:初态、终态、状态、事件、监护条件、动作、状态迁移。
真题考法:
①和活动图对比概念特点;
②补全状态迁移;填写迁移触发动作、监护条件;汽车租赁、请假审批业务场景。
拓展考点:
1)区分状态机图(对象视角) vs 活动图(流程/控制流视角);
2)监护条件:方括号[条件],条件为真迁移才执行;
3)内部转移、自转移;区分事件、动作、活动;
4)适用:反应式对象、用例实例生命周期;不适合多对象协作(顺序图负责多对象交互)。
2. 活动图
核心概念:描述业务流程、用例内部控制流、数据流;组成:初终节点、活动、判断分支、合并、分叉/汇合(并行)、泳道。
真题考法:阐述概念特点,和状态机图对比。
拓展考点:
1)支持并行分支(流程图不支持并行);
2)泳道划分职责;适合业务流程建模;
3)与流程图区别:流程图只描述顺序控制流,无并行、无泳道。
3. 数据流图 DFD(结构化分析)
核心概念:结构化分析SA工具,从数据流动角度描述系统功能;四要素:外部实体、加工、数据流、数据存储。
真题考法:DFD定义;查找DFD常见错误;结合业务审查DFD。
DFD典型错误(必背):
黑洞:只有输入没有输出;
奇迹:只有输出没有输入;
灰洞:输入不足以产生输出;
数据流没有名字;
数据流箭头方向错误;
外部实体之间不能直接存在数据流;
数据存储与外部实体不能直接交互,必须经过加工。
拓展:数据字典DD,对DFD元素定义说明,是DFD不可或缺补充。补充:结构化设计SD,把DFD映射成软件模块结构图,变换流、事务流。
4. 分析类图 & 设计类图 & 三种分析类
分析类图:业务域视角,使用业务术语,关注需求,不考虑实现技术;设计类图:实现视角,考虑编程语言、接口、方法可见性。
- 边界类:系统和外部交互,窗口、接口、报表;参与者与用例交互必然产生边界类。
- 控制类:封装用例业务逻辑、协调其他对象;一般用动词衍生名词;用例结束对象消亡。
- 实体类:业务持久化实体,保存业务数据,对应数据库表,名词。
真题考法:对业务实体做三类类筛选识别。
5. 类之间五大关系
- 关联:对象实例之间的结构连接;可标注角色、多重度、导航。
- 依赖:临时使用;一个类的变化会影响另一个;方法参数、局部变量、静态调用。
- 泛化(继承):一般‑特殊;父类/子类;破坏封装,编译期确定,不能动态改变。
- 聚合:整体‑部分;部分生命周期独立整体;整体销毁,部分可以存活;空心菱形。
- 组合:强整体‑部分;部分只属于一个整体;同生共死;实心菱形。
真题考点对比:组合vs继承,从封装性、动态组合、对象创建三个维度对比优缺点。
6. 用例模型
组成:参与者、用例、关系(包含、扩展、泛化);用例规格说明:前置条件、后置条件、主成功场景、扩展流程(异常分支)、触发器、主要/次要参与者。
真题:博客注册用例,补全主流程和异常扩展流程。
7. 顺序图(时序图)
拓展,真题综合知识出现,案例潜在考点:描述多个对象交互,消息、对象激活、返回消息;适合多对象协作场景,状态机只描述单个对象。
二、软件开发过程、方法论
1. RUP统一软件过程
4个阶段:初始、细化、构造、移交;每个阶段输出里程碑。
9个核心工作流(必考案例):
6个过程工作流:商业建模、需求、分析和设计、实现、测试、部署。
3个支持工作流:配置与变更管理、项目管理、环境。
每个工作流作用,真题直接简答。
拓展特点:迭代增量、用例驱动、架构为中心。
2. FAST方法(系统分析经典结构化方法)
四个阶段:初步研究、问题分析、需求分析、决策分析。
- 初步研究:识别问题机会,划定项目范围,评估价值,做初步计划。
- 问题分析:因果分析;构建【问题/机会、原因结果、系统目标、系统约束】矩阵。
- 需求分析:定义需求,需求优先级排序。
- 决策分析:生成候选方案,多维度可行性评估,推荐方案。
可行性分析四类(案例大题):
操作可行性:人员、组织、流程是否适应系统,人员培训。
技术可行性:现有技术能否实现系统功能。
经济可行性:成本、收益,开发成本运维成本。
进度可行性:项目工期、时间约束。
3. MBSE基于模型的系统工程
传统基于文档的系统工程的缺陷:歧义,文档不一致,多学科割裂,追溯性差,复用困难。
MBSE核心:以模型为中心,取代文档作为主要载体;贯穿全生命周期;需求‑分析‑设计‑验证可追溯。
主流工具/方法:Harmony‑SE、RUP‑SE、Vitech MBSE。
拓展考点:软硬件混合系统可靠性;MTTF平均无故障时间;串联系统可靠性计算;软件失效引入后整体MTTF变化判断。
4. 原型法
分类:抛弃式原型、演化式原型。
开发流程:获取基本需求→快速构造原型→用户评估反馈→迭代修改原型,直到满足需求。
适用场景:需求模糊、用户很难完整描述需求。
优缺点:优点利于需求挖掘;缺点容易陷入不停迭代,管控不好范围蔓延。
5. 遗留系统评价与处理策略
二维评估矩阵:技术水平(高/低) × 业务价值(高/低)。
- 高水平,高业务价值:改造;
- 高水平,低业务价值:集成;
- 低水平,高业务价值:继承(继续使用);
- 低水平,低业务价值:淘汰。
三、需求工程
需求分类:业务需求、用户需求、系统需求;功能需求、非功能需求(性能、安全、可用性、可维护性等)。
需求验证(Requirements Validation)真题英文翻译大题,五类检查:
- Validity有效性检查:确认需求真正是用户需要;
- Consistency一致性检查:需求之间不能互相冲突;
- Completeness完整性检查:全部功能、约束都覆盖;
- Realism现实性检查:技术、预算、工期约束下可实现;
- Verifiability可验证性:每条需求都可以写测试用例验证。
核心认知:需求阶段引入错误修复成本远高于编码阶段。
需求评审:SRS软件需求规格说明书评审;评审内容:完整性、一致性、正确性、可行性、可测试性。
需求优先级;需求变更管理(配置变更管理)。
四、架构技术:虚拟化、容器、SOA、微服务、RESTful、分布式事务、分层架构、区块链
1. 容器Docker vs 虚拟机VM
虚拟机VM:拥有完整GuestOS,独立内核;镜像体积大,包含完整操作系统;资源开销大,模拟全套硬件;启动时间分钟级;隔离等级硬件‑操作系统级强隔离;支持跨物理机迁移。
容器Docker:共享宿主机内核,进程级隔离;镜像很小,仅应用与依赖库;开销很小;启动时间毫秒级;Namespace+Cgroups进程级隔离,隔离弱;支持实例自动伸缩,不能跨操作系统内核迁移。
真题场景:嵌入式平台选型;容器适合资源受限、快速启停、弹性伸缩;虚拟机适合强安全隔离。底层技术:Namespace做隔离,Cgroups做资源限制。
2. SOA面向服务架构 & ESB企业服务总线 & 微服务
SOA核心:服务松耦合、服务复用、服务编排。
ESB企业服务总线组件:服务注册、服务管理、业务流程编排、消息转换、消息传输、动态路由。
微服务:将单体系统按业务域拆分成多个小型独立服务,独立开发、独立部署、独立扩缩容;去中心化,去掉重型ESB,服务之间直接通信。优点:独立迭代、故障隔离;缺点:运维复杂、分布式事务、服务治理、链路追踪。
RESTful API:基于HTTP的接口设计规范,资源为核心,使用GET查询、POST创建、PUT更新、DELETE删除;无状态,适合微服务之间接口调用;优势简洁、跨平台;缺点:HTTP本身不具备事务能力。
应用服务连接层:数据接口、应用程序接口API。
常见缺陷:只做简单系统对接,没有将业务能力拆分为可复用服务,无法支持灵活业务编排。
拓展:WebService,WSDL、SOAP;和微服务区别:ESB比较重,微服务去中心化。
3. 分布式事务
2PC两阶段提交:
表决阶段(准备阶段):协调者向所有参与者发送prepare,参与者执行事务,返回同意/撤销。只要任意一个参与者返回撤销,整体事务回滚。
提交阶段:全部同意,则通知全部提交;否则通知全部回滚。
缺点:协调者单点故障;阻塞问题;性能差;不适合NoSQL异构数据库。
事件驱动架构,消息队列实现最终一致性。
本地事务发布事件(事务消息):业务表和事件表在同一个本地数据库事务,更新业务同时插入事件;独立线程读取事件表,向外发送消息。缺点:绑定本地数据库;会产生消息重复;无法跨数据库。
4. 分层架构(三层架构)
优势:关注点分离,解耦,可维护、可扩展,组件复用,便于迭代升级。
分层:接入层、网络层、应用层、数据层;通信协议:TCP/IP,HTTP,Socket,无线通信。
5. 区块链(溯源系统真题)
核心技术:分布式交易账本、哈希散列函数、公私钥非对称签名、时间戳。
特性:去中心化、开放透明、不可篡改。
架构分层:数据接入层、区块链核心层、应用表示层。公私钥签名:身份认证,防伪造;分布式账本:多节点副本,篡改难度极大。
五、数据库、NoSQL、大数据技术、数据集成、数据库集群与备份
1. NoSQL数据库四大类型
| 类型 | 代表产品 | 典型应用场景 | 优点 | 缺点 |
|---|---|---|---|---|
| 键值Key‑Value | Redis、Memcached | 缓存、会话、日志 | 扩展性好,性能高 | 数据无结构,只能按键查询 |
| 列存储(列簇) | HBase、Cassandra | 海量分布式存储 | 查找快,扩展性强 | 功能局限,事务弱 |
| 文档型 | MongoDB | Web应用,半结构化数据 | 结构灵活,可以对value建索引 | 缺少统一查询语言 |
| 图数据库 | Neo4j | 社交网络、推荐系统 | 擅长复杂图遍历查询 | 规模受限,计算开销大 |
传统关系数据库短板:不适合海量非结构化/半结构化数据;水平扩展成本高;社交SNS场景数据量大,类型多样。
混合数据库模式:根据不同业务数据特点,不同数据分别选用关系型、各类NoSQL数据库,优势互补。结构化强事务数据使用关系库;缓存用KV;社交关系用图库。
2. 主题数据库(战略数据规划,解决信息孤岛)
设计要求:逻辑结构稳定;逻辑独立软硬件实现。
四大特征:
①面向业务主题,不是面向应用;
②信息共享,共建共用;
③一次一处输入系统,多处使用;
④由满足3NF范式的基本表组成。
3. 大数据技术与流处理
流处理技术选型:消息中间件Kafka应对突发流量,削峰填谷,异步解耦,消息持久化缓冲。消息中间件优势:异步通信;消息持久化;系统解耦;流量削峰;支持发布订阅、点对点模式。
实时计算引擎:Flink,流批一体。
大数据平台分层:
采集层:用户行为数据采集;
消息中间件层:Kafka;
计算层:Flink实时计算;
存储层:Hadoop、Hbase、Redis、MySQL;
展示层:前端、管理后台查询服务。
4. 数据脱敏、数据加密
常用脱敏算法:
无效化(掩码):用*遮挡部分字段;
随机值替换:字母数字替换为随机字符;
数据替换:使用预设虚拟值替换原始敏感值;
对称加密:可逆脱敏,密钥解密还原;
平均值:统计场景,数值围绕均值随机分布,保证统计总和不变;
偏移取整:数字随机偏移,保留大致范围,适合大数据分析。
数据加密分类:
对称加密:同一密钥加密解密,速度快;密钥分发管理风险大(AES);
非对称加密:公私钥对,公钥加密私钥解密,适合身份认证、签名;加解密速度慢(RSA);
哈希单向加密:不可逆,用于密码存储、完整性校验(SHA256)。
5. 云数据库 & 数据库集群、主从复制、冷热备份
定义:部署在虚拟化云计算环境的数据库,分为关系型云数据库和NoSQL云数据库。特点:实例快速创建;读写分离;故障自动切换;备份恢复;按需弹性扩展。
数据库主从(主从复制):主库负责写操作,同步数据到从库;从库承担读请求,实现读写分离;缺点存在复制延迟,强一致性查询需要访问主库。
数据库集群:多节点共同组成集群,分为高可用集群、分布式分片集群;可实现故障自动转移、负载均衡、数据冗余,提升可用性与并发能力。
数据库备份策略:
冷备份:停机备份,一致性高;业务中断,适合低优先级系统;
温备份:数据库不停止,锁表后备份;业务短暂阻塞;
热备份:在线备份,不中断业务;性能有少量损耗,生产主流方案。
实体识别:数据库设计前期,从业务描述中识别业务实体,作为数据表基础。