当前位置: 首页 > article >正文

软考高级架构 - 8.2 - 系统架构评估 - 超详细讲解+精简总结

8.2-系统架构评估        

        系统架构评估就是对系统架构的质量进行分析,以便帮助设计者作出架构决策,确保系统能够符合需求。评估方法大致分为三种:

  1. 基于问卷或检查表:通过设计好的问卷或清单,收集开发人员和相关人员的反馈。这种方式依赖于评估者的经验和主观判断,可能带有一定的主观性

  2. 基于场景:由卡耐基梅隆大学提出的方式,像 ATAM(架构权衡分析法)和 SAAM(软件架构分析法)都是基于场景的评估方法。这里的“场景”指系统的具体使用或变化情况,通过分析架构在场景中的表现,判断其是否符合需求。

  3. 基于度量:测量架构的各项指标来评估,比如性能、可靠性等。首先将质量需求与度量标准进行映射,然后从架构文档中获取数据,最终通过这些指标来评估系统的质量属性。

8.2.1 重要概念

  • 敏感点 (Sensitivity Point) 和权衡点 (Tradeoff Point)

    • 敏感点:是架构中影响某个质量目标的“关键点”。比如,如果想让系统反应更快,可能得特别关注一些核心模块的设计。
    • 权衡点:是指对多个质量目标有影响的“重点”,往往需要在不同目标之间找到平衡。比如,增加加密可以提高安全性,但也可能让系统变慢,这样就得在安全和性能之间取舍。
  • 风险承担者 (Stakeholders)

    • 风险承担者,也称利益相关人跟系统设计有利益关系的人,比如开发人员、用户、运维人员等。每个人都有自己最关心的质量目标,像用户在意易用性,开发人员在意性能,而运维人员在意系统是否容易维护。
  • 场景 (Scenarios)

    • 场景是在架构评估中用来明确质量目标的描述方法。每个场景简短地描述系统在某个特定环境下的表现,比如高负载或网络故障等。场景通常由刺激 (Stimulus)环境 (Environment)响应 (Response)三个部分构成,用来分析架构在实际情况下的表现和满足需求的程度。

8.2.2 系统架构评估方法

1、SAAM——基于场景的软件架构分析方法

        SAAM是一种系统化的架构评估工具,通过场景模拟来探测和优化架构的质量表现,帮助设计出更稳健、更易维护的系统。

  1. 背景和目的
    SAAM由卡耐基梅隆大学开发,是一种基于“非功能性需求”的架构分析方法。最初用于比较不同架构的可修改性,后来扩展为一种通用评估方法(其他质量属性)

  2. 评估技术——方法
    SAAM采用“场景分析”技术,通过模拟系统可能的使用场景(如系统需支持的活动和状态变化)来评估架构的表现。例如,查看架构是否便于修改、是否支持多种环境等。

  3. 质量属性
    SAAM重点分析“可修改性”这一属性,也适用于其他质量需求,如可移植性和可扩展性。

  4. 风险承担者——利益相关者
    SAAM促成了不同利益相关方(如用户、开发人员、运维人员等)之间的讨论,以便在设计上形成共识。这一共识是后续决策的依据。

  5. 架构描述方式
    SAAM面向架构最终版本,主要涵盖功能、结构、分配等三方面,确保架构清晰明了,便于各方理解。

  6. SAAM评估步骤

    • 场景开发:通过与利益相关方讨论,生成一系列任务场景,即系统需支持的各种活动。
    • 架构描述:使用简明的架构图描述系统中的模块和关系。
    • 单个场景评估:评估每个场景与系统架构的匹配度。
    • 场景交互分析:分析各场景间的相互影响,列出它们对系统的整体影响。
    • 总体评估:综合场景分析结果,对架构的优缺点进行总结,明确可修改性、扩展性等质量属性的表现。
  7. 知识复用:不考虑

  8. 方法验证:SAAM已应用于多个实际系统,证明其效果和实用性。

2、ATAM方法——架构权衡分析方法

  • 目的和背景
    基于SAAM方法,重点在系统开发前期,帮助理解架构设计中可能的多个质量平衡

  • 质量属性关注点
    分析多个相互竞争的质量属性,开始时考虑的是系统的可修改性、安全性、性能和可用性。

  • 利益相关者的参与
    ATAM需要系统中的各类利益相关者(例如用户、开发人员、维护人员等)参与。

  • 架构描述方式
    架构描述基于多种视图,包括功能结构、代码结构等,用以全面呈现系统架构的各个方面。借助消息顺序图等方式展示系统的运行时交互情况。

  • 评估技术
    场景分析”:用例场景(典型使用情况)、增长场景(系统可能的改动)和探测场景(系统的极端负载情况)。“定性启发式分析”:是精确分析模型的粗颗粒度版本。

  • 分析流程
    ATAM包括四个阶段:

    • 阶段1:场景和需求收集。收集系统的典型场景和相关需求,明确对系统的约束条件。
    • 阶段2:架构视图和场景实现。通过场景来理解系统在不同视图下的实现。
    • 阶段3:属性模型构建与分析。专家独立构建模型,分析各质量属性,揭示架构的敏感和权衡点。
    • 阶段4:权衡。对比不同设计方案,确认在多个质量属性之间的折中方案。
  • 效用树工具
    ATAM使用“效用树”工具对质量属性分类,并优先级排序。效用树的结构包括根节点(质量属性)、属性分类、质量属性场景(叶子节点),重点关注性能、安全性、可修改性和可用性。这种分类帮助确定优先级,确保系统设计符合利益相关者的核心需求

  • 方法验证
    ATAM在多个实际系统中应用,如交通控制系统、嵌入式系统等。其工具和方法仍在不断发展,特别是在架构描述、场景分析和工具支持方面。

3、CBAM——成本效益分析法

        基于ATAM发展的,利用ATAM分析的结果,进一步评估架构策略的经济回报。CBAM主要关注在复杂系统设计中的经济性,通过建模架构设计决策的成本和收益,帮助利益相关者做出更合理的投资决策。

CBAM的八个步骤:

  1. 整理场景
    从ATAM中获取的场景中,筛选出与商业目标高度相关的场景,并优先选择其中权重最高的1/3进行详细分析。

  2. 细化场景
    对每个场景进行详细分析,获取其在不同条件下的质量属性响应(例如最坏、当前、期望和最好情况),用于后续的效用评估。

  3. 确定场景的优先级
    利益相关者根据每个场景的“期望”质量属性响应值投票,生成每个场景的权重(即其优先级),为后续的架构策略评估奠定基础。

  4. 分配效用
    建立场景效用表,定义各场景在不同响应级别下的效用值,以便明确哪些质量属性响应最有助于实现商业目标

  5. 架构策略与质量属性的关系
    建立“架构策略-场景-响应级别”的映射,明确每个架构策略对质量属性的影响程度。

  6. 计算期望效用
    使用内插法确定期望质量属性响应的效用,通过前两步的效用表和映射关系,计算各架构策略对各场景的期望效用值。

  7. 计算总收益
    综合第3步的场景优先级和第6步的效用值,得出各架构策略的总收益分数。

  8. 按ROI选择架构策略
    根据估算的架构策略成本,结合第7步的收益值,计算每个策略的ROI(投资回报率),并按ROI排序,选择最优的策略组合。


http://www.kler.cn/a/387874.html

相关文章:

  • Docker入门系列——Docker-Compose
  • Flink CDC(SQL Client)连接 MySQL 数据库教程
  • 十九:Spring Boot 依赖(4)-- spring-boot-starter-security依赖详解
  • 【C++ 算法进阶】算法提升十三
  • 移门缓冲支架的作用与优势
  • 关于Oracle数据库密码复杂度检查的一些概念
  • Linux系统编译boot后发现编译时间与Windows系统不一致的解决方案
  • nginx配置文件介绍及示例
  • 深度学习——多层感知机MLP(一、多层感知机介绍)
  • 设计模式-行为型-常用-2:职责链模式、状态模式、迭代器模式
  • 【安装配置教程】二、VMware安装并配置ubuntu22.04
  • jmeter常用配置元件介绍总结之取样器
  • CDH大数据平台部署
  • 高防服务器和高防IP的区别是什么?
  • Vue2中使用firefox的pdfjs进行文件文件流预览
  • vue.js组件和传值以及微信小程序组件和传值
  • WordPress文章自动提交Bing搜索引擎:PHP推送脚本教程
  • Visual Studio高版本到低版本的转换
  • Spring Boot 监视器
  • EMNLP 2024 BoF 活动报名:用 Embeddings、Reranker、小型语言模型打造更优搜索!
  • 超萌!HTMLCSS:打造趣味动画卡通 dog
  • 「QT」几何数据类 之 QPointF 浮点型点类
  • 最大和值距离
  • WPF MVVM入门系列教程(三、数据绑定)
  • IDEA中新建与切换Git分支
  • 大数据-208 数据挖掘 机器学习理论 - 岭回归 和 Lasso 算法 原理