系统架构设计师备考第38天——系统架构评估

一、系统架构评估概述

定义 :系统架构评估是通过数学或逻辑分析技术,对架构的一致性、正确性、质量属性及规划结果进行分析,为架构策略决策提供依据。
评估方法分类

  1. 基于调查问卷/检查表:依赖专家经验,主观性强。
  2. 基于场景:分析架构对特定场景(如系统使用或修改)的支持程度(如ATAM、SAAM)。
  3. 基于度量:通过量化指标映射质量属性(需建立度量与属性的关联规则)。

二、重要概念

1. 敏感点(Sensitivity Point)与权衡点(Tradeoff Point)
  • 敏感点:影响单个质量属性的架构决策(如加密级别影响安全性)。
  • 权衡点 :影响多个质量属性的架构决策(如提高加密级别提升安全性但降低性能)。 示例:加密级别是典型权衡点,需平衡安全性与性能需求。
2. 风险承担者(Stakeholders)

不同角色对架构有不同关注点,分为四类:

角色分类 代表角色 核心关注点
系统生产者 架构师、开发人员、测试人员 架构清晰性、可维护性、性能、错误处理机制
系统消费者 客户、最终用户 功能性、可用性、进度、预算
系统服务人员 系统管理员、网络管理员 故障定位、网络性能、可服务性
其他人员 领域专家、系统设计师 可互操作性、可移植性、硬件兼容性
3. 场景(Scenarios)
  • 定义:描述风险承担者与系统的交互,用于精确质量目标。
  • 描述维度
    • 刺激(Stimulus):触发事件(如用户请求)。
    • 环境(Environment):事件发生的条件(如高并发场景)。
    • 响应(Response):系统行为(如响应时间≤1秒)。

三、评估方法

1. SAAM方法(场景驱动)
  • 目标:验证架构假设,评估可修改性、可移植性等质量属性。
  • 核心步骤
    1. 场景开发:风险承担者协商定义任务场景。
    2. 架构描述:用易理解的语法描述构件及关系(数据/控制流)。
    3. 单个场景评估:分析架构对场景的支持程度。
    4. 场景交互:识别场景间的依赖及构件影响。
    5. 总体评估:权衡场景支持度与交互冲突。
  • 适用场景:早期架构版本评估,支持可修改性分析。
2. ATAM方法(架构权衡分析)
  • 阶段
    1. 演示:介绍业务目标与架构。
    2. 调查分析:识别关键架构方法及质量属性(如Hoover架构的高可修改性)。
    3. 测试:验证架构对场景的响应。
    4. 报告:总结评估结果。
  • 核心思想:通过场景分析权衡质量属性冲突(如性能 vs. 安全性)。
3. 其他方法
  • CBAM(成本效益分析法):量化架构决策的经济影响(书中未展开)。
  • 基于度量方法:需建立质量属性与度量指标的映射模型(如可靠性→故障率)。

四、核心考点总结

  1. 敏感点 vs. 权衡点:敏感点影响单一属性,权衡点影响多属性(必考区别)。
  2. 风险承担者分类:掌握四类角色的典型代表及关注点(表格记忆)。
  3. 场景三要素:刺激、环境、响应的定义及实例。
  4. SAAM五步骤:场景开发→架构描述→单场景评估→场景交互→总体评估。
  5. ATAM四阶段:演示→调查分析→测试→报告(结合案例理解)。

五、典型考题示例

  1. 选择题

    提高系统加密级别会同时影响安全性和性能,该决策属于( )。

    A. 敏感点 B. 权衡点 C. 风险点 D. 冲突点
    答案:B(权衡点)

  2. 简答题

    简述SAAM方法中"场景交互"阶段的目的。
    :分析不同场景对系统构件的共同影响,识别架构设计中的冲突点或耦合点,为优化决策提供依据(如修改某构件可能影响多个场景)。

  3. 案例题

    分析Hoover事件架构的可修改性高的原因。
    :组件高度内聚(如事件管理器独立处理事件绑定),接口明确(应用通过钩子接入框架),符合高内聚低耦合原则。


相关推荐
星瞰物联5 小时前
RDSS 与 RNSS 定位技术深度解析(二)——系统架构、性能指标
网络·系统架构
月上柳青1 天前
rrk3588 与 NPU 主机下的异构通信:基于 PCIe 的设计与实现
系统架构
小古jy2 天前
系统架构设计师考点——软件架构设计(架构风格!!!)
架构·系统架构
武子康2 天前
Java-148 深入浅出 MongoDB 聚合操作:$match、$group、$project、$sort 全面解析 Pipeline 实例详解与性能优化
java·数据库·sql·mongodb·性能优化·系统架构·nosql
老友@2 天前
集中式架构、分布式架构与微服务架构全面解析
分布式·微服务·架构·系统架构
十五年专注C++开发3 天前
QT 中的元对象系统(六):connect函数详解
开发语言·c++·qt·设计模式·系统架构·qevent
武子康4 天前
Java-145 深入浅出 MongoDB 基本操作详解:数据库查看、切换、创建集合与删除完整教程
java·数据库·sql·mysql·mongodb·性能优化·系统架构
谱写秋天4 天前
软考-系统架构设计师 软件系统质量属性详细讲解
系统架构·软考架构师
张较瘦_4 天前
从零学会绘制系统架构图:目的、思路与实操指南
架构·系统架构·软件工程