【系统架构】-如何评估软件架构
概念
敏感点:一个或多个构件(和/或构件之间的关系)的特性
权衡点:影响多个质量属性的特性,是多个质量属性的敏感点
风险点:指架构设计中潜在的、存在问题的架构决策所带来的隐患
非风险点:指不会带来隐患,
质量属性
主要有性能
、可靠性(容错、健壮性)、可用性
、安全性
、可修改性
(可维护性、可扩展性、结构重组、可移植性)、功能性、可变性、互操作性
评估方法
- 基于调查问卷(检查表)的方式
- 基于度量的方式
- 基于场景的方式
几种方式的比较
评估方式 | 调查问卷 | 检查表 | 场景 | 度量 |
---|---|---|---|---|
通用性 | 通用 | 特定领域 | 特定系统 | 通用或特定领域 |
评估者对架构的了解程序 | 粗略了解 | 无限制 | 中等了解 | 精确了解 |
实施阶段 | 早 | 中 | 中 | 中 |
客观性 | 主观 | 主观 | 较主观 | 较客观 |
基于调查问卷(检查表)
该方式的关键是要设计好问卷或检查表,它充分利用系统相关人员的经验和知识,获得对架构的评估,其缺点是很大程度上依赖于评估人员的主观推断。
基于度量
该方式建立在软件架构度量的基础上,首先要建立质量属性和度量之间的映射原则,即确定怎么样从度量结果推出系统具有什么样的质量属性;然后从软件架构文档中获取度量信息;最后根据映射原则分析推到出系统的质量属性。它提供更为客观和量化的质量评估,但对评估人员和适用技术有较高要求。
基于场景
该方式由SEI首先提出并应用在架构权衡分析法(ATAM)和软件架构分析法(SAAM)中,它是通过分析软件架构对场景(也就是对系统的使用或修改活动)的支持程度,从而判断该架构对这一场景所代表的质量需求的满足程度。
架构分析法-SAAM
SAAM最初用于分析架构可修改性,后扩展到其他质量属性。
架构权衡分析法-ATAM
ATAM在SAAM的基础上发展起来,主要针对性能、实用性、安全性和可修改性,在系统开发之前,对这些质量属性进行评价和折中。
成本效益分析法-CBAM
CBAM是在ATAM上构建的,用来对架构设计决策的成本和收益进行建模。CBAM协助项目关系人根据其投资汇报(ROI)选择架构策略,其在ATAM结束时开始,实际上使用了ATAM评估的结果。
1、整理场景
2、对场景进行求精
3、确定场景的优先级
4、分配效用
5、形成策略-场景-响应级别的对应关系
6、使用“内插法”确定期望的质量属性响应级别的效用
7、计算架构策略的总收益
8、根据受成本限制影响的ROI选择架构策略
作者热门文章推荐:
Java面试题专栏:
阅读量超高的JAVA面试题集中营
《从Java面试题看源码》-LongAdder、LongAccumulator是个什么东西?
《从Java面试题来看源码》-LinkedBlockingQueue 源码分析
《从Java面试题看源码》-有哪些并发队列?及ConcurrentLinkedQueue 源码分析
《从Java面试题看源码》-看完Kafka性能优化-让你吊打面试官
《从Java面试题看源码》-默认线程池阻塞队列为什么用LinkedBlockingQueue
【系统架构】-如何评估软件架构相关推荐
- [架构之路-109]-《软考-系统架构设计师》-软件架构设计-2-软件架构概述:架构风格
引言 建筑风格指建筑设计中在内容和外貌方面所反映的特征,主要在于建筑的平面布局.形态构成.艺术处理和手法运用等方面所显示的独创和完美的意境.建筑风格因受时代的政治.社会.经济.建筑材料和建筑技术等的制 ...
- 软考-系统架构设计师(软件架构风格)
分类 名称 概念 典型应用 数据流风格(所有的数据按照流的形式在执行过程中前进-流水线) 批处理序列 批处理风格的每一步处理都是独立的,并且每一步都是顺序执行的.只有当前一步处理完,后一步处理才能开始 ...
- 【系统架构师】软件架构设计——2需求与质量属性
软件架构设计--需求与质量 软件的属性包括功能属性和质量属性,但是,软件架构重点关注的是质量属性.因为,在大量可能的结构中,可以使用不同的结构来实现同样的功能性,即功能性在很大程度上是独立于结构的,架 ...
- 系统架构设计总结—软件架构风格
1.概念: 软件架构设计的一个核心问题是能否使用重复的架构模式,即能否达到架构级的软 件重用.也就是说,能否在不同的软件系绕中使用同一架构.软件架构风格是描述某一 特定应用领域中系统组织方式的惯用模式 ...
- 服务器系统架构的评估,系统架构师:性能评估
2.5.4性能评估 性能评估是为了一个目的,按照一定的步骤,选用一定的度量项目,通过建模和实 验,对一个系统的性能进行各项检测,对测试结果作出解释,并形成一份文档的技术. 性能评估的一个目的是为性能的 ...
- 【软考——系统架构师】软件架构设计
- 系统架构设计师考试题库重点案例:软件架构设计与评估(效用树)
题: 某单位为了建设健全的公路桥梁养护管理档案,拟开发一套公路桥梁在线管理系统.在系统的需求分析与架构设计阶段,用户提出的需求.质量属性描述和架构特性如下: (a) 系统用户分为高级管理员.数据管理员 ...
- 【系统架构设计师】软考高级职称,一次通过,倾尽所有,2019年下半年系统架构设计师考试论文真题(论软件系统架构评估)
[系统架构设计师]软考高级职称,一次通过,倾尽所有,看完这篇就够了,学习方法和技巧这里全都有. 2019年下半年系统架构设计师考试论文真题(论软件系统架构评估) 论软件系统架构评估 对于软件系统,尤其 ...
- 系统架构师学习笔记_第五章(下)_连载
5.3 软件架构风格 体系结构设计 核心目标是 重复的体系结构模式,体系结构级的 软件重用. 5.3.1 软件架构风格概述 一个体系结构 定义 一个词汇表 和 一组约束.词汇表中包含 构件和连接件 ...
- 2015年系统架构师考试题详解
原文地址为: 2015年系统架构师考试题详解 考试科目一:综合知识 某航空公司机票销售系统有n个售票点,该系统为每个售票点创建一个进程Pi(i=1,2,-,n)管理机票销售.假设Tj(j=1,2,-, ...
最新文章
- XML 特殊字符处理和 CDATA
- 移动端像素概念,viewport,适配
- ubuntu18.04 更改apt源
- 《程序员代码面试指南》第八章 数组和矩阵问题 在行列都排好序的矩阵中找数...
- Java面向对象编程(基础部分)
- Java基础知识——Java常用类的使用
- 【JAVA】Maven profiles控制多环境数据源日志打包(转载)
- 基于JAVA+SpringBoot+Mybatis+MYSQL的电影院管理系统
- Objective-C Memory Management Being Exceptional 异常处理与内存
- Ubuntu 16.04安装Docker-Compose 与 Can't connect to docker from docker-compose
- 解决zabbix中文乱码问题
- ssh连接服务器协议错误,Xmanager发生SSH协议错误怎么办
- SQL SERVER插件之SQLPrompt 激活使用
- Silverlight 2.5D RPG游戏技巧与特效处理:纸娃娃系统
- php+实现群发微信模板消息_php实现微信模板消息推送
- Android:手机号码归属地查询
- s3c2440的时钟体系
- Java将字符串中的中文数字转化成阿拉伯数字或阿拉伯数字转化成中文数字
- DPDK应用示例指南简介(汇总)
- vue,的M、V、VM分别代表什么
热门文章
- 想学好前端 H5 CSS3 的小朋友们康康我~
- SOPHON BM1684芯片解码性能以及支持的文件格式
- 浏览器访问不了localhost
- ResNet DenseNet(原理篇)
- conda查看版本包命令
- 2021春深入理解计算机系统大作业---hello的一生
- 内网渗透(四十六)之横向移动篇-使用系统漏洞ms17010横向移动
- 数据中心服务器机柜内的信息点数
- 关于字符串旋转问题的一些心得
- ERR! configure error gyp ERR! stack Error: Can't find Python executable python