十五、系统质量属性和架构评估
1,质量属性
软件系统属性包括功能属性和质量属性
架构的基本需求就是关注软件系统质量属性。
为了精确、定量地表达系统的质量属性,通常会采用质量属性场景的方式进行描述。在确定软件系统架构,精确描述质量属性场景后,就需要对系统架构进行评估。软件系统架构评估是在对架构分析、评估的基础上,对架构策略的选取进行决策。它也可以灵活地运用于软件架构评审等工作。
软件系统质量属性(QualityAttribute)是一个系统的可测量或者可测试的属性,用来描述系统满足利益相关者需求的程度。简单来说,软件系统质量属性是指软件系统满足用户需求的程度,是衡量软件系统质量的重要指标。
分为开发期质量属性和运行期质量属性:
开发期质量属性(关注者是开发者):易理解性、可拓展性(增加新的功能)、可重用性(重用软件系统或某一部分的难易程度)、可测试性、可维护性、可移植性(转移新环境)
运行期质量属性(关注者是开发者):性能(速度、吞吐量、容量)、安全性、可伸缩性(增加服务器)、互操作性(和其它系统数据交换调用)、可靠性(一段时间无故障)、可用性(受到问题的恢复可用能力)、鲁棒性(故障下运行的能力,健壮性或容错性)
架构评估的质量属性:
1,性能:系统的响应能力。响应时间、吞吐量
设计策略:优先级队列、增加计算资源、加入并发机制
2,可靠性:不发生故障的能力。MTBF(平均故障间隔时间)=MTTF(平均无故障时间)+MTTR(平均故障修复时间)
设计策略:心跳、ping/Echo、冗余、选举
3,可用性:系统处于可操作的时间比例。(选不出来选可用)
设计策略:心跳、ping/Echo、冗余、选举。
4,安全性:保密性、完整性、不可抵赖性、可控性。
设计策略:入侵检测、用户认证、用户授权、追踪审计
5,可修改性。以更小的代价变更系统
设计策略:接口-实现分离、抽象、信息隐蔽
6,功能性;完成期望工作的能力。
7,可变性(可拓展性):增加功能的能力。
8,互操作性:和其它系统数据交换调用的能力。
9,易用性:用户界面交互使用的难度。
质量属性场景:
刺激源(谁)
刺激(做什么)
环境(在什么场景下)
制品(对哪个功能和模块)
响应(得到什么反馈)
响应度量(对反馈进行度量)
在双11, 大量用户 对 网站 产生 访问(添加订单)得到 网站快速响应(通过负载均衡) 监测指标:服务器资源利用率、加载时间
在环境下,刺激源 对 制品 产生 刺激 得到 响应, 对响应度量。
2,架构评估
敏感点:为了实现某一特定的质量属性,一个或者多个构件所具有的特性
权衡点:是影响多个质量属性的特性,是多个质量属性的敏感点
软件架构评估是在架构设计之前,系统设计之后,因此与设计、实现、测试都没有关系。
评估的目的是为了评估所采用的架构是否能解决软件系统需求,有时还需要针对是否满足质量属性需求。
系统架构评估的三种方式:
1,基于调查问卷的方式:要求评估人员对领域和架构具有一定的了解
2,基于度量的方式;要求评估人员对建构的技术细节和度量标准有一定的了解。(数据呈现)
3,基于场景的方式:场景是从风险承担者的角度对与系统交互的简单描述。(场景模拟。4+1视图中的场景)
SAAM(基于场景的架构分析方法) 非功能质量属性的分析方法。架构描述:功能、结构、分配.主要分析可修改性
SAAM的输入:问题描述、需求声明、架构描述 评估过程:场景开发、架构描述、单个场景评估、场景交互和总结评估。
ATAM(架构权衡分析法) 一种系统架构评估方法,针对性能、可用性、安全性、可修改性评估权衡。整个评估过程强调属性(质量属性)作为架构评估的核心概念
ATAM分为四个主要的活动领域:场景和需求收集、体系结构视图和场景实现、属性模型构造和分析、架构评审与折中。
ATAM采用质量属性效用数方法评估
效用树的结构包括:树根-质量属性-属性分类-质量属性场景(通常不超过50个)(叶子节点)
优先级对(重要度、难易度)H/M/L eg: (H,L)
ATAM的阶段解释:
1描述和介绍阶段
2调查和分析阶段 产出质量属性效应树
3测试阶段 验证架构是否满足质量属性需求
4报告阶段 评估的结果、提供改进建议,并为决策者提供决策依据
CBAM(成本效益分析方法)ATAM的补充,投资收益率来分析
3,中间件
中间件:位于客户机/服务器的操作系统之上,管理计算机资源和网络通信。
中间件是基于分布式处理的软件,最突出的特点是其网络通信功能
分类;
数据库访问中间件ODBC JDBC
远程过程调用(RPC):
面向消息中间件(MOM):RabbitMQ
分布式对象中间件:OMG的CORBA Sun的RNI/EJB Microsoft的DCOM
事务中间件(TPM):事务处理监控器
评论交流
欢迎留下你的想法