软考高级架构 - 8.3 - ATAM方法架构评估实践 - 超详细讲解+精简总结

news2024/11/26 0:33:07

结:

        ATAM时评估架构的质量属性方法,帮助权衡和识别风险,分为四个阶段。

  • 阶段1——演示

        介绍ATAM方法,介绍软件商业目标和关键需求,详细介绍要被评估的架构。

  • 阶段2——调查和分析

        深入分析系统架构,评估关键质量属性,并使用效用树来表示和优先化系统目标,确保架构支持关键质量属性。

  • 阶段3——测试

        进行头脑风暴以收集情景,分析高优先级的质量属性和架构方法,找出风险、非风险、敏感点和权衡点,深入理解架构在满足质量属性上的表现。

  • 阶段4——报告

        整理和报告评估结果,包括效用树、场景集合、分析问题、风险清单和架构方法的发现,以便利益相关者对系统的质量有全面的认识和改进建议。

8.3 ATAM方法架构评估实践

        ATAM(Architecture Tradeoff Analysis Method)是评估软件架构质量属性需求的方法,它帮助架构师和利益相关者识别架构设计中的权衡和风险。ATAM的实践包括以下几个阶段:

阶段1——演示

第一步:介绍ATAM

        评估负责人向参与者解释ATAM方法、如何评估、使用哪些技术,以及最终期望得到的结果。

第2步:介绍业务驱动因素

       解释为什么系统是这样设计的,也就是它的商业目标和关键需求。团队会讲述系统的主要功能、利益相关方(如最终用户、架构师、开发人员)是谁,以及他们的期望和关心的问题。

第3步:介绍要评估的体系结构

        架构团队详细展示被评估的体系结构,包括它是如何工作的、有哪些技术限制、与其他系统如何交互,以及为了满足性能、可靠性等质量要求采取了哪些措施。

阶段2——调查和分析

第4步:确定架构方法

在这一步,架构团队需要解释架构是如何工作的,以及它是如何满足系统的关键需求的。例如,他们会描述系统处理输入、事件管理和组件交互的方式。举个例子:

  • 胡佛架构:输入被传递到事件管理器处理,存储在队列中,按顺序处理,并分配给合适的处理程序。这种架构的优势是高可修改性和组件的独立重用性,但也有扩展的能力。

  • “银行”活动架构:该架构初始化和处理事件时,有一系列严格的检查,确保输入的有效性。但这种架构可修改性较差,组件间的依赖性较高,使得重用性较低。

第5步:生成质量属性效用树

        在这一步,团队会确定系统中最重要的质量属性,并按优先级排列。这种“效用树”帮助参与者理解哪些质量属性对系统成功最重要。每个属性通过场景(例如,如何响应用户输入)进行表达,以便更清晰地判断系统是否符合这些目标。场景由利益相关者提供,反映他们对系统的期望和互动。

第6步:分析架构与情景

        在这个步骤中,评估团队将场景与架构方法进行匹配,寻找架构是否能满足这些场景中的质量属性需求。利益相关者和评估团队一起识别出在架构中可能存在的风险和挑战。

阶段3——测试

第7步——头脑风暴和优先场景

     这一阶段旨在通过头脑风暴收集利益相关者的意见,找到与系统质量属性相关的重要场景。然后将这些场景与之前生成的效用树中的场景进行比较和合并。

  1. 收集场景:进行头脑风暴活动,利益相关者提出不同的场景。这些场景可以是:

    • 用例场景:关注系统的实际使用,如最终用户的操作方式。
    • 增长场景:描述系统随着时间发展时的扩展方式。
    • 探索性场景:模拟极端情况下系统的表现,如负载突增。
  2. 场景优先排序

    • 将收集到的所有场景进行归类,合并类似的场景。
    • 利益相关者进行投票来选出最重要的场景,每人有固定数量的选票,通常为场景总数的30%。
    • 投票结束后,记录票数,并按票数高低排序,取截止线以上的场景用于后续分析。
  3. 比较和整合场景

    • 将头脑风暴中优先的场景与之前步骤(第5步)中效用树里的场景进行比较。
    • 如果新场景属于已有的质量属性分支,就合并在一起;否则,将其作为新叶子节点添加到树中。

第8步——分析架构方法

       主要目标是分析架构是否能够满足在前一步中识别出的高优先级质量属性,并找出潜在的风险、非风险、敏感点和权衡点。以下是详细步骤:

1. 调查架构方法

这部分分析特定架构设计是否支持实现关键质量属性:

  • 安全性:验证系统是否能够防止未经授权的访问,并提供数据机密性。
  • 性能:评估系统在响应速度和事务处理效率上的表现。

胡佛架构分析

  • 安全性:胡佛架构通过将数据封装在事件管理器内实现了较好的数据保护,避免了未经授权的访问。
  • 性能:由于涉及的组件较少且处理流程简单,系统可以较快地完成任务,满足性能要求。

银行架构分析

  • 安全性:由于应用程序信息分散在多个组件中,系统难以保持数据机密性,整体安全性较弱
  • 性能:处理一个事件涉及的组件数量多,导致响应时间长,不利于性能优化。

2. 创建分析问题

根据高优先级情景,形成以下分析问题:

  1. 系统是否限制未经授权访问?(安全)
  2. 架构是否保障数据机密性?(安全)
  3. 架构是否以最快速度处理任务?(性能)

3. 分析问题的答案

对这两种架构回答上述问题:

  • 胡佛架构
    1. 未经授权的访问得到有效限制。
    2. 数据未在多组件中暴露,确保了机密性。
    3. 因涉及的组件数量少,能快速处理任务。
  • 银行架构
    1. 多组件允许访问,未经授权的风险较大。
    2. 应用程序信息在多组件中暴露,数据机密性较差。
    3. 组件数量多导致任务处理速度慢。

4. 识别风险、非风险、敏感点和权衡点

风险与非风险

  • 胡佛架构:无重大风险,性能和安全性被认为是非风险。
  • 银行架构:安全性和性能都是风险。

敏感点

  • 数据保密性对嵌入应用程序位置的数量敏感。
  • 处理任务的速度对涉及的组件数量敏感。

权衡点

  • 应用程序特定信息的嵌入位置。
  • 处理任务所涉及的组件数量。

总结

胡佛架构在保持数据保密性和性能方面表现较好,而银行架构存在安全性和性能的风险,难以满足高优先级质量属性的需求。

阶段4——报告ATAM

        在此阶段,评估团队会将整个评估过程中收集到的所有信息整合并呈现给利益相关者。

ATAM 团队的主要发现包括:

  • 效用树:用于展示系统的整体质量目标及其优先级。
  • 生成的场景集合:包含了从头脑风暴和分析中得到的各种情景。
  • 分析问题集合:针对质量属性提出的具体问题。
  • 风险和非风险清单:识别了系统中的潜在问题和安全领域。
  • 确定的架构方法:对比和分析不同架构方法及其在满足质量属性方面的表现。

报告内容概述:

        报告涵盖了前述 ATAM 评估的8个步骤中产生的所有关键信息,旨在帮助利益相关者理解系统架构的质量特征、潜在风险、以及如何改进或优化系统以实现其质量目标。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2235243.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Redis - Hash 哈希

一、基本认识 ⼏乎所有的主流编程语⾔都提供了哈希(hash)类型,它们的叫法可能是哈希、字典、关联数 组、映射。在Redis中,哈希类型是指值本⾝⼜是⼀个键值对结构,形如key"key",value{{ field1, v…

C++上机实验|多态性编程练习

1.实验目的 (1)理解多态性的概念。 (2)掌握如何用虚函数实现动态联编 (3)掌握如何利用虚基类。 2.实验内容 设计一个飞机类 plane,由它派生出歼击机类fighter和轰炸机类 bomber,歼击机类fighter 和轰炸机类bomber 又共同派生出歼轰机(多用途战斗机)。利用虚函数和虚基类描述…

岛屿数量 广搜版BFS C#

和之前的卡码网深搜版是一道题 力扣第200题 99. 岛屿数量 题目描述 给定一个由 1(陆地)和 0(水)组成的矩阵,你需要计算岛屿的数量。岛屿由水平方向或垂直方向上相邻的陆地连接而成,并且四周都是水域。…

动态规划 之 路径问题 算法专题

一. 不同路径 不同路径 状态表示 dp[i][j] 表示走到[i][j]位置, 有几种不同的路径状态转移方程 以离[i][j] 最近的位置划分问题 1.从[i - 1][j] 到[i][j], 到[i][j]位置的不同路径数 就是和 到[i - 1][j]位置的不同路径数相同, 即dp[i][j] dp[i - 1][j] 2.从[i][j - 1] 到[i…

别名路径联想设置

如何使用/进行路径提示? 找到jsconfig.json文件,如何项目中没有的话,自行创建 {"compilerOptions": {"paths": {"/*": ["./src/*"]}},"exclude": ["node_modules", "dis…

40V耐压 降压恒压芯片 SL3061替换XL4301 支持2.5A电流 内置MOS管

一、基本性能参数对比 二、替换可行性分析 耐压能力:SL3061的耐压能力为40V,而XL4301的工作电压范围为8V至40V,最大耐压可能更高(达到45V)。在多数应用场景下,SL3061的耐压能力应能满足需求,但…

字节青训-小D的 abc 变换问题

问题描述 小D拿到了一个仅由 "abc" 三种字母组成的字符串。她每次操作会对所有字符同时进行以下变换: 将 a 变成 bc将 b 变成 ca将 c 变成 ab 小D将重复该操作 k 次。你的任务是输出经过 k 次变换后,得到的最终字符串。 例如:对于初…

设计模式09-行为型模式2(状态模式/策略模式/Java)

5.4 状态模式 5.4.1 状态模式的定义 1.模式动机:有些对象具有多种状态,这些状态在某些情况下能够相互转换,对象在不同的状态下将具有不同的行为,将拥有状态的对象中和状态的行为分离。 2.模式定义:允许一个对象在其…

Postman上传图片如何处理

打开Postman,创建一个新的请求 URL: http://90.104.232.49:80/dev-api/appcommon/upload 如果有解密进入上传就在请求头添加 点击“Body”选项卡。 选择“form-data”类型。 在“KEY”列中输入文件字段的名称,例如file。 在“VALUE”列中&#xff0…

MongoDB笔记03-MongoDB索引

文章目录 一、前言1.1 概述1.2 MongoDB索引使用B-Tree还是BTree?1.3 B 树和 B 树的对比1.4 总结 二、索引的类型2.1 单字段索引2.2 复合索引2.3 其他索引 三、索引的管理操作3.1 索引的查看3.2 索引的创建3.2.1 单字段索引3.2.2 复合索引 3.3 索引的移除3.3.1 指定索…

MongoDB Shell 基本命令(三)聚合管道

管道含义 类似Linux中的管道,前一个命令的输出作为后一个命令的输入。 显示网络连接、路由表和网络接口统计信息 netstat -ano -netstat:network statistics 网络统计 -a:显示所有连接和监听端口,包括所有活动的TCP和UDP连接。 -n:以数字形式显示地址…

2024年10月国产数据库大事记-墨天轮

本文为墨天轮社区整理的2024年10月国产数据库大事件和重要产品发布消息。 目录 2024年10月国产数据库大事记 TOP102024年10月国产数据库大事记(时间线)产品/版本发布代表厂商大事记信创数据库上市公司2024年Q3财报 达梦数据:2024年前三季度…

SQL Server 日志记录

SQL Server是一个关系数据库管理系统(RDBMS),旨在有效地存储、组织、检索和操作大量结构化数据。SQL Server日志是监控数据库活动、排查问题和确保数据一致性的基础,这些日志记录了SQL Server实例中发生的事件的时间顺序。它们充当…

yolo v5 开源项目

项目地址:https://gitcode.net/EricLee/yolo_v5

队列详解

目录 队列队列的概念及结构队列的实现代码 队列功能的实现队列的尾插void QueuePush(Queue*pq, QDataType x);结构体封装指针typedef struct Queue总结 代码 队列的头删void QueuePop(Queue* pq)代码 队列的初始化void QueueInit(Queue* pq)代码 队列的销毁void QueueDestroy(Q…

ViT模型复现项目实战

项目源码获取方式见文章末尾! 600多个深度学习项目资料,快来加入社群一起学习吧。 《------往期经典推荐------》 项目名称 1.【基于CNN-RNN的影像报告生成】 2.【卫星图像道路检测DeepLabV3Plus模型】 3.【GAN模型实现二次元头像生成】 4.【CNN模型实现…

是时候用开源降低AI落地门槛了

过去三十多年,从Linux到KVM,从OpenStack到Kubernetes,IT领域众多关键技术都来自开源。开源技术不仅大幅降低了IT成本,也降低了企业技术创新的门槛。 那么,在生成式AI时代,开源能够为AI带来什么?…

【C++打怪之路Lv13】- “继承“篇

🌈 个人主页:白子寰 🔥 分类专栏:重生之我在学Linux,C打怪之路,python从入门到精通,数据结构,C语言,C语言题集👈 希望得到您的订阅和支持~ 💡 坚持…

数据特征工程:如何计算Teager能量算子(TEO)? | 基于SQL实现

目录 0 TKEO能量算子 1 数据准备 2 特征求解 3 小结 0 TKEO能量算子 TEO(Teager能量算子),由Kaiser于1990年代提出的非线性分析方法(参见Kaiser, 1990; 1993),是一种有效的非线性信号处理工具,它能即时反映信号能量的变化。通过计算相邻采样点的值,TEO能够迅速跟…

淘宝/天猫探店大冒险:用taobao.item_search_shop API把宝贝一网打尽

想象一下,你是一位勇敢的探险家,手拿藏宝图(店铺ID),准备潜入神秘的淘宝/天猫店铺,寻找那些隐藏在角落里的宝贝。今天,我们要用taobao.item_search_shop API这张神奇的藏宝图,带你走…