分析大型软件系统的经典方法

本文涉及的产品
Serverless 应用引擎 SAE,800核*时 1600GiB*时
EMR Serverless StarRocks,5000CU*H 48000GB*H
应用实时监控服务ARMS - 应用监控,每月50GB免费额度
简介: 【6月更文挑战第19天】本文介绍ATAM(架构权衡分析方法)是一种评估大型软件系统架构的工具,着重考虑性能、可用性、安全性和可修改性等质量属性的交互。ATAM提供了一种结构化方法,确保在设计早期就能理解和平衡各种质量属性,以优化系统整体性能。

1 简介

假设您计划开发一套系统,自己也认为相当有信心,但是有时候我们需要更深入的量化它,如何评估这种“相当不错”的感觉?而一个大型系统可能更加难以决定。

特别地,大型软件系统的质量属性主要是由系统的软件体系结构决定。

也就是说,在大型系统,性能、可用性和可修改性等质量的实现更多地取决于整体软件架构。

这是相对比于代码级实践而言的,比如语言选择、详细设计、算法、数据结构、测试等。

这并不是说选择算法或数据结构并不重要,而是这种选择对系统成功的重要性不如它的整体软件结构,它的架构。

因此,它给我们提供的兴趣是在建造之前就尝试分析和确定是否系统确实可以满足其期望的品质。我们可以开始这条漫漫长路。

treeoflife6.png

2 大型软件的质量分析方法

传统方法往往单独分析这些属性,但ATAM强调属性间的权衡和交互。通过需求收集、架构描述、属性模型分析和决策制定等四个阶段。

ATAM帮助识别敏感点(影响特定质量的组件)和权衡点(影响多质量属性的点),并管理风险。效应树用于可视化和分析这些关系。

虽然分析特定质量属性的方法已经存在,但是这些分析通常是单独执行的。
实际上,一个系统的交互性能会影响可修改性。

比如可用性会影响安全性。安全性会影响性能。这一切又将影响成本,等等。

虽然经验丰富的设计师知道这些权衡存在,但是还没有原则性的方法用于表征它们,特别是表征这些属性之间的交互。

出于这个原因,软件架构通常设计为“黑盒”的过程。

很多属性需要权衡 - 如果系统是要构建的,质量权衡将不能避免。但它们是通常是以临时方式构建的。

想象一下,一位画师被赋予一个 38 种色彩的图形均衡器,其中均衡器的每个控件都有效果与其他控件的某些子集交互。

但是工程师没有获得任何分析仪,并被要求设置色彩以获得最佳保真度。显然,这样的需要是站不住脚的。

实际上软件架构中的软件系统拥有的更多超过38个色彩的独立但相互作用的变量需要“调整”和“权衡”。

设计人员已经使用了一些技术来尝试降低选择架构以满足广泛的质量属性的风险。
编程方面的最新活动:设计模式和架构风格就是一个例子。

设计师可能会选择一种图案,因为它“有利于可移植性“,另一个是因为它”易于修改”。
但对模式的分析并没有比这更深入。

这些模式的用户不知道如何做到更易用,或者可修改或更健壮的架构,直到它被构建出来。

3 控制开发质量 架构权衡分析方法

架构权衡分析方法(Architecture Tradeoff Analysis Method, ATAM) ATAM是一种系统架构评估方法,
主要在系统开发之前,针对性能、可用性、安全性和可修改性等质量属性进行评价和折中。

ATAM 可以分为 4个主要的活动阶段包括:

需求收集、架构视图描述、属性模型构造和分析、架构决策与折中,

整个评估过程强调以属性作为架 构评估的核心概念。现代的 ATAM 方法采用效用树对质量属性进行分类和优先级排序,其基本活动结构如下图。

image.png

用 ATAM 方法评估软件体系结构分为演示调查和分析、测试和报告 ATAM。

4 敏感点

实现质量目标时应注意的点,它是一个或多个构件(或构件之间的关系)的特性。

为了实现某种特定质量属性,一个或多个构件所具有的特定。

关键:对查询请求处理时间的要求将影响系统的数据传输协议和处理过程的设计。

5 权衡点

指影响多个质量特征,并对多个质量特征都是敏感点的质量特征 。
改变业务数据编码方式对系统性能和安全产生影响。
影响多个质量属性的敏感点。

6 风险

不以标准术语出现。某些做法有一些隐患可能导致一些问题。
对系统某业务逻辑的描述尚未达成共识,可能导致部分业务功能模块重复,影响系统可修改性。

7 非风险

可行的做法。比如 业务响应小于30ms,则请求响应超时设定为1秒是可以接受的。

8 效应树和执行步骤

一个评估过程包括九大步骤如下,

描述ATAM方法;
描述业务动机;
描述架构;
确定架构方法;
生成质量效应树;
分析架构方法;
讨论场景和对场景分级;
分析架构方法;
描述评估结果。 

一个典型的效应树结构示例如下:

image.png

9 总结

本文简单介绍了架构权衡分析方法(ATAM)基本概念,它是一种易于理解的结构化技术,评估设计中固有的属性权衡。

这种方法是为开发流程提供了一种有原则的方法来评估软件架构在多个竞争质量方面的适用性。

属性:其经典内容包括

可修改性、安全性、性能、可用性

这些属性相互作用:经常改进一个属性代价将使一个或多个其他情况恶化,这将在此论文中得到了证明。

ATAM是螺旋模型的设计:遵循假设候选架构之一通过分析和风险缓解,达成精细的架构。

目录
相关文章
|
26天前
|
Java 关系型数据库 开发者
Java编程设计原则:构建稳健、可维护的软件基石
Java编程设计原则:构建稳健、可维护的软件基石
|
12月前
|
机器学习/深度学习 存储 监控
转:排列组合算法在监控软件中的优势、复杂性与应用场景
排列组合算法在监控软件中可能用于处理一些组合与排列问题,例如处理多个元素的组合方式或排列顺序。它在一些特定场景下具有一定的优势和适用性,但也要注意其复杂性。
78 0
|
存储 消息中间件 监控
大型系统应用边界设计原则与实践
大型系统应用边界设计原则与实践
大型系统应用边界设计原则与实践
|
机器学习/深度学习 Oracle 关系型数据库
华为团队开发组合贝叶斯优化框架,进行抗体计算机设计
华为团队开发组合贝叶斯优化框架,进行抗体计算机设计
122 0
|
XML 设计模式 JSON
领域驱动设计总结——如何设计大型系统
本文为领域驱动设计系列总结的第五篇,主要对领域驱动设计概念做个介绍,本系列领域驱动设计总结主要是在Eric Evans 所编写的《领域驱动设计》 一书的基础上进行归纳和总结。本文主要介绍在领域驱动设计中如何设计大型系统。
167 0
|
数据库 数据库管理
【软件系统分析与设计】
【软件系统分析与设计】
98 0
|
Web App开发 缓存 负载均衡
理解大型分布式网站你应该知道这些概念
I/O优化 增加缓存,减少磁盘的访问次数。 优化磁盘的管理系统,设计最优的磁盘方式策略,以及磁盘的寻址策略,这是在底层操作系统层面考虑的。 设计合理的磁盘存储数据块,以及访问这些数据库的策略,这是在应用层面考虑的。
954 0
《面向对象分析与设计》一2.1 分析面临的主要问题
本节书摘来自华章出版社《面向对象分析与设计》一书中的第2章,第2.1节,作者 麻志毅,更多章节内容可以访问云栖社区“华章计算机”公众号查看
1132 0
|
SQL 分布式计算 MaxCompute
分布式编程模型的设计与演化
本文主要内容是分布式编程模型设计与演化,具体分为分布式编程模型的背景、MapReduce编程模型、关系型数据编程模型、分布式图计算模型分布式编程未来展望五部分。
6259 0