软考-系统架构设计师 系统架构评估详细讲解

个人博客:blogs.wurp.top

一、核心概念:为什么需要架构评估?

1. 定义

系统架构评估是在系统构建之前 ,通过系统化的方法,分析 软件架构是否满足特定质量属性目标 (如性能、安全、可用性),并识别潜在风险、敏感点和权衡点的过程。

2. 目的与价值

  • 降低风险:在投入大量开发和运维成本之前,发现架构设计中的重大缺陷。
  • 验证决策:确认架构决策能够支持关键的非功能需求。
  • 促进沟通:为所有利益相关者(管理者、客户、开发、测试、运维)提供一个讨论架构和达成共识的平台。
  • 指导改进:为架构的改进和优化提供明确的方向。

核心思想"早发现,早治疗"。在架构阶段修复一个问题的成本,远低于在编码、测试甚至上线后修复的成本。


二、架构评估方法论

评估不是随意的评审,而是有严格流程和方法的。最著名和常用的方法是 ATAM

1. ATAM - 架构权衡分析方法 (Architecture Tradeoff Analysis Method)

这是软考中要求掌握的重点方法 。ATAM 的核心是 "权衡",它承认没有完美的架构,任何决策都是在不同质量属性之间进行取舍。

ATAM 的参与角色

  • 评估小组:由外部或内部架构专家组成,负责引导评估过程。
  • 项目决策者:包括项目经理、首席架构师、产品经理等,有权做出项目决策。
  • 架构涉众:包括开发、测试、运维、用户代表等,他们的利益与架构密切相关。

ATAM 的九个步骤(四阶段)

第一阶段:演示与评估

  1. ATAM方法演示:评估小组向项目参与者介绍ATAM的过程和目标。
  2. 业务动机演示 :项目决策者介绍系统的业务目标主要功能最重要的质量属性目标
  3. 架构演示:首席架构师详细阐述当前的架构设计,包括关键决策和设计思路。

第二阶段:调查与分析

  1. 确定架构方法 :评估小组基于架构师的演示,识别并记录 出架构中使用的主要架构模式、风格和技术 (如微服务、缓存、负载均衡)。

  2. 生成质量属性效用树这是ATAM的核心步骤。

  • 效用:代表系统对涉众的整体价值。
  • 效用树 :一个分层结构,用于细化、排序和量化质量属性目标。
  • 根节点:系统的总体效用。
  • 质量属性节点:第一层子节点(如性能、安全性、可用性)。
  • 细化场景节点:第二层子节点,将质量属性细化为更具体的场景(如"在高并发下保持低延迟")。
  • 叶子节点 :每个场景都被赋予一个优先级(高、中、低) 和一个支持该场景的难度/风险估计(高、中、低)
  • 作用 :效用树帮助团队聚焦于高优先级、高风险的场景,这些是评估的重点。

第三阶段:测试

  1. 分析架构方法 :评估小组针对效用树中高优先级的场景,逐一拷问架构设计。
  • 问题示例:"为了实现'5秒内完成订单'这个性能场景,架构中采用了哪些具体机制?(如数据库分库分表、异步消息队列)这些机制是否足够?"
  1. 头脑风暴并确定场景优先级 :邀请所有涉众提出更多他们关心的场景(不限于已列出的),然后通过投票方式确定这些新场景的优先级。
  2. 再次分析架构方法:对投票产生的高优先级新场景,重复第6步的分析过程。

第四阶段:报告

  1. 结果展示:评估小组向项目决策者展示最终的评估结果。核心输出包括:
  • 已文档化的架构方法
  • 已确定并设置优先级的场景(来自效用树和头脑风暴)。
  • 效用树
  • 风险决策:指那些可能无法满足某个重要质量属性的架构决策。
  • 非风险决策:指那些经过分析被认为是良好的、能有效支持某个质量属性的决策。
  • 敏感点:指一个或多个组件的属性,它对某个质量属性有显著影响。(例如,缓存大小是性能的敏感点)。
  • 权衡点 :指影响多个质量属性的架构决策,通常是权衡发生的地方。(例如,引入数据加密提高了安全性,但可能降低了性能;采用强一致性协议提高了一致性,但牺牲了可用性)。

2. SAAM - 软件架构分析方法 (Software Architecture Analysis Method)

  • 特点:比ATAM更早、更简单,是ATAM的前身。
  • 关注点 :主要评估架构的可修改性(可维护性)。
  • 核心过程
    1. 开发场景(描述可能发生的变更)。
    2. 对场景进行分类(直接场景 vs. 间接场景)。
    3. 执行场景评估(评估变更所需的工作量)。
    4. 揭示交互(评估场景之间的耦合程度)。

三、架构评估中的核心概念(必考)

在评估过程中,会提炼出以下几个关键概念,用于描述架构的特性:

  1. 场景 (Scenario):评估的基本单位,用于具体化质量属性需求(如前文所述的质量属性场景)。
  2. 敏感点 (Sensitivity Point)
    • 定义 :架构中一个或多个组件的属性 ,当它发生变化时,会对一个质量属性产生显著影响。
    • 例子 :"缓存的大小是系统响应时间的敏感点。" 增大缓存可能显著提高响应速度。
  3. 权衡点 (Trade-off Point)
    • 定义 :架构中的一个属性 ,它与多个 质量属性密切相关,并且这些影响是相互冲突的。
    • 例子 :"是否对数据库连接进行加密 是一个权衡点 。" 加密提高了安全性 ,但增加了CPU开销,可能降低性能
  4. 风险 (Risk)
    • 定义 :根据当前架构设计,某个重要的质量属性目标可能无法实现的决策。
    • 例子 :"为了追求开发速度,系统没有设计容灾方案,这是一个风险 ,威胁到系统的可用性。"
  5. 非风险 (Non-Risk)
    • 定义 :经过评估,被认为是良好的、能有效支持某个质量属性的架构决策。
    • 例子 :"使用负载均衡器来分发Web请求,这是一个非风险 决策,它很好地支持了系统的可扩展性可用性。"

四、软考考点总结与应用

  1. 选择题

    • 直接考查架构评估的目的和价值
    • 考查 ATAM 和 SAAM 方法的定义、特点和区别。
    • 考查 ATAM 的九个步骤 ,特别是效用树的作用。
    • 考查敏感点、权衡点、风险、非风险的定义和区别,并能根据小案例进行判断。
    • 考查评估中的参与角色及其职责。
  2. 案例分析题

    • 题目描述一个架构设计,并给出一些质量属性要求。
    • 问题:请使用ATAM方法,对该架构进行评估,并说明评估的重点和可能输出的结果。
    • 答题套路
      1. 阐述ATAM流程:简述将按照演示、调查、测试、报告四个阶段进行。
      2. 构建效用树:根据案例中的质量要求,虚拟一个简单的效用树(例如,性能-高并发场景-高优先级/高风险)。
      3. 识别关键概念
        • 敏感点:指出案例中影响某个质量属性的关键参数(如数据库连接池大小)。
        • 权衡点:指出案例中存在的架构决策冲突(如为了数据一致性采用分布式事务,牺牲了性能与可用性)。
        • 风险:指出案例中可能无法满足需求的决策(如单点数据库设计对可用性构成风险)。
      4. 提出建议:基于评估结果,提出架构改进方向。
  3. 论文题

    • 可能围绕"论软件架构评估在某项目中的应用 "、"ATAM方法与软件质量保证 "、"架构设计中的权衡策略"等主题。
    • 写作时,必须:
      • 清晰描述项目背景和关键的架构决策
      • 详细论述你如何组织或参与一次ATAM评估(角色、步骤)。
      • 重点分析评估中发现的权衡点风险 ,以及你是如何决策和解决这些问题的。
      • 总结架构评估为项目带来的实际价值(如避免了哪些潜在问题)。

总结

对于软考架构师,掌握系统架构评估的关键在于:

  • 树立评估意识:将架构评估视为与架构设计同等重要的必备环节。
  • 精通核心方法 :深刻理解并能阐述 ATAM 的全过程,特别是效用树的分析。
  • 清晰辨析概念 :能准确区分敏感点、权衡点、风险和非风险,这是分析问题的语言。
  • 具备实践能力:能将理论方法应用于实际案例,进行分析、诊断和提出改进建议。
相关推荐
Ashlee_code1 天前
经纪柜台系统解析:从今日国际金融动荡看证券交易核心引擎的变革
python·架构·系统架构·区块链·vim·柜台·香港券商
qqxhb2 天前
系统架构设计师备考第66天——系统安全架构
系统架构·安全架构·技术/组织/管理·wpdrrc·osi安全·多点防御·支撑设施
qqxhb2 天前
系统架构设计师备考第63天——通信系统架构
5g·系统架构·局域网·通信系统·sdn·广域网·存储网络san/nas
qqxhb2 天前
系统架构设计师备考第67天——数据库系统的安全&系统架构的脆弱性
数据库·安全·系统架构·访问控制·完整性·脆弱性·身份鉴别
小鱼儿LY2 天前
系统架构设计师论文-论软件体系结构的演化
系统架构·软件体系结构·架构设计师·体系结构演化
qqxhb3 天前
系统架构设计师备考第64天——网络构建关键技术
网络·系统架构·mtbf·mttr·冗余硬件·软件热备·快速检测
爱好读书3 天前
一键生成系统架构图
系统架构·毕业设计·课程设计
zhmhbest3 天前
Qt 全球峰会 2025:中国站速递 —— 技术中立,拥抱更大生态
开发语言·qt·系统架构
qqxhb4 天前
系统架构设计师备考第65天——安全架构和模型
系统架构·状态机·安全架构·安全模型·物理/信息/网络/系统·blp/biba·chinese wall
平凡而伟大(心之所向)4 天前
云架构设计与实践:从基础到未来趋势
人工智能·阿里云·系统架构·安全架构