第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个阶段。

相关推荐
桦说编程21 分钟前
Java 中如何创建不可变类型
java·后端·函数式编程
IT毕设实战小研24 分钟前
基于Spring Boot 4s店车辆管理系统 租车管理系统 停车位管理系统 智慧车辆管理系统
java·开发语言·spring boot·后端·spring·毕业设计·课程设计
wyiyiyi1 小时前
【Web后端】Django、flask及其场景——以构建系统原型为例
前端·数据库·后端·python·django·flask
阿华的代码王国2 小时前
【Android】RecyclerView复用CheckBox的异常状态
android·xml·java·前端·后端
Jimmy2 小时前
AI 代理是什么,其有助于我们实现更智能编程
前端·后端·ai编程
AntBlack2 小时前
不当韭菜V1.1 :增强能力 ,辅助构建自己的交易规则
后端·python·pyqt
bobz9653 小时前
pip install 已经不再安全
后端
寻月隐君3 小时前
硬核实战:从零到一,用 Rust 和 Axum 构建高性能聊天服务后端
后端·rust·github
Pitayafruit5 小时前
Spring AI 进阶之路03:集成RAG构建高效知识库
spring boot·后端·llm
我叫黑大帅5 小时前
【CustomTkinter】 python可以写前端?😆
后端·python