软件质量属性(Quality Attribute)指的是一个系统的可度量、可测试的属性,这些属性会影响到系统的运行时行为、系统设计方式以及用户的体验等。质量属性的优劣程度反映了设计是否成功以及软件系统的整体质量
属于非功能性需求,并不被功能所决定
质量属性之间可能相互抑制,要保证高优先级的质量属性
下图为质量属性需求说明:
举例说明:
在生活中,常见的驾驶加速操作就可用质量属性场景描述,如下图所示:
刺激源是司机,刺激是踩油门,环境是超车、爬坡,制品是动力系统,响应是发动机转速提高,响应度量是时速表
正确性是软件按照需求正确执行任务的能力
①可用性公式表示
定义了系统正常运转并发挥功能的时间比例
通过总的系统失败时间在预定义周期中的百分比来衡量
可用性与系统故障及其后果相关,可表示为:
其中,MTBF为平均故障间隔时间,MTTR为平均修复时间
如下为MTBF的计算方法:
例题:
现在要求求可用性的大小:
如图可知,在运行期间一共宕机12次,也就是说出了12次的故障,总故障时间为112.5小时,所以MTTR(平均修复时间)=9.4,MTBM为总的运行时间除以故障的次数也就是平均故障间隔时间,等于683.4
②可用性涉及的关键问题及解决策略
略
③可用性的质量属性场景
④场景样例
在正常操作期间,进程收到了一个未曾预料到的消息。该进程通知操作人员收到了这一消息,并继续操作(没有停机)
根据质量属性场景对该情况进行分析:
刺激源为系统外部,刺激是未曾预料到的消息,制品是进程,环境是正常操作,响应是通知操作人员继续操作,响应度量是没有停机
①可管理性是指查看和修改指定系统或软件状态的能力,它描述了系统管理员管理应用程序的难易程度
②可管理性的四个方面
系统配置
系统优化
系统诊断
系统防护
③可管理性的质量属性场景
①可靠性函数
θ可以是MTBF或MTTF(mean time to failure,平均失效前时间)
根据概率论,可靠度有以下性质:
R(0)=1表示产品在开始处于良好状态
R(t)是时间t的单调递减函数,即t增大,R(t)减小,当时间t充分大时可靠度的值趋于零
0≤R(t)≤1,即无论任何时刻,可靠度的值永远介于0和1之间。
例题:
时间统一换算为小时,t的单位要和MTBF的单位对应
②软件缺陷、软件错误、软件故障
③可用性和可靠性比较
可靠性通常低于可用性,因为可靠性要求系统在[0,t]的整个时间段内正常(必须是连续)运行
可用性大于或等于可靠性,对于可用性,要求就没有那么高,系统可以发生故障,然后在时间段[0,t]内修复。修复以后,只要系统能够正常运行,它仍然计入系统的可用性
④可靠性的质量属性场景
⑤影响可靠性的关键问题
略
①可伸缩性定义
可伸缩性是一种衡量软件系统适应系统规模(用户数量、数据量、网络节点)增长的能力,目标是在负载增加情况下维护系统的可用性、可靠性和性能
②垂直伸缩、水平伸缩
③可伸缩性的质量属性场景
①安全性定义
安全性指系统防止恶意行为或系统设计的使用方式之外行为,以及防止信息泄露和丢失的能力
②安全性的质量属性场景
安全性场景样例
一个经过身份验证的个人,试图从外部站点修改系统数据;系统维持了一个审核跟踪,并在一天内恢复了正确的数据
刺激源是通过了身份验证的个人,刺激是试图修改系统数据,环境是在正常操作下,响应是系统保持审核跟踪,响应度量是在一天内恢复校正数据
③影响安全性的关键问题
略
①可支持性定义
可支持性是系统在不正常工作的情况下提供信息以确定和解决问题的能力
②可支持性涉及的关键问题
缺乏调试信息
缺乏故障排查工具
缺乏跟踪工具
缺乏健康监控
③可支持性的质量属性场景
①可测试性定义
软件可测试性是指通过测试(通常是基于运行的测试)揭示软件缺陷的容易程度
②可测试性的质量属性场景
可测试场景样例
单元测试人员在一个已完成的系统构件上执行单元测试,该构件为控制其行为和观察其输出提供了一个接口,在3小时内测试了85%的路径
刺激源是单元测试人员、刺激是执行单元测试、制品是系统构件、环境是在构件完成时、响应是构件具有控制行为的接口,并且构件的输出是可观察的、响应度量是在3小时内测试了85%的路径
①易用性定义
易用性是一种有关用户体验(User Experience)质量的描述
易用性包含:
略