系统架构评估方法-ATAM方法

架构权衡分析方法(Architecture Tradeoff Analysis Method,ATAM) 是在SAAM的基础上 发展起来的,主要针对性能、实用性、安全性和可修改性,在系统开发之前,对这些质量属性 进行评价和折中。

(1)特定目标。 ATAM的目标是在考虑多个相互影响的质量属性的情况下,从原则上提供 一种理解软件架构的能力的方法。对于特定的软件架构,在系统开发之前,可以使用ATAM方 法确定在多个质量属性之间折中的必要性。

(2)质量属性。 ATAM方法分析多个相互竞争的质量属性。开始时考虑的是系统的可修改 性、安全性、性能和可用性。

(3)风险承担者。在场景、需求收集相关活动中,ATAM方法需要所有系统相关人员的 参与。

(4)架构描述。架构空间受到历史遗留系统、互操作性和以前失败的项目约束。架构描述 基于5种基本结构来进行,这5种结构是从Kruchten的4+1视图派生而来的。其中逻辑视图被 分为功能结构和代码结构。这些结构加上它们之间适当的映射可以完整地描述一个架构。

用一组消息顺序图表示运行时的交互和场景,对架构描述加以注解。ATAM方法被用于架 构设计中,或被另一组分析人员用于检查最终版本的架构。

(5)评估技术。可以把ATAM方法视为一个框架,该框架依赖于质量属性,可以使用不同 的分析技术。它集成了多种优秀的单一理论模型,其中每种都能够高效、实用地处理属性。该 方法使用了场景技术。从不同的架构角度,有3种不同类型的场景,分别是用例(包括对系统 典型的使用、引出信息)、增长场景(用于涵盖那些对它的系统的修改)、探测场景(用于涵盖 那些可能会对系统造成过载的极端修改)。

ATAM还使用定性的启发式分析方法(Qualitative Analysis Heuristics), 在对一个质量属性 构造了一个精确分析模型时要进行分析,定性的启发式分析方法就是这种分析的粗粒度版本。

(6)方法的活动。 ATAM被分为4个主要的活动领域(或阶段),分别是场景和需求收集、 架构视图和场景实现、属性模型构造和分析、折中。

属性专家独立地创建和分析他们的模型,然后交换信息(澄清和创建新的需求)。属性分析 是相互依赖的,因为每个属性都会涉及其他属性。获得属性关联的方法有两种,即使用敏感度 分析来发现折中点和通过检查假设。

在架构设计中, ATAM提供了迭代的改进。除了通常从场景派生而来的需求,还有很多对 行为模式和执行环境的假设。由于属性之间存在着折中,每一个假设都要被检查、验证和询问, 以此作为ATAM方法的结果。在完成所有这些操作之后,把分析的结果和需求进行比较;如果 系统预期的行为大多接近于需求,设计者就可以继续进行下一步更为详细的设计或实现。

(7)领域知识库的可重用性。领域知识库通过基于属性的架构风格(Attribute Based Architecture Style) 维护。 ABAS有助于从架构风格的概念转向基于特定质量属性模型的推理能力。获取一组基于属性的架构风格的目标在于要把架构设计变得更为惯例化和更可预测,并得 到一个基于属性的架构分析的标准问题集合,使设计与分析之间的联系更为紧密。

(8)方法验证。该方法已经应用到多个软件系统,但仍处在研究之中。虽然软件架构分析 与评价已经取得了很大的进步,但是在某些方面也存在一些问题。例如,架构的描述、质量特 征的分析、场景不确定性的处理、度量的应用架构分析和评价支持工具等,这些都影响和制约 着分析评估技术的发展。 Clement认为在未来的5~10年内,架构的分析是架构发展的5个方 向之一。

ATAM方法采用效用树(Utility tree) 这一工具来对质量属性进行分类和优先级排序。效 用树的结构包括:树根—质量属性—属性分类—质量属性场景(叶子节点)。需要注意的是, ATAM主要关注4类质量属性:性能、安全性、可修改性和可用性,这是因为这4个质量属性 是利益相关者最为关心的。

得到初始的效用树后,需要修剪这棵树,保留重要场景(通常不超过50个),再对场景按 重要性给定优先级(用H/M/L的形式),再按场景实现的难易度来确定优先级(用H/M/L的形 式),这样对所选定的每个场景就有一个优先级对(重要度、难易度),如 (H、L)表示该场景 重要且易实现。

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

DeepSeek开源Day4:DualPipeEPLB技术详解

2 月 24 日,DeepSeek 启动 “开源周”,第四个开源的代码库为 DualPipe 与 EPLB(一下发布了两个)。DualPipe 与 EPLB 依然使用了大量与 Hopper 架构绑定的技术。 DualPipe 是由 DeepSeek-AI 团队开发的一种双向流水线并行通信算法&…

推荐算法和推荐系统入门第一趴

以下是推荐系统技术总结的架构梳理和建议表达思路: 从原理到生产环境:推荐系统核心技术与实战代码解析 一、推荐算法的演进图谱 传统算法三剑客 ![推荐系统算法分类示意图] (使用Mermaid绘制算法分类关系图,清晰展示技术演进&am…

Cursor+Claude3.7实现从原型到app开发

最近在X上看到了一些人在用Claude 3.7 Sonnet生成 app原型图的尝试,受到启发,发现这么先生成不同界面的原型图再让Cursor基于原型图开发app会是很好的尝试。尤其是,你也可以不两步直接生成,而是在过程中更可视化地思考你要生产的原…

Flink深入浅出之01:应用场景、基本架构、部署模式

Flink 1️⃣ 一 、知识要点 📖 1. Flink简介 Apache Flink — Stateful Computations over Data StreamsApache Flink 是一个分布式大数据处理引擎,可对有界数据流和无界数据流进行有状态的计算。Flink 能在所有常见集群环境中运行,并能以…

在线教育网站项目第二步 :学习roncoo-education,服务器为ubuntu22.04.05

一、说明 前端技术体系:Vue3 Nuxt3 Vite5 Vue-Router Element-Plus Pinia Axios 后端技术体系:Spring Cloud Alibaba2021 MySQL8 Nacos Seata Mybatis Druid redis 后端系统:roncoo-education(核心框架:S…

JavaWeb6、Servlet

6.1Servlet简介 Servlet就是sun公司开发动态web的一门技术 sun公司在这些API中提供一个接口叫做Servlet,如果想开发一个Servlet程序,只需要完成两个小步骤: 编写一个类,实现Servlet接口 把开发好的Java类部署到web服务器中 把…

DeepSeek未来发展趋势:开创智能时代的新风口

DeepSeek未来发展趋势:开创智能时代的新风口 随着人工智能(AI)、深度学习(DL)和大数据的飞速发展,众多创新型技术已经逐渐走向成熟,而DeepSeek作为这一领域的新兴力量,正逐步吸引越…

K8S学习之基础十四:k8s中Deployment控制器概述

Deployment控制器概述: Deployment控制器是k8s中最常用的资源对象,为Replicaset和Pod创建提供了一种声明式的定义方法,在Deployment对象中描述一个期望的状态,Deployment控制器就会按照一定的控制速率把实际状态改成期望状态&…

基于IMM算法的目标跟踪,四模型IMM|三维环境|4个模型分别是:CV、左转CT、右转CT、CA(基于EKF,订阅专栏后可获得完整源代码)

这段MATLAB代码实现了基于交互多模型(IMM)算法的目标跟踪,结合了四种运动模型(匀速直线、左转圆周、右转圆周和匀加速直线)。通过定义状态方程、生成带噪声的测量数据,以及执行IMM迭代,该代码有效地实现了多模型的状态估计和融合。最终,用户可以通过可视化结果观察目标…

豆包大模型 MarsCode AI 刷题专栏 001

001.找单独的数 难度:易 问题描述 在一个班级中,每位同学都拿到了一张卡片,上面有一个整数。有趣的是,除了一个数字之外,所有的数字都恰好出现了两次。现在需要你帮助班长小C快速找到那个拿了独特数字卡片的同学手上…

树莓派学习(一)——3B+环境配置与多用户管理及编程实践

树莓派学习(一)——3B环境配置与多用户管理及编程实践 一、实验目的 掌握树莓派3B无显示器安装与配置方法。学习Linux系统下多用户账号的创建与管理。熟悉在树莓派上使用C语言和Python3编写简单程序的方法。 二、实验环境 硬件设备:树莓派…

DAIR-V2X-R数据集服务器下载

【官方github链接】https://github.com/ylwhxht/V2X-R 点击并登录 选择并点击下载 浏览器弹窗,右键选择复制下载链接 ------------------------------------服务器下载----------------------------------------- 登录服务器,选在要下载的文件夹复制路…

通用信息抽取大模型PP-UIE开源发布,强化零样本学习与长文本抽取能力,全面适配多场景任务

背景与简介 信息抽取(information extraction)是指,从非结构化或半结构化数据(如自然语言文本)中自动识别、提取并组织出结构化信息。通常包含多个子任务,例如:命名实体识别(NER&am…

前端开发10大框架深度解析

摘要 在现代前端开发中,框架的选择对项目的成功至关重要。本文旨在为开发者提供一份全面的前端框架指南,涵盖 React、Vue.js、Angular、Svelte、Ember.js、Preact、Backbone.js、Next.js、Nuxt.js 和 Gatsby。我们将从 简介、优缺点、适用场景 以及 实际…

AI数据分析:deepseek生成SQL

在当今数据驱动的时代,数据分析已成为企业和个人决策的重要工具。随着人工智能技术的快速发展,AI 驱动的数据分析工具正在改变我们处理和分析数据的方式。本文将着重介绍如何使用 DeepSeek 进行自动补全SQL 查询语句。 我们都知道,SQL 查询语…

解决:Word 保存文档失败,重启电脑后,Word 在试图打开文件时遇到错误

杀千刀的微软,设计的 Word 是个几把,用 LaTex 写完公式,然后保存,卡的飞起 我看文档卡了很久,就关闭文档,然后 TMD 脑抽了重启电脑 重启之后,文档打不开了,显示 杀千刀的&#xff…

【LeetCode 热题 100】3. 无重复字符的最长子串 | python 【中等】

美美超过管解 题目: 3. 无重复字符的最长子串 给定一个字符串 s ,请你找出其中不含有重复字符的 最长的长度。 示例 1: 输入: s "abcabcbb" 输出: 3 解释: 因为无重复字符的最长子串是 "abc",所以其长度为 3。 注…

weblogic部署报错汇总

weblogic部署报错汇总 Weblogic部署遇到的问题 1.部署完weblogic,进入weblogic控制台,后提示无资源可访问。 解决方法: 权限问题,检查weblogic应用的启动用户和所属用户是否一致。 2. 安装weblogic,创建域的时候特别…

如何在后端服务发布过程中使用蓝绿部署

一、概念 蓝绿部署(Blue-Green Deployment)是一种常用的零停机发布策略,旨在减少发布过程中的风险和系统停机时间。它通过在同一环境中并行维护两个相似的环境(蓝色环境和绿色环境)来实现无缝的应用发布。以下是蓝绿部署策略在后端服务发布中的应用流程以及一些注意事项。…

辛格迪客户案例 | 深圳善康医药科技GMP培训管理(TMS)项目

01 善康医药:创新药领域的探索者 深圳善康医药科技股份有限公司自2017年创立以来,便扎根于创新药研发领域,专注于成瘾治疗药物的研究、生产与销售。公司坐落于深圳,凭借自身独特的技术优势与研发实力,在行业内逐渐崭露…