系统架构师备考日记(3.4)
第8章 系统质量属性与架构评估篇(三)——软件系统质量属性
考点
单项选择题(约占 8~15 分)和下午案例题(25 分),论文
软件系统属性包括功能属性和质量属性,软件架构重点关注的是质量属性。架构的基本需求是在满足功能属性的前提下,关注软件系统质量属性。在精确描述质量属性场景后,就需要对系统架构进行评估,软件系统架构评估是在对架构分析、评估的基础上,对架构策略的选取进行决策。
一、质量属性概念
软件系统质量属性是一个系统的可测量或者可测试的属性,用来描述系统满足利益相关者的需求程度。基于软件系统的生命周期,可将软件系统的质量属性分为开发期质量属性和运行期质量属性。
1.1开发期质量属性
(1)易理解性:指设计被开发人员理街的难易程度 (2)可拓展性:适应新需求或需求变化而增加新功能的能力,也称灵活性 (3)可重用性:重用软件系统或某一部分的难易程度 (4)可测试性:对软件测试以证明其满足需求规范的难易程度 (5)可维护性:当需要修改缺陷、增加功能、提高质量属性时,识别修改点并实施修改的难易程度。 (6)可移植性:将软件系统从一个运行环境转移到另一个不同的运行环境的难易程度。
1.2运行期质量属性
(1)性能:及时提供相应服务的能力,如速度、吞吐量和容量等 (2)安全性:同时兼顾向合法用户提供服务以及阻止非授权使用的能力 (3)可伸缩性:当用户数和数据量增加时,软件系统维持高服务质量的能力。 (4)互操作性:与其他系统交换数据和相互调用服务的难易程度 (5)可靠性:在一定的时间内持续无故障运行的能力 (6)可用性:在一定时间内,正常工作的时间所占比例。 (7)鲁棒性:非正常情况下仍能够正常运行的能力,也叫健壮性或容错性
二、面向架构评估的质量属性
1、性能:单位时间内所处理事务的数量或完成某个事务所需时间来定量表示 2、可靠性:平均失效等待时间和平均失效间隔时间来衡量 (1)容错:发生错误时确保系统正确的行为,并进行内部修复 (2)健壮性:保护应用程序不受错误使用和错误输入影响 3、可用性:能够正常运行的时间比例。常用两次故障的时间间隔或者出现故障时系统能够恢复正常的速度来表示 4、安全性:系统向合法用户提供服务并阻止非授权用户使用,又分为机密性、完整性、不可否认性和可控制性等 5、可修改性: (1)可维护性:局部修复使故障对架构的负面影响最小化 (2)可拓展性:使用松耦合的构件,在不影响构件的情况家替换构件 (3)结构重组:重新组织系统的构件和构件之间的关系 (4)可移植性:使软件系统适用于不同环境 6、功能性:完成所期望的功能 7、可变形:架构扩充或变更新架构的能力 8、互操作性:与其他系统或自身环境的相互作用
三 、质量属性场景描述
描述质量属性的手段,由刺激源、刺激、环境、制品、响应、响应度量组成 (1)刺激源 某个生成该刺激的实体(人、计算机系统或其他) (2)刺激 该刺激是当刺激到达系统时需要考虑的条件 (3)环境 该刺激在某些条件内发生。当激励发生时,系统可能处于过载、运行或其他情况 (4)制品 某个制品被刺激。这可能是整个系统,也可能是系统的一部分 (5)响应 该响应是在激励到达后采取的行动 (6)响应度量 当响应发生时,应当能够以某种方式对其进行度量,以对需求进行测试
总结
该章节需要记住常用的软件质量属性,可用性、性能、可修改性、安全性等重要质量属性,以及实现手段,会在论文和案例分析中用到