系统架构设计师备考第38天——系统架构评估
一、系统架构评估概述
定义:系统架构评估是通过数学或逻辑分析技术,对架构的一致性、正确性、质量属性及规划结果进行分析,为架构策略决策提供依据。
评估方法分类:
- 基于调查问卷/检查表:依赖专家经验,主观性强。
- 基于场景:分析架构对特定场景(如系统使用或修改)的支持程度(如ATAM、SAAM)。
- 基于度量:通过量化指标映射质量属性(需建立度量与属性的关联规则)。
二、重要概念
1. 敏感点(Sensitivity Point)与权衡点(Tradeoff Point)
- 敏感点:影响单个质量属性的架构决策(如加密级别影响安全性)。
- 权衡点:影响多个质量属性的架构决策(如提高加密级别提升安全性但降低性能)。
示例:加密级别是典型权衡点,需平衡安全性与性能需求。
2. 风险承担者(Stakeholders)
不同角色对架构有不同关注点,分为四类:
角色分类 | 代表角色 | 核心关注点 |
---|---|---|
系统生产者 | 架构师、开发人员、测试人员 | 架构清晰性、可维护性、性能、错误处理机制 |
系统消费者 | 客户、最终用户 | 功能性、可用性、进度、预算 |
系统服务人员 | 系统管理员、网络管理员 | 故障定位、网络性能、可服务性 |
其他人员 | 领域专家、系统设计师 | 可互操作性、可移植性、硬件兼容性 |
3. 场景(Scenarios)
- 定义:描述风险承担者与系统的交互,用于精确质量目标。
- 描述维度:
- 刺激(Stimulus):触发事件(如用户请求)。
- 环境(Environment):事件发生的条件(如高并发场景)。
- 响应(Response):系统行为(如响应时间≤1秒)。
三、评估方法
1. SAAM方法(场景驱动)
- 目标:验证架构假设,评估可修改性、可移植性等质量属性。
- 核心步骤:
- 场景开发:风险承担者协商定义任务场景。
- 架构描述:用易理解的语法描述构件及关系(数据/控制流)。
- 单个场景评估:分析架构对场景的支持程度。
- 场景交互:识别场景间的依赖及构件影响。
- 总体评估:权衡场景支持度与交互冲突。
- 适用场景:早期架构版本评估,支持可修改性分析。
2. ATAM方法(架构权衡分析)
- 阶段:
- 演示:介绍业务目标与架构。
- 调查分析:识别关键架构方法及质量属性(如Hoover架构的高可修改性)。
- 测试:验证架构对场景的响应。
- 报告:总结评估结果。
- 核心思想:通过场景分析权衡质量属性冲突(如性能 vs. 安全性)。
3. 其他方法
- CBAM(成本效益分析法):量化架构决策的经济影响(书中未展开)。
- 基于度量方法:需建立质量属性与度量指标的映射模型(如可靠性→故障率)。
四、核心考点总结
- 敏感点 vs. 权衡点:敏感点影响单一属性,权衡点影响多属性(必考区别)。
- 风险承担者分类:掌握四类角色的典型代表及关注点(表格记忆)。
- 场景三要素:刺激、环境、响应的定义及实例。
- SAAM五步骤:场景开发→架构描述→单场景评估→场景交互→总体评估。
- ATAM四阶段:演示→调查分析→测试→报告(结合案例理解)。
五、典型考题示例
-
选择题:
提高系统加密级别会同时影响安全性和性能,该决策属于( )。
A. 敏感点 B. 权衡点 C. 风险点 D. 冲突点
答案:B(权衡点) -
简答题:
简述SAAM方法中“场景交互”阶段的目的。
答:分析不同场景对系统构件的共同影响,识别架构设计中的冲突点或耦合点,为优化决策提供依据(如修改某构件可能影响多个场景)。 -
案例题:
分析Hoover事件架构的可修改性高的原因。
答:组件高度内聚(如事件管理器独立处理事件绑定),接口明确(应用通过钩子接入框架),符合高内聚低耦合原则。