系统架构设计师——架构评估(二)

其他质量属性

  1. 敏感点
    • 敏感点是指那些对特定质量属性影响较大的系统部分。例如,对于性能来说,数据库访问可能是一个敏感点;对于安全性来说,用户认证模块可能是一个敏感点。
    • 识别敏感点有助于架构师优先处理可能影响关键质量属性的系统部分,从而在设计过程中进行重点优化和测试。
  2. 权衡点
    • 权衡点是指在不同质量属性之间需要进行平衡的系统部分。例如,为了提高性能可能需要牺牲一定的可维护性或可扩展性。
    • 架构师需要在这些质量属性之间做出合理的权衡,以确保系统整体上能够满足业务需求和用户期望。
  3. 风险
    • 风险是指那些可能导致项目失败或质量属性不达标的因素。这包括技术风险、市场风险、人员风险等。
    • 在架构设计过程中,需要识别和评估潜在的风险,并制定相应的缓解措施以降低风险的影响。
  4. 非风险
    • 非风险是指那些与风险相对的、不太可能对项目成功构成威胁的因素。它们通常是项目中已解决或可控的部分。
    • 虽然非风险因素不需要像风险那样重点关注,但它们也是项目成功的重要组成部分,因此需要保持其稳定和可靠。

架构评估方法

基于调查问卷或检查表的方式

  • 定义:这种方法通过设计一系列的问题或检查项,来收集反馈并评估架构特性。这些问题可能涉及架构的可维护性、可扩展性、安全性等方面。
  • 作用:通过问卷调查或检查表,可以系统地收集来自不同利益相关者的意见和反馈,帮助识别潜在的问题和改进点。

基于场景的方式

  • 定义:这种方法通过定义一系列具体的使用场景或质量场景,来模拟系统在特定条件下的行为,并评估架构如何满足这些场景的需求。
  • 作用:场景驱动的评估方法能够更直观地展示架构在实际情况下的表现,帮助开发团队更好地理解架构的优势和局限。
软件架构分析方法(Architecture Tradeoff Analysis Method( ATAM)
  • 定义:软件架构分析方法是一种基于场景的评估技术,它通过分析架构对特定场景的响应来评价架构的质量属性。
  • 作用:这种方法有助于识别架构中的潜在问题,并提供改进的方向。

架构权衡分析方法(ATAM)是一种系统架构评估方法,旨在综合评价性能、可用性、安全性和可修改性等质量属性,并进行适当的权衡。该方法由卡耐基梅隆大学软件工程研究所提出,最初目的是为了解决在架构设计中对多个质量属性的综合考量问题。以下是关于其的详细介绍:

  1. 介绍
    • 背景与发展:ATAM全称为Architecture Tradeoff Analysis Method,是由卡耐基梅隆大学软件工程研究所提出的架构评估方法。它从SAAM方法发展而来,着重于评估架构对质量属性的支持并进行权衡。
    • 核心理念:ATAM的核心在于通过一个综合的过程,分析架构特征并评估其对不同质量属性的影响,从而做出最佳决策。
  2. 活动阶段
    • 需求收集:这一阶段主要收集与系统相关的业务动机、需求和预期目标。评估团队通过与项目决策者和架构涉众沟通,明确系统要实现的主要功能和特性。
    • 架构视图描述:架构师需详细描述系统的架构设计,包括技术约束、交互系统和架构方法等信息。这一步骤确保所有参与者对架构有清晰理解。
    • 属性模型构造和分析:在这一步骤中,评估小组将构建质量属性效用树,从高级效用到具体的质量属性场景逐步细化,并分析架构对这些场景的支持情况。
    • 架构决策与折中:基于前几步的分析和评估,确定架构决策的风险点、敏感点和权衡点。这些信息将用于制定最终的架构改进建议。
  3. 实施步骤
    • 评估方法介绍:评估负责人向参与者详细介绍ATAM流程和方法,确保所有人对评估过程有统一的理解。
    • 商业动机表述:项目经理或系统客户阐述系统的商业目标及主要驱动因素,明确项目的重点和风险承担者。
    • 架构表述:架构设计师全面描述架构设计,包括用于支持质量属性的关键架构方法和重要的用例场景。
    • 场景优先级确定:通过集体讨论和投票,确定不同场景的优先级,以指导后续的分析工作。
    • 架构方法分析:根据高优先级场景,深入分析架构方法,识别潜在的风险点和敏感点,并制定相应的改进建议。
    • 结果表述:最后,评估小组将评估结果整理成报告,向所有参与者展示,包括架构方法、场景优先级、关键质量属性和推荐的设计决策等内容。
  4. 优点与局限
    • 优点:ATAM能够全面评估架构对多种质量属性的支持,并通过权衡分析提供明确的决策依据。同时,该方法适用于不同行业和领域,具有较强的通用性和适应性。
    • 局限:尽管ATAM提供了全面的评估框架,但由于依赖于具体参与者的经验和判断,可能存在一定的主观性。此外,评估过程较为复杂,需要多方参与和充分的时间投入。
现代的ATAM

ATAM的评估活动步骤如下:

  1. 描述ATAM方法:评估小组负责人向参与会议的项目干系人介绍ATAM评估方法,确保所有人对评估流程有清晰的认识。

  2. 描述业务动机:项目决策者从业务的角度介绍系统的概况,包括系统的主要功能、技术或管理或经济和政治方面的限制、与项目相关的业务目标和上下文、关键干系人以及架构的驱动因素。

  3. 描述架构:详细说明技术约束(如操作系统、硬件和中间件)、将与系统交互的其他系统以及为满足质量属性要求而采用的架构方法。

  4. 确定架构方法:架构设计师通过理解架构方法来分析架构,并确定适合的架构策略。

  5. 生成质量属性效用树:评估小组、设计小组、管理人员和客户代表共同确定系统最重要的质量属性目标,对这些质量目标设置优先级并进行细化。

  6. 分析架构方法:此步骤会产出架构方法或风格的列表、相关问题及设计师对这些问题的回答,通常会产生一个包含风险、敏感点和权衡点的列表。

  7. 讨论场景和对场景分级:项目干系人集体讨论用例场景和改变场景,并通过投票表决的方式对收集到的场景进行优先级排序。

  8. 分析架构方法:在收集和分析场景后,设计师将最高级别的场景映射到所描述的架构中,并解释相关架构是如何帮助实现这些场景的。评估小组会重复第6步中的工作,将新得到的最高优先级场景与尚未得到的架构工作产品对应起来。如果在第7步中没有产生任何高优先级的场景,则第8步主要是测试步骤。

  9. 描述评估结果:最后,将ATAM分析中得到的各种信息进行归纳,并反馈给项目干系人。ATAM的评估结果包括简洁的架构描述、清晰的业务目标、用场景集合捕获的质量属性、确定的敏感点和权衡点集合、有风险决策和无风险决策、风险主题的集合。

架构权衡分析法(Software Architecture Analysis Method, SAAM)
  • 定义:架构权衡分析法是一种系统化的方法,用于评估在满足不同质量属性时所做的权衡。
  • 作用:它帮助架构师明确在追求某一质量属性时可能对其他属性产生的影响,从而做出更加明智的决策。

软件体系结构分析方法(SAAM)是一种用于评估软件架构质量的早期方法。SAAM的核心在于通过场景与体系结构的映射,来评估架构对业务需求的适应性。这种方法最早由卡耐基梅隆大学软件工程研究所的Kazman等人于1983年提出,最初用于比较不同的软件体系结构,以分析其可修改性。实践证明,SAAM也可用于评估其他质量属性如可移植性和可扩展性等。

SAAM的目标是验证基本架构假设和原则,同时评估架构固有的风险。通过协调不同参与者所感兴趣的方面,SAAM提供了对体系结构的公共理解,帮助后续的决策制定。该方法适用于架构的最后版本,但早于详细设计阶段。

SAAM的评估过程包括场景开发、体系结构描述、单个场景评估、场景交互和总体评估五个步骤。在场景开发阶段,风险承担者共同讨论并形成一系列任务场景,体现系统所需支持的各种活动。接着,通过一种易于理解的方式描述体系结构,包括计算构件、数据构件及构件之间的关系。对场景进行分类,生成特定体系结构的场景描述列表,然后逐一评估这些场景,并分析它们之间的相互作用。最终,对场景及其交互进行全面权衡和评价,得出总体结论。

成本收益分析方法CBAM(Cost Benefit Analysis Method)
  • 定义:成本收益分析方法是一种评估架构选择的经济性的方法,通过比较不同选择的成本和预期收益来进行。
  • 作用:这种方法有助于确定在资源有限的情况下,哪些架构决策能够带来最大的净收益。

CBAM(Concern-Based Adoption Model)是一种用于评估架构设计决策成本和收益的模型,其基本思想是架构策略会影响系统的质量属性,而这些质量属性又会为系统的项目干系人带来一些收益(称为“效用”)

CBAM可以看作是ATAM的补充,在ATAM评估结果的基础上对架构的经济性进行评估。CBAM的核心在于通过精细化的关注和空间注意力模块,从不同维度优化架构设计,从而提升系统的整体性能和经济效益。这种模型不仅适用于传统的软件架构设计,还可以广泛应用于其他领域,如业务过程管理和组织变革等。

基于度量的方式

  • 定义:基于度量的评估方法是通过收集和分析与架构相关的量化数据来评估架构的质量。
  • 作用:度量数据可以包括代码复杂度、耦合度、响应时间等,这些数据为评估提供了客观的证据,有助于量化架构的优缺点

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

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

相关文章

Windows安装使用Docker

配置Dorker环境 启用或关闭windows功能 安装wsl 以管理员身份打开windows PowerShell,安装相关配置 下载docker应用程序 Releases tech-shrimp/docker_installer (github.com) 安装Docker 指定安装位置 默认双击程序就开始安装了,要安装在指定位置…

iOS P8证书推送测试

最近在配合服务端人员调试相关的 APNS auth key 推送的问题,相比于苹果的P12证书的推送,P8证书的推送显得方便很多,P8的优势在于简单,安全 容易生成 最重要的是不会过期。 现在我们来看下测试具体流程: 方法一 地址…

ESP-DL部署魔改MobilenetV1—3. 模型部署

在完成模型训练和模型量化后,就可以开始我们的模型部署了。这部分的关键在于Model类中层的初始化以及build和call的实现。 环境依赖 esp-idf > 5.0esp-dl 模型定义 在模型定义时,我们需要用到量化时输出的层信息、cat_vs_dog_coefficient.hpp&…

分析源码学习c++(srs中http客户端)

文章目录 背景基础知识c标准库虚函数虚函数使用方法 虚析构函数 HTTP客户端使用方法TCP传输层分析使用方法结构分析连接函数读写函数 协议层分析初始化函数发送请求响应数据解析 背景 通过阅读源码,编写分析笔记来学习C是一种非常有效且深入的方法,能帮助…

论文解读 | ACL2024 Outstanding Paper:因果指导的主动学习方法:助力大语言模型自动识别并去除偏见...

点击蓝字 关注我们 AI TIME欢迎每一位AI爱好者的加入! 点击阅读原文观看作者直播讲解回放! 作者简介 孙洲浩,哈尔滨工业大学SCIR实验室博士生 概述 尽管大语言模型(LLMs)展现出了非常强大的能力,但它们仍然…

数据源10min自动断开连接导致查询抛异常(未获取可用连接)

由于个人能力有限,本文章仅仅代表本人想法,若有不对请即时指出,若有侵权,请联系本人。 1 背景 工作中引入druid来管理数据源连接,由于数据源每隔10分钟强制管理空闲超过10分钟的连接,导致每隔10分钟出现1…

Web攻防之应急响应(二)

目录 前提 🍔学习Java内存马前置知识 内存马 内存马的介绍 内存马的类型众多 内存马的存在形式 Java web的基础知识: Java内存马的排查思路: 🍔开始查杀之前的需要准备 1.登录主机启动服务器 2.生成jsp马并连接成功 …

【Linux】多线程:线程概念,线程与进程的区别与联系,多线程相较于多进程的优势

目录 一、进程基本属性回顾 二、线程概念 三、操作系统为什么要引入线程—多进程和多线程的区别 为什么多线程比多线程调度效率更快? 四、线程的优点 五、线程的缺点 六、线程异常 一、进程基本属性回顾 在学习线程之前,我们先来回顾一下进程的基…

注册安全分析报告:熊猫频道

前言 由于网站注册入口容易被黑客攻击,存在如下安全问题: 暴力破解密码,造成用户信息泄露短信盗刷的安全问题,影响业务及导致用户投诉带来经济损失,尤其是后付费客户,风险巨大,造成亏损无底洞…

【Rust】007-包管理与模块管理

【Rust】007-包管理与模块管理 文章目录 【Rust】007-包管理与模块管理一、包管理器:Cargo1、简介Cargo 官方文档仓库 2、项目初始化3、写一个小程序任务目标寻找合适的库添加库到我们的项目中代码实现cargo run运行 二、模块管理1、概述2、文件作为模块第一步&…

前端模拟面试:如何检查JavaScript对象属性是否存在?

你正在参加一场关键的前端开发面试,面试官提出了一个经典的JavaScript问题:“在JavaScript中,如何检查对象是否包含某个属性?请你详细介绍几种不同的方法,并解释它们的区别。” 这个问题不仅考验你对JavaScript的基础掌…

怎样在公司将手机屏幕(远程)投屏到家里的大电视上?

我不住家里,前几次回去都会替老爸老妈清理手机。这两个星期没空回去,老爸吐槽手机用几天就又卡了,其实就是清理一些手机缓存的问题。 我说我远程控制他的手机,给他清理一下。他一听“控制”就不喜欢,说我大了&#xf…

sM4040B科学级显微制冷相机特性

sM4040B科学级显微制冷相机特性 sM4040B搭载了 GSENSE4040BSI 3.2 英寸图像传感器,针对传感器固有的热噪声,专门设计了高效制冷模块,使得相机传感器的工作温度比环境温度低达 35-40 度。针对制冷相机常见的低温结雾现象设计了防结雾机制&…

【Python百日进阶-Web开发-音频】Day707 - 时域处理 librosa.autocorrelate

文章目录 一、时域处理1.1 librosa.autocorrelate1.1.1 语法与参数1.1.2 例子1.1.2.1 计算完全自相关y1.1.2.2 计算长达 4 秒的起始强度自相关 一、时域处理 1.1 librosa.autocorrelate https://librosa.org/doc/latest/generated/librosa.autocorrelate.html 1.1.1 语法与参…

哪款宠物空气净化器能更好的清理浮毛?希喂、352、IAM测评分享

家里这三只可爱的小猫咪,已然成为了我们生活中不可或缺的家庭成员,陪伴我们度过了说长不长说短不短的五年时光。时常庆幸自己当年选择养它们,在我失落的时候总能给我安慰,治愈我多时。 但这个温馨的背后也有一点小烦恼&#xff0…

记一种常用的实时数据同步方案:Canal+Kafka+Flume

记一种常用的实时数据同步方案:CanalKafkaFlume 在当今数据驱动的业务环境中,数据同步是确保系统间数据一致性的关键环节。一种高效、稳定且可扩展的数据同步方案对于支撑企业的数据处理和分析需求至关重要。本文将介绍一种结合了Canal、Kafka和Flume的…

IOS 20 发现界面(UITableView)歌单列表(UICollectionView)实现

发现界面完整效果 本文实现歌单列表效果 文章基于 IOS 19 发现界面(UITableView)快捷按钮实现 继续实现发现界面歌单列表效果 歌单列表Cell实现 实现流程: 1.创建Cell,及在使用UITableView的Controller控制器上注册Cell&#x…

STM32F103C8----GPIO(跟着江科大学STM32)

一,GPIO简介 GPIO(General Purpose Input Output)通用输入输出口 可配置为8种输入输出模式 引脚电平:0V~3.3V(0V),部分引脚可容忍5V 输出模式下可控制端口输出高低电平,用以驱动…

AI-Talk开发板之LED

一、说明 AI-Talk开发板上有一颗用户LED,连接在CH32 PA2管脚,低电平亮,高电平灭。 相关电路图如下: 需要提前给CH32V003烧录特定的固件才能将CH32作为CSK6011A的exmcu,参考AI-Talk开发板更新CH32固件。​​​​​​​…

如何查看Mac的处理器架构‌‌是ARM还是x86

‌通过命令行查看Mac的处理器架构‌‌ 打开终端(Terminal)。输入命令 uname -m 并回车。如果输出结果是 arm64,则表示你的Mac使用的是ARM架构;如果输出结果是 x86_64,则表示你的Mac使用的是x86架构。 如图&#xff1…