软考高级系统架构设计师备考,写着方便自己看,如果有发现不对或少得的地方可以多多指正,谢谢各位兄弟。

一、软件系统质量属性

1. 质量属性的两大分类(生命周期维度)

分类

核心定义

包含属性

通俗案例

开发期质量属性

软件开发阶段关注的特性

易理解性、可扩展性、可重用性、可测试性、可维护性、可移植性

易理解性:新接手老项目的开发人员,1周就能理清核心逻辑,说明系统易理解性好
可扩展性:电商大促前无需重构核心链路,就能新增「预售锁库存」功能,说明可扩展性强

运行期质量属性

软件运行阶段关注的特性

性能、安全性、可伸缩性、互操作性、可靠性、可用性、鲁棒性

可伸缩性:短视频平台用户从1亿涨到5亿,仅通过扩容服务器就维持了流畅体验,说明可伸缩性好
鲁棒性:用户输入错误格式的手机号提交订单,系统不会崩溃而是弹出友好提示,说明鲁棒性(容错性)强

真题提示:该分类是单选基础题,直接选「开发期+运行期」即可。

2. 面向架构评估的6类核心质量属性

这部分是案例、论文的高频考点,需要掌握定义、衡量指标、设计策略和典型案例:

质量属性

核心要点

案例

性能

定义:系统对事件的响应能力,指标:响应时间、吞吐量;设计策略:优先级队列、并发机制、资源调度

医院挂号系统把急诊预约请求放入最高优先级队列,优先处理,就是性能优化的典型实践

可靠性

定义:系统抵御错误、持续运行的能力,指标:MTTF(平均失效等待时间)、MTBF(平均失效间隔时间),失效率恒定且修复快时二者几乎相等;设计策略:冗余、心跳检测

金融核心交易系统采用双活数据中心,一个中心故障后另一个秒级接管,就是提升可靠性的设计

可用性

定义:系统正常运行时间占总时间的比例,指标:故障间隔时间、故障恢复速度;设计策略:冗余、Ping/Echo机制

云服务器承诺99.99%可用性,即全年宕机时间不超过52分钟

安全性

分为4类:机密性(信息不泄露给未授权方)、完整性(信息不被非法篡改)、不可否认性(收发行为不可抵赖)、可控性(信息传播可被管控);设计策略:入侵检测、身份认证、权限控制

微信聊天记录仅收发双方可见是机密性;转账后无法否认自己发起过交易,就是不可否认性

可修改性

包含4类:可维护性(修复缺陷的难易度)、可扩展性(新增功能的难易度)、结构重组(重构构件关系的难易度)、可移植性(跨环境迁移的难易度);设计策略:接口-实现分离、抽象、信息隐藏

把支付模块的接口和具体实现分离,后续新增数字人民币支付方式仅需修改实现类,不影响其他模块,就是可修改性好的体现

互操作性

定义:与其他系统交换数据、调用服务的难易度

政务服务平台可以直接调取公安的身份信息、税务的纳税信息,无需用户重复提交材料,就是互操作性强的体现

真题提示:区分可靠性和可用性:可靠性关注「不出错」,可用性关注「出错了多久能恢复」。

3. 质量属性场景(精准描述质量需求的工具)

由6个要素组成,是论文中描述需求的核心工具:

要素

定义

淘宝新增直播功能的案例

刺激源

发起请求的实体

淘宝后端开发人员

刺激

触发的变更条件

需要新增直播带货功能

环境

场景发生的背景

系统处于日常运行态

制品

被修改的对象

淘宝APP后端服务

响应

系统采取的动作

快速定位修改点,完成开发测试并上线

响应度量

可量化的结果

本次修改耗时2人月,未影响其他现有功能

二、系统架构评估核心知识

1. 架构评估三大核心概念

概念

核心定义

案例

敏感点

实现一个特定质量属性时,构件需要具备的特性

要实现高安全性,加密模块必须具备高强度加密算法支持,这就是安全性的敏感点

权衡点

同时影响多个质量属性的特性,是多个敏感点的交集

提高加密等级会提升安全性,但会增加CPU开销降低性能,此时加密等级就是典型的权衡点

风险承担者(利益相关人)

所有受架构影响的角色

架构师需要平衡业务方(要快速上线)、运维方(要系统稳定)、安全部门(要合规)的多方诉求

场景

风险承担者对系统交互的简短描述,用「刺激、环境、响应」三要素刻画

评估可修改性时,场景可描述为:「系统运行态下,开发人员要新增报表导出功能,3人月内完成上线且无副作用」

真题提示:题干中如果一个决策同时影响2个及以上质量属性,直接选「权衡点」。

2. 主流架构评估方法

方法

核心特点

案例

SAAM(基于场景的架构分析方法)

最早的架构评估方法,核心聚焦可修改性

评估OA系统架构时,先梳理「新增请假审批流程」「修改考勤规则」等场景,逐一评估架构对这些场景的支持程度

ATAM(架构权衡分析方法)

SAAM的升级版,核心关注性能、安全性、可修改性、可用性四大质量属性,用「效用树」做优先级排序

评估电商大促架构时,先通过效用树把「10万并发下响应<3秒」(性能)、「支付数据零泄露」(安全性)、「大促前可快速新增优惠券功能」(可修改性)、「故障30秒内自动恢复」(可用性)列为最高优先级场景,再逐一分析架构支持能力

CBAM(成本效益分析法)

在ATAM基础上增加成本核算,按ROI(投资回报率)选择最优架构

评估发现两个优化方案:A投入100万提升20%性能,B投入80万提升15%性能+10%可用性,计算ROI后选择B更符合业务利益

真题提示:

① ATAM效用树的层级为:树根→质量属性→属性分类→质量属性场景(叶子节点)

② ATAM核心关注的四大属性是「性能、安全性、可修改性、可用性」,是单选必考题

其余SAEM、AHP等评估方法仅需了解,不做高频考点。

三、中间件技术核心考点

1. 基础定义与特点

中间件是处于操作系统和应用系统之间的系统级软件,作用是屏蔽底层异构环境(不同OS、数据库、网络)的差异,实现分布式系统的资源共享和协同工作。

核心特点:①不是单一软件,是一类产品;②不仅实现系统互连,更实现应用互操作;③核心优势是网络通信能力。

案例:Java应用要访问Oracle数据库,不需要自己写底层网络交互代码,只需要通过JDBC中间件即可完成操作。

2. 两大核心支持

支持类型

核心作用

案例

交互支持

协调分布式环境下组件间的通信,提供消息队列、RPC、ORB等机制,屏蔽底层网络细节

微服务之间通过RabbitMQ消息队列异步传输订单数据,无需关心TCP协议细节

公共服务

提供可复用的通用能力,如事务管理、安全服务、负载均衡、容错等

通过Redis实现分布式锁,通过Nginx实现流量负载均衡,都是中间件提供的公共服务

3. 常见中间件分类

分类

作用

典型案例

通信处理(消息)中间件

实现跨平台可靠数据传输

IBM MQSeries,金融系统跨行转账靠它保证数据不丢失

事务处理中间件

协调分布式事务的顺序、一致性和负载均衡

BEA Tuxedo,电商下单「减库存+扣余额」的分布式事务靠它保证原子性

数据存取中间件

统一不同数据库的访问接口

JDBC、ODBC,应用更换数据库时无需修改大量代码

Web服务中间件

提供Web应用的运行时容器

Tomcat、JBoss,Java Web应用都部署在这类中间件中运行

安全中间件

提升系统安全等级

SSL/TLS,浏览器地址栏的「小锁」就是它实现的传输加密

跨平台中间件

实现不同语言系统的互操作

CORBA,C++编写的后台服务和Java编写的客户端可以无缝交互

Logo

openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构

更多推荐