首页/开发/系统分析与架构设计速查/质量属性场景(六要素)
需求分析与建模61 条

质量属性场景(六要素)

把非功能需求写成可测试场景,包含刺激源、刺激、环境、制品、响应与响应度量六个要素,是 ATAM 评估与性能需求澄清的通用表达方式。

质量属性场景是什么

质量属性场景把非功能需求写成可测试的六要素描述:刺激源、刺激、环境、制品、响应与响应度量。它解决的是“系统要快、要稳”这类表述无法验收的问题:把谁在什么条件下做了什么、系统应有什么反应、用哪个指标判定,一次性说清。它也是架构评估(如 ATAM)中逐条讨论与验证质量属性的通用语言。

示例

示例
刺激源:正常营业时间的用户客户端
刺激:发起订单查询请求
环境:峰值负载,系统正常运行
制品:订单查询服务
响应:返回查询结果并记录访问日志
响应度量:p95 延迟不超过 500 毫秒,错误率低于 0.1%

基本信息

六要素刺激源、刺激、环境、制品、响应、响应度量
两种形态一般场景(该属性整体要求)与具体场景(可测试的单点)
用途把口号转成可验证的验收指标,作为架构评审输入
变体故障场景把刺激换成断电、网络分区、依赖超时等异常事件
记录位置非功能需求清单、架构决策记录、压测计划

常用场景模板

属性刺激示例响应度量示例
性能峰值时段并发查询p95 延迟、每秒查询数上限
可用性单个可用区故障服务中断时长、降级后可用率
安全性未授权用户尝试访问他人数据拒绝比例、审计记录完整性
可修改性新增一个支付渠道涉及模块数、所需人日
可测试性新增一条业务规则回归验证耗时、用例覆盖比例
易用性新用户首次完成下单完成耗时、操作出错次数

典型使用场景

  • 非功能需求澄清:把模糊目标改写成可测试场景
  • 架构评估:逐条讨论场景,判断当前设计能否支撑
  • 压测计划制定:场景直接转成压测用例与通过判据
  • 验收对照:上线前逐条核对响应度量是否被监控覆盖
  • 故障演练设计:用故障型场景设计演练脚本与恢复目标
  • 方案对比:用同一组场景比较不同技术方案的满足程度
场景的响应度量必须可观测:如果指标无法从监控或压测中直接读出,场景就只是文字描述,无法作为验收依据。
只写一般场景(“系统应高性能”)而不落到具体场景,评审时仍然无法判断设计是否达标。

易错点

  • 场景缺少响应度量,只描述期望行为,无法判定通过与否
  • 度量指标无数据来源,压测与监控都取不到,验收时只能凭感觉
  • 环境要素笼统写成“正常情况”,忽略峰值、降级等关键条件
  • 只写性能与可用性场景,忽略可修改性与可测试性,架构长期演进成本被低估
  • 场景与压测脚本脱节,评审结论从未被实测验证

数据来源与参考

  • SEI《ATAM: Method for Architecture Evaluation》(CMU/SEI-2000-TR-004)
  • 《软件架构:架构模式、特征及实践指南》
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌