软考架构师复习站

质量属性与 ATAM:案例题的主战场

质量属性把“快、稳、安全、好改”变成可度量目标;ATAM 则用来评估架构决策背后的风险和权衡。

本页脑图:质量属性与评估

质量与评估

六要素

  • 刺激源
  • 刺激
  • 环境
  • 制品
  • 响应
  • 响应度量

属性

  • 性能
  • 可用性
  • 安全性
  • 可修改性
  • 可测试性
  • 易用性

ATAM

  • 业务目标
  • 候选架构
  • 效用树
  • 场景排序

输出

  • 敏感点
  • 权衡点
  • 风险点
  • 非风险点

源激境品应量;业务目标 → 质量场景 → 架构决策 → 风险权衡。

质量属性场景六要素

几乎必考案例题

六要素的作用是把一句模糊需求变成架构可验证的目标。不要写“系统响应快”,要写“在 1 万并发登录时,认证服务 P99 响应时间小于 200ms”。

要素问法例子易错点
刺激源谁触发?外部用户、黑客、运维人员、下游服务、硬件故障。不要写成系统响应。
刺激做了什么?并发请求、非法登录、节点宕机、需求变更。必须是具体动作或事件。
环境什么情况下?正常运行、大促高峰、故障恢复、弱网环境。环境影响响应策略,不能省略。
制品作用于哪里?认证服务、权限服务、数据库、缓存、整个系统。要定位到架构对象。
响应系统怎么做?扩容、熔断、降级、重试、告警、拒绝访问。不要写效果,要写动作。
响应度量做得怎样?P99 小于 200ms,RTO 小于 30 秒,可用性 99.99%。必须可量化。

口诀:谁(源)做了什么(激),在什么情况下(境),作用于哪里(品),系统怎么反应(应),反应得好不好(量)。

六大常考质量属性

性能

关注响应时间、吞吐量、并发数、资源利用率。常用缓存、异步、负载均衡、索引、读写分离。指标写 QPS、TPS、P95/P99。

可用性

关注故障时能否继续服务。常用冗余、心跳、故障转移、熔断降级、限流。指标写 SLA、MTBF、MTTR、RTO、RPO。

安全性

关注认证、授权、保密性、完整性、审计。常用加密、RBAC/ABAC、最小权限、审计日志、零信任。

可修改性

关注需求变化成本。常用模块化、接口隔离、分层、配置化、插件化。指标写影响模块数、改造周期、回归范围。

可测试性

关注是否容易验证。常用依赖注入、Mock、契约测试、自动化测试、日志和可观测性。

易用性

关注用户完成任务的效率和错误率。常用一致交互、明确提示、输入校验、容错设计。

质量属性常见战术细化

质量属性架构战术具体技术副作用论文指标
性能减少计算、减少通信、并发处理、资源复用Redis、CDN、连接池、异步队列、批处理、索引缓存一致性、异步延迟、复杂度上升P99、QPS、吞吐、CPU、缓存命中率
可用性故障检测、故障恢复、故障预防心跳、健康检查、主从切换、熔断、限流、降级、多活成本增加、数据同步复杂SLA、RTO、RPO、MTTR、错误率
安全性抵抗攻击、检测攻击、从攻击中恢复认证、授权、加密、WAF、审计、备份、零信任性能开销、权限管理复杂拦截率、审计覆盖率、漏洞数、越权次数
可修改性局部化修改、防止连锁影响、延迟绑定模块化、接口隔离、配置中心、插件化、领域边界抽象过度、部署单元增加变更周期、影响模块数、回归范围
可测试性控制输入输出、可观测、隔离依赖Mock、契约测试、日志、追踪、测试数据管理测试维护成本覆盖率、缺陷发现率、自动化执行时间
易用性用户主动性、系统反馈、错误恢复统一交互、提示、撤销、默认值、自助恢复前端复杂度增加任务完成率、错误率、满意度
案例题高分点:质量属性不能单独写技术,必须补“响应度量”。例如“增加 Redis”只是一项措施,“P99 从 600ms 降到 180ms”才是可验收结果。

常见架构战术:把属性落成方案

目标可写措施适合指标风险
提高性能Redis 缓存、CDN、异步队列、数据库索引、读写分离、批处理。P99、QPS、缓存命中率。缓存一致性、异步延迟。
提高可用性多副本、主从切换、熔断降级、限流、故障隔离、多活容灾。SLA、RTO、RPO、错误率。成本上升、数据一致性复杂。
提高安全性网关鉴权、Token 签名、mTLS、数据加密、审计告警、权限最小化。拦截率、审计覆盖率、漏洞数。性能损耗、权限配置复杂。
提高可修改性DDD、微服务、分层、接口标准化、配置中心、领域事件。变更周期、影响模块数。服务数量增加,治理复杂。

ATAM:架构权衡分析法

ATAM 用来回答:这个架构能不能满足重要质量属性?哪里有风险?一个决策改善了什么,又牺牲了什么?

九步记忆

  1. 介绍 ATAM 方法。
  2. 介绍业务目标。
  3. 介绍候选架构。
  4. 识别架构方法。
  5. 生成质量属性效用树。
  6. 分析架构方法。
  7. 头脑风暴并排序场景。
  8. 再次分析架构方法。
  9. 形成评估结果。

四类结果

  • 敏感点:某决策显著影响一个属性,如缓存 TTL 影响数据新鲜度。
  • 权衡点:某决策同时影响多个属性,如加密提升安全但降低性能。
  • 风险点:可能导致目标无法达成,如单点 Redis。
  • 非风险点:已有措施能满足目标,如主从切换已演练。

敏感点、权衡点、风险点怎么区分

类型判断方法例子答题句式
敏感点某参数或决策变化,会显著影响一个质量属性。缓存 TTL 越长,性能越好,但数据新鲜度越差。【决策/参数】是【质量属性】的敏感点。
权衡点一个决策同时影响多个质量属性,有利有弊。加密提升安全性,但增加 CPU 开销和响应延迟。【决策】在【属性A】与【属性B】之间形成权衡。
风险点当前架构可能导致重要场景达不到指标。单 Redis 节点故障会导致 Token 校验不可用。若【故障/变化】发生,可能导致【目标】无法满足。
非风险点已有设计和验证能满足质量场景。Redis Cluster 已验证主节点故障 30 秒内切换。由于已有【措施】,该场景当前不构成风险。

效用树怎么写

效用树从“总体效用”开始,下一层是质量属性,再往下是具体场景,叶子节点标注优先级和实现难度。

质量属性场景优先级/难度可能战术
性能2 万并发登录时,P99 小于 200ms。H/MRedis、网关限流、读写分离。
可用性缓存主节点宕机后 30 秒内恢复。H/MRedis Cluster、哨兵、降级策略。
安全性非法 Token 请求被网关拦截并审计。H/LJWT 签名、黑名单、审计日志。
可修改性新增登录方式不影响权限服务。M/M接口隔离、策略模式、配置化。

案例题答题模板

业务问题 → 质量属性 → 六要素场景 → 架构战术 → ATAM 风险/权衡 → 量化指标。

示例:在大促高峰环境下,外部用户高并发访问登录接口,作用于认证服务。系统通过 API 网关限流、Redis 缓存 Token、K8s 水平扩容和下游熔断处理请求,保证 2 万并发下 P99 响应时间小于 200ms,错误率低于 0.1%。该方案的权衡点是缓存提升性能但带来一致性风险,因此采用短 TTL、主动失效和审计补偿机制。
错题归属知识点记忆点
题 2 串联系统可靠性可靠性计算串联系统可靠度相乘。
题 10 软件可靠性可靠性定义与估算规定环境、规定时间、无故障运行概率;可靠性可估算。