(图片来源网络,侵删)
8.1 软件系统的质量属性1.基本概念软件系统的质量属性是一个系统的可测量或可测试的属性,基于软件生命周期可分为:开发期质量属性和运行期的质量属性1)开发期质量属性:易理解、可扩展、可重用、可测试、可维护、可移植2)运行期质量属性:性能、安全、可靠性、可用性、鲁棒性、可伸缩性、互操作性2.面向架构评估的质量属性1)性能 (Performance)如响应时间、吞吐量等提升策略:优先级队列、增加计算资源、减少计算开销、引入并发机制、采用资源调度等2)安全性 (Security)如保密性、完整性、不可抵赖性、可控性设计策略:入侵检测、用户认证、用户授权、追踪审计3)可用性 (Availability)是系统能够正常运行的时间比例经常用两次故障之间的时间长度或在出现故障时系统能够恢复正常的速度来表示如故障间隔时间设计策略:心跳、Ping/Echo、冗余、选举4)可靠性(Reliability)是软件系统在应用或系统错误面前,在意外或错误使用的情况下维持软件系统的功能特性的基本能力可靠性是最重要的软件特性,通常用来衡量在规定的条件和时间内,软件完成规定功能的能力可靠性通常用平均失效等待时间 (Mean Time To Failure,MTTF) 和平均失效间隔时间 (Mean Time Between Failure,MTBF) 来衡量在失效率为常数和修复时间很短的情况下, MTTF 和 MTBF几乎相等可靠性可以分为两个方面:1)容错:错误发生时确保系统正确的行为,并进行内部“修复”2)健壮性:错误发生时保证软件按照某种已经定义好的方式终止执行设计策略:心跳、Ping/Echo、冗余、选举5)功能性是系统能完成所期望的工作的能力6)可修改性是指能够快速地以较高的性价比对系统进行变更的能力包含以下4个方面:(1)可维护性 (Maintainability): 这主要体现在问题的修复上,在错误发生后“修复”软件系统(2)可扩展性 (Extendibility):新特性来扩展软件系统(3)结构重组 (Reassemble)(4)可移植性 (Portability)设计策略:接口实现分类、抽象、信息隐藏7)可变性是指架构经扩充或变更而成为新架构的能力8)互操作性程序和用其他编程语言编写的软件系统的交互3.质量属性的场景描述1)刺激源:生产该刺激的主体2)刺激:刺激3)环境:刺激发生的条件4)制品:被刺激的对象5)响应:刺激后的采取的行动6)响应度量:对响应度量8.2 系统架构评估系统架构评估是在对架构分析、评估基础上、对架构策略选取进行决策1.重要概念1)敏感点实现质量目标应注意的点,是一个或多个构件对特性2)权衡点影响多个质量属性的敏感度3)风险承担者或利益相关人影响架构或被架构影响的群体4)场景确定架构评估目标的交互机制一般采用刺激、环境和影响m描述1.评估的方法:1)基于调查问卷和检查表方式(人的主观)2)基于场景方式(架构权衡分析法(ATAM)、软件架构分析方法(SAAM))3)基于度量的方式(建立质量属性和度量的映射原则、从软件架构中获取度量信息、分析推导出系统的质量属性)2.SAAM1)三个输入:问题描述、需求说明、架构描述2)过程:场景开发、架构描述、单个场景评估、场景交互评估、总体评估3.ATAM以质量属性为核心,主要对性能、可靠性、安全性、可修改性进行评价和折中四个阶段:1)演示和介绍介绍ATAM方法、介绍业务驱动因素、介绍要评估的架构2)调查与分析确定架构方法、生成质量属性效用树、分析架构方法(调查架构方法、创建分析问题、分析问题的答案、找出风险、非风险、敏感点和权衡点)3)测试阶段将头脑风暴的优先列表和质量属性效用树中获取的优先方案进行比较4)报告报告ATAM给利益相关者5.成本效益分析法6.其他方法例题:1.质量属性效用树按图填空
0 评论