第8章 系统质量属性与架构评估篇(二)——软件系统质量属性

系统架构师备考日记(3.6)

第8章 系统质量属性与架构评估篇(二)------软件系统质量属性

考点

单项选择题(约占 8~15 分)和下午案例题(25 分),论文


系统架构评估是在对架构分析基础上,对架构策略的选取进行决策。 系统架构评估方法分为三类: 基于问卷调查或检查表:缺点是很大程度上依赖于评估人员的主观判断 基于场景的方式:架构权衡分析法(ATAM)、软件架构分析方法(SAAM) 基于度量的评估方法:先建立质量属性和度量之间的映射原则,然后从软件架构文档中获取度量信息,最后根据映射原则分析推导出系统的质量属性。

一、系统架构评估中的重要概念

(1)敏感点 一个或多个构件或多个构件之间的特性,实现质量目标时该注意什么。 (2)权衡点 是影响多个质量属性的特性,多个质量属性的敏感点。 (3)风险承担者(利益相关人) 影响架构和被架构影响的群体 (4)场景 为精确的得出具体质量目标而采用的机制称为场景,一般采用刺激、环境和响应三方面来进行描述

二、系统架构评估方法

2.1 软件架构分析方法SAAM

卡耐基梅隆大学软件工程研究所的Kazman等人1983年提出的一种粉功能质量属性的架构分析方法,最初用于比较不同软件体系架构,以分析系统架构的可修改性,后来证明也可用于可移植性、可扩充性。

  • SAAM主要输入是问题描述、需求声明和架构描述
  • SAAM分析评估架构的过程包括5个步骤,场景开发、架构描述、单个场景评估、场景交互和总体评估

2.2 架构权衡分析方法ATAM

主要针对性能、实用性、安全性和可修改性。 ATAM被分为4个主要的活动领域(阶段):场景和需求收集、架构视图和场景实现、属性模型构造和分析、折中,整个评估过程强调以属性作为架构评估的核心概念。

ATAM方法采用效用树来对质量属性进行分类和优先级排序。效用树的结构包括:树根-质量属性-属性分类-质量属性场景(叶子节点)

2.3 成本效益分析法CBAM

分为整理场景→对场景进行求精→确定场景的优先级→分配效用→架构策略涉及哪些质量属性及响应级别→使用内插法确定"期望的"质量属性响应级别的效用→计算各架构策略的总收益→根据受成本限制影响的 ROI 选择架 构策略。

2.4 其他评估方法

  • SAEM
  • SAABNet
  • SACMM
  • SASAM
  • ALRRA
  • AHP
  • COSMIC+UML

三、ATAM方法架构评估实践

分为4个基本阶段:演示、调查和分析、测试、报告

3.1 阶段1------演示

(1)介绍ATAM 评估过程描述,领导者说明评估中使用的分析技术以及评估的预期结果 (2)介绍业务驱动因素 着重于系统的业务视角,提供了有关系统功能、主要利益相关方、业务目标和系统其他限制 (3)介绍要评估的体系结构 侧重体系结构、时间可用性以及体系结构的质量要求。

3.2 阶段2------调查和分析

(1)确定架构方法 涉及能够理解系统关键需求的关键架构方法 (2)生成质量属性效用树 确定系统最重要的质量属性,并确定优先次序和完善。 (3)分析体系结构方法

  1. 调查架构方法
  2. 创建分析问题
  3. 分析问题的答案
  4. 找出风险、非风险、敏感点和权衡点

3.3 阶段3------测试

(1)头脑风暴和优先场景 将头脑风暴的优先列表与生成质量属性效用树中获取的先进方案进行比较。 (2)分析架构方法

3.4 阶段4------报告ATAM

将一下发现呈现给利益相关者

  • 一种效用树;
  • 一组生成的场景;
  • 一组分析问题;
  • 一套确定的风险和非风险;
  • 确定的架构方法;

总结

该章节主要记住常用的两种架构分析方法:SAAM、 ATAM 。着重背ATAM的4个阶段。

相关推荐
雷渊3 分钟前
mysql-EXPLAIN执行计划分析
java·后端·面试
用户990450177800922 分钟前
JeecgFlow之Camunda开发脚手架介绍,让天下没有难用的工作流
后端
敖行客 Allthinker22 分钟前
Go 语言中 panic 和 recover 的代价:性能与设计的权衡
开发语言·后端·golang
谦行1 小时前
前端视角 Java Web 入门手册 4.4:Web 开发基础—— Listener
java·后端
非优秀程序员2 小时前
使用Python给自己网站生成llms.txt
人工智能·后端·架构
尘鹄2 小时前
一文讲懂Go语言如何使用配置文件连接数据库
开发语言·数据库·后端·golang
benben0442 小时前
Django小白级开发入门
后端·python·django
qw9493 小时前
SpringBoot3—场景整合:环境准备
java·后端
孟and平5 小时前
Flask 打包为exe 文件
后端·python·flask
大只因bug7 小时前
基于Django的协同过滤算法养老新闻推荐系统的设计与实现
后端·python·django·协同过滤算法推荐系统·新闻推荐网站系统·养老新闻推荐系统·个性化新闻推荐网站系统