软件架构评估

目录

1.软件架构评估的方法

1.基于调查问卷

2.基于度量

3.基于场景

1.架构权衡分析法

2.软件架构分析法

2.软件架构评估的相关概念

1.质量属性

1.性能

2.可靠性

3.可用性

4.安全性

5.可修改性

2.敏感点,风险点

1.软件架构评估的方法
软件架构评估有三种方式:基于调查问卷,基于度量,基于场景

1.基于调查问卷
是指组织相关人员进行评估,这种方式最简单易行,但是主观性强。

2.基于度量
强调量化指标,最客观,但是这种方式实施难度大,因为需要评估者对系统非常熟悉,不然很难量化清楚各项指标。

3.基于场景
筛选出系统的关键场景,根据系统在不同场景中的表现进行评估,这种方式客观程度介于2者之间,这也是目前较为流行的结构评估方法。

基于场景的方式主要有三种:架构权衡分析法(ATAM,Architecture Tradeoff Analysis Method),软件架构分析法(SAAM,Software Architecture Analysis Method),成本效益分析法(CBAM)。前2种方式用得比较多。

1.架构权衡分析法
架构权衡分析法(ATAM,Architecture Tradeoff Analysis Method)是在SAAM上发展而来。核心是结合质量属性效用树对系统进行评价,确定风险点、敏感点、权衡点,并对系统架构做出决策和折中。整个评估过程强调以质量属性作为评估核心。

其过程如下

1描述ATAM方法->2描述商业动机->3描述架构方法->4确定架构方法->5生成质量属性效用树->6分析架构方法->7讨论确定场景优先级->8分析架构方法->9表述结果

ATAM分成4个阶段

描述和介绍阶段(包含1,2,3)
调查和分析阶段(包含4,5,6)
测试阶段(7,8)
报告阶段(9)
在描述和介绍阶段,由系统架构师向大家介绍ATAM方法,然后由产品经理和大家描述商业动机,最后由架构师向大家描述系统架构,系统分为几层,表现层,业务层,数据层等系统架构方面的东西。

在调查和分析阶段,先确定了系统的架构,然后生成质量属性效用树,然后通过这些场景分析系统的风险点,敏感点,权衡点。

测试阶段,我们根据需要分析的系统的特性,确定场景的优先级,由高到低是什么,例如性能,可用性,可修改性,安全性。每一个质量属性都很重要,但是根据系统特点需要对质量属性有优先级排序,所以我们在系统设计时有权衡和折中,架构权衡分析法的权衡就在此体现。

确定优先级之后,我们需要阐述对每个质量属性都采用什么方案,例如性能,优先级管理,资源仲裁。可用性,ping/echo,冗余。

报告阶段,把评估的过程和结果整理成文档,其中包括质量属性效用树,风险点,敏感点,权衡点,以及每次会议的会议纪要和最后的架构决策。

描述和介绍阶段参与者是架构师(1,3)和产品经理(2),调查和分析阶段参与者是评估小组,设计人员,管理人员和客户代表。

现在新的定义是分成如下4个阶段

场景和需求收集
架构视图和场景实现
质量模型构造和分析
质量模型折中
2.软件架构分析法
软件架构分析法分为6个步骤

形成场景
描述架构
对场景进行分类和确定优先级
对场景进行单个评估
评估场景的相互作用
形成总体评价
2.软件架构评估的相关概念
1.质量属性
质量属性包含性能,可靠性,可用性,安全性,可修改性。

1.性能
指系统的响应能力

代表参数:吞吐量,并发数等

提升策略有

优先级策略
资源调度
并发编程
增加服务器
分布式缓存
读写分离
分库分表
2.可靠性
包括容错性和健壮性,在异常或错误使用情况下维持系统软件功能的基本特性,例如空值引发空指针异常,不应该出现在系统中。

提升策略有

拦截:提升系统可靠性可以采取参数校验,判空校验,合法枚举值校验等,提升业务可靠性可以增强业务校验,例如活动有效期校验,库存校验等。
告警:在发生异常时,及时感知并立即告警,例如数据库失败等。
3.可用性
系统能正常运行的时间比例。例如系统可用性99.9999%。

代表参数:故障间隔时间

提升策略有

冗余+故障转移:是只多台机器部署同一份代码,都可以对外提供服务,故障转移是只在主服务器发生故障时从服务器自动切换成主服务器,继续提供服务。
降级策略:指系统无法承受压力时,选择性关闭非关键的功能,把资源提供给最关键的服务。
延时策略:指削峰,例如在秒杀系统的时候使用消息队列。
隔离策略:应用部署在不同的物理机,不同机房,资源不会相互影响。
心跳线
ping
4.安全性
系统向合法用户提供服务的同时阻止非授权用户企图的能力。

提升策略:

追踪审计
用户认证
用户授权
限制访问
5.可修改性
系统是否能够以较高的性价比对系统进行变更的能力,其包括可扩展性,可维护性,结构重组,可移植性。

提升策略:

信息隐藏
抽象
2.敏感点,风险点
敏感点:是实现某种特定的质量属性,为一个或多个构建所具有的特性 .影响单个质量属性
权衡点:影响多个质量属性的特性,涉及多个敏感点,有好的,有坏的,所以有了权衡的概念
例如加密就会影响到提高安全性和降低性能,它就属于一个权衡点
风险点:系统设计中潜在的隐患,例如需求中有个地方没有达成一致,这有可能在后面带来隐患,这就是个风险点。
非风险点:没有风险的点。
————————————————
版权声明:本文为CSDN博主「q495673918」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/q495673918/article/details/127056373

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值