【软件系统架构师案例分析每日深耕 Day 14】周测:质量属性场景构造 + 战术匹配
2026/8/10 22:19:08 网站建设 项目流程

【Day 14】周测:质量属性场景构造 + 战术匹配


一、题目还原

某在线视频教育平台计划升级系统架构,覆盖直播课、录播课、课后练习、学习报告四大业务模块,当前用户规模500万注册用户、日均活跃用户80万。平台在业务与技术层面提出以下非功能性需求:

(1) 每晚8点直播高峰期,平台需同时承载3万路直播流与50万并发观看请求,要求首屏缓冲时间不超过2秒,直播卡顿率低于1%;
(2) 直播中偶发服务器宕机或网络分区,要求观看中断时间不超过30秒,且已产生的学习进度、课堂互动记录不允许丢失;
(3) 平台存储了大量未成年人个人信息及家长支付信息,需防止数据泄露、越权访问,同时满足教育行业数据合规要求;
(4) 业务发展快,平均每2周就要上线一个新功能(如新的互动答题插件、新的课程营销活动),要求新增功能对现有功能的影响面最小;
(5) 系统每年需进行多次大版本升级,升级过程中要求线上服务不中断、可灰度回滚,且每次升级后能在1周内完成核心链路的回归验证。

【Q1】(12分)请针对上述5项需求,分别识别其对应的关键质量属性,并各构造一个完整的质量属性场景(六要素:刺激源→刺激→环境→制品→响应→响应度量)。

【Q2】(13分)请为上述质量属性分别匹配对应的架构战术(每项需求至少2个战术),并结合该平台的业务场景说明每个战术的具体落地方式。


二、考点分析

项目内容
核心考点质量属性识别 + 质量属性场景六要素构造 + 战术匹配(综合周测)
所属章节软件架构设计——质量属性与架构评估(第8章)
对应模板模板二:质量属性与战术分析(完整版:场景六要素 + 战术列表)
本题难度★★★★☆(周测综合题,覆盖性能/可用性/安全/可修改/可测试五大属性)

三、标准答案(采分点格式)

【Q1】质量属性识别与场景构造(12分)

(1)属性识别(5分,每个1分):
① 需求(1)→性能(Performance)
② 需求(2)→可用性(Availability)
③ 需求(3)→安全性(Security)
④ 需求(4)→可修改性(Modifiability)
⑤ 需求(5)→可测试性(Testability)(含部署验证能力)

(2)质量属性场景构造(7分,每个场景按六要素完整给分):

场景1:性能(1.5分)

  • 刺激源:直播用户(大量并发观看者)
  • 刺激:每晚8点高峰,50万并发用户同时发起直播流请求
  • 环境:系统处于高峰期满负载状态
  • 制品:直播服务与CDN分发链路
  • 响应:边缘节点就近分发,转码服务并行处理,快速返回视频流
  • 响应度量:首屏缓冲时间≤2秒,直播卡顿率<1%

场景2:可用性(1.5分)

  • 刺激源:基础设施故障(服务器宕机/网络分区)
  • 刺激:直播中某机房服务器宕机或网络分区
  • 环境:直播进行中,系统正常运行状态
  • 制品:直播服务集群及学习记录存储
  • 响应:自动检测故障并切换至备用节点,客户端自动重连,进度与互动记录持久化保存
  • 响应度量:观看中断时间≤30秒,学习进度零丢失(RPO=0)

场景3:安全性(1.5分)

  • 刺激源:外部攻击者/越权用户
  • 刺激:试图通过API接口窃取未成年人个人信息或越权访问家长支付数据
  • 环境:系统正常对外运营
  • 制品:用户信息服务、支付模块、API网关
  • 响应:网关鉴权拦截、数据加密存储与传输、权限校验拒绝越权访问并记录审计日志
  • 响应度量:100%未授权请求被拦截,敏感数据加密覆盖率100%,审计日志完整可追溯

场景4:可修改性(1.5分)

  • 刺激源:产品经理/业务方
  • 刺激:每2周提出一个新功能上线需求(如互动答题插件)
  • 环境:系统运行开发与生产并行阶段
  • 制品:课程业务服务
  • 响应:通过模块化/插件化设计新增独立功能单元,不修改既有服务代码
  • 响应度量:新功能2周内上线,受影响的服务数量≤1个,对现有功能影响面最小

场景5:可测试性(1分)

  • 刺激源:开发/测试团队
  • 刺激:大版本升级完成后需要对核心链路进行回归验证
  • 环境:灰度发布阶段,新旧版本并行
  • 制品:核心业务链路(直播/支付/学习记录)
  • 响应:通过自动化测试+链路追踪+灰度流量对比快速定位与验证
  • 响应度量:1周内完成核心链路回归,测试覆盖率≥85%,升级可灰度可回滚

【Q2】战术匹配与落地说明(13分)

(1)性能战术(3分):

战术落地方式
资源管理:维持多个副本/负载均衡直播服务多副本部署,CDN边缘节点就近分发,SLB按地域+负载分发请求
资源需求:减少计算开销(缓存)热门课程元数据、播放地址缓存至Redis/CDN,转码结果预生成并缓存
资源管理:引入并发转码、打包服务采用异步并发处理(消息队列削峰),多线程池并行处理直播流

(2)可用性战术(3分):

战术落地方式
故障检测:心跳/PingK8s Liveness/Readiness探针每10秒检测直播服务存活状态,异常自动告警
故障恢复:冗余+切换直播服务多可用区部署,宕机自动切换;客户端自动重连至备用节点
故障预防:事务/持久化学习进度、互动记录写入前先落库(WAL/事务),配合消息队列保证不丢失(RPO=0)

(3)安全性战术(3分):

战术落地方式
抵抗攻击:身份认证+授权API网关统一OAuth2.0/JWT鉴权,RBAC控制角色权限,未成年人数据单独分级授权
抵抗攻击:加密敏感数据TLS 1.3传输加密 + AES-256存储加密,支付信息符合PCI-DSS
检测攻击+审计接入WAF/IDS实时检测,所有敏感操作记录审计日志(谁+何时+做了什么)

(4)可修改性战术(2分):

战术落地方式
局部化修改:模块化/插件化按课程/直播/练习/报告拆分为独立微服务,互动答题等新功能以插件形式接入
防止连锁反应:中介者/接口稳定服务间通过消息队列+API网关通信,接口版本化管理(v1/v2),新增功能不改动既有接口

(5)可测试性战术(2分):

战术落地方式
控制与观察:日志/内置监控全链路追踪ID(SkyWalking),/actuator/health健康检查端点,灰度流量对比监控
故障注入/自动化测试引入混沌工程模拟故障验证容错;单元测试+契约测试(Pact)+E2E自动化回归,灰度环境先行验证

四、评分要点

必答采分点:

  1. Q1:5项需求→5个属性名称全部正确(5分);每个场景六要素齐全(刺激源/刺激/环境/制品/响应/响应度量),缺一个要素扣该场景对应分;
  2. Q2:每个属性至少2个战术且战术名称规范(如"故障检测:心跳"),共需约10~13个战术(8分);每个战术有结合平台的落地说明(5分)。

加分项:

  • 场景中的响应度量给出量化指标(≤2秒、<1%、≤30秒、RPO=0、≥85%);
  • 战术分类准确(能区分"资源管理-多副本"与"资源需求-缓存"这类同类不同级);
  • 出现具体技术栈(CDN、K8s探针、Redis、SkyWalking、Pact契约测试)增强说服力;
  • 提到属性间权衡(如缓存提升性能但引入一致性维护成本)。

常见失分点:

  • 质量属性识别错误(把"直播不卡顿"写成可用性——实际是性能;"进度不丢失"才是可用性);
  • 场景只写三要素(如只写刺激、响应、度量),六要素不全;
  • 战术与属性不匹配(如把"加密"答成性能战术);
  • 只列战术名称不写落地方式,或落地方式与本平台无关(写成电商/银行场景)。

五、扩展知识点

1. 质量属性场景六要素速记口诀:源→刺→环→制→应→度(刺激源→刺激→环境→制品→响应→响应度量)。任何"构造场景"题,按口诀逐项填写即可拿全分。

2. 六属性速记:性安可用改测易(性能/安全性/可用性/可修改性/可测试性/易用性)。本周已覆盖:Day 8可用性(双活)、Day 9性能(秒杀)、Day 10安全(零信任)、Day 11可修改(单体演进)、Day 14可测试+综合——六大属性全通关。

3. 关联《必背公式速查卡》:可用性 A = MTBF/(MTBF+MTTR);99.9%年宕机8.76小时,99.99%年宕机52.56分钟,99.999%年宕机5.26分钟——场景度量中写"可用性99.99%"时注意换算正确。

4. 关联《易混淆对照表》:性能vs可用性——"响应快"是性能,"不中断"是可用性;可靠性MTTF与可用性MTBF勿混。

5. 关联《六大答题模板》:本题是模板二的完整变体(场景构造+战术匹配),下周(Day 15)将在此基础上进入ATAM——效用树本质就是"属性→场景→优先级"的结构化组织,先掌握场景构造,ATAM才能水到渠成。


六、今日金句

“质量属性场景是用六要素讲清楚’在什么环境下、谁发起了什么刺激、系统应作出什么响应、如何度量’的标准化需求描述;而战术是架构师实现场景目标的手段——场景定义’要什么’,战术回答’怎么做’。”

(考试原话级表述,可直接用于案例题开篇或论文方法段。)

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询