应用架构的评估方法
1 简介
假设您计划开发一套系统,自己也认为相当有信心,但是有时候我们需要更深入的量化它,如何评估这种“相当不错”的感觉?而一个大型系统可能更加难以决定。
特别地,大型软件系统的质量属性主要是由系统的软件体系结构决定。
也就是说,在大型系统,性能、可用性和可修改性等质量的实现更多地取决于整体软件架构。
这是相对比于代码级实践而言的,比如语言选择、详细设计、算法、数据结构、测试等。
这并不是说选择算法或数据结构并不重要,而是这种选择对系统成功的重要性不如它的整体软件结构,它的架构。
因此,它给我们提供的兴趣是在建造之前就尝试分析和确定是否系统确实可以满足其期望的品质。我们可以开始这条漫漫长路。
2 大型软件的质量分析方法
虽然分析特定质量属性的方法已经存在,但是这些分析通常是单独执行的。
实际上,一个系统的交互性能会影响可修改性。
比如可用性会影响安全性。安全性会影响性能。这一切又将影响成本,等等。
虽然经验丰富的设计师知道这些权衡存在,但是还没有原则性的方法用于表征它们,特别是表征这些属性之间的交互。
出于这个原因,软件架构通常设计为“黑盒”的过程。
很多属性需要权衡 - 如果系统是要构建的,质量权衡将不能避免。但它们是通常是以临时方式构建的。
想象一下,一位画师被赋予一个 38 种色彩的图形均衡器,其中均衡器的每个控件都有效果与其他控件的某些子集交互。
但是工程师没有获得任何分析仪,并被要求设置色彩以获得最佳保真度。显然,这样的需要是站不住脚的。
实际上软件架构中的软件系统拥有的更多超过38个色彩的独立但相互作用的变量需要“调整”和“权衡”。
设计人员已经使用了一些技术来尝试降低选择架构以满足广泛的质量属性的风险。
编程方面的最新活动:设计模式和架构风格就是一个例子。
设计师可能会选择一种图案,因为它“有利于可移植性“,另一个是因为它”易于修改”。
但对模式的分析并没有比这更深入。
这些模式的用户不知道如何做到更易用,或者可修改或更健壮的架构,直到它被构建出来。
3 控制开发质量 架构权衡分析方法
架构权衡分析方法(Architecture Tradeoff Analysis Method, ATAM) ATAM是一种系统架构评估方法,
主要在系统开发之前,针对性能、可用性、安全性和可修改性等质量属性进行评价和折中。
ATAM 可以分为 4个主要的活动阶段包括:
需求收集、架构视图描述、属性模型构造和分析、架构决策与折中,
整个评估过程强调以属性作为架 构评估的核心概念。现代的 ATAM 方法采用效用树对质量属性进行分类和优先级排序,其基本活动结构如下图。
用 ATAM 方法评估软件体系结构分为演示调查和分析、测试和报告 ATAM。
3.1 敏感点
实现质量目标时应注意的点,它是一个或多个构件(或构件之间的关系)的特性。
为了实现某种特定质量属性,一个或多个构件所具有的特定。
关键:对查询请求处理时间的要求将影响系统的数据传输协议和处理过程的设计。
3.2 权衡点
指影响多个质量特征,并对多个质量特征都是敏感点的质量特征 。
改变业务数据编码方式对系统性能和安全产生影响。
影响多个质量属性的敏感点。
3.3 风险
不以标准术语出现。某些做法有一些隐患可能导致一些问题。
对系统某业务逻辑的描述尚未达成共识,可能导致部分业务功能模块重复,影响系统可修改性。
3.4 非风险
可行的做法。比如 业务响应小于30ms,则请求响应超时设定为1秒是可以接受的。
4 效应树和执行步骤
一个评估过程包括九大步骤如下,
描述ATAM方法;
描述业务动机;
描述架构;
确定架构方法;
生成质量效应树;
分析架构方法;
讨论场景和对场景分级;
分析架构方法;
描述评估结果。
一个典型的效应树结构示例如下:
5 总结
本文简单介绍了架构权衡分析方法(ATAM)基本概念,它是一种易于理解的结构化技术,评估设计中固有的属性权衡。
这种方法是为开发流程提供了一种有原则的方法来评估软件架构在多个竞争质量方面的适用性。
属性:其经典内容包括
可修改性、安全性、性能、可用性
这些属性相互作用:经常改进一个属性代价将使一个或多个其他情况恶化,这将在此论文中得到了证明。
ATAM是螺旋模型的设计:遵循假设候选架构之一通过分析和风险缓解,达成精细的架构。
- 点赞
- 收藏
- 关注作者
评论(0)