本问主要讨论系统质量的实现 ,系统质量包括:可用性,可修改性,性能,安全性,可测试性,易用性六大质量属性
质量属性的实现必须在设计、实现到部署的整个过程中考虑,没有任何一个质量属性是完全依赖于设计的,它也不完全依赖于实现和部署。
实践中的质量属性场景
可用性:
可用性与系统出现故障和处理结果有关;系统可用性的定义为:平均正常工作时间/(平均正常工作时间+平均修复时间)
可修改性:
可修改性是有关变更成本的问题。系统的某些部分很容易发生变化;可以在编译期间,构建期间,配置设置期间或执行期间改变,变更还可以由开发人员,系统用户,系统管理员进行。
性能:
性能与时间有关,中断,消息,用户请求或时间已到,系统必须对其做出反应。性能场景首先以到达系统的对某种服务的请求开始,满足该请求需要消耗的资源。在这一请求到达时,系统能同时为其他请求提供服务。
安全性:
安全性时衡量系统向合法用户提供服务的同时,阻止非授权使用的能力。视图突破安全防线的行为是攻击行为。攻击源可能是人,也可能是另一个系统。
可测试性:
软件的可测试性是指通过测试揭示软件缺陷的容易程度。在开发设计良好的系统的成本中,至少有40%是用在了测试上。可测试性的一般场景是关注一个单元测试的性能。
易用性:
易用性关注的是对用户来说完成某个期望任务的容易程度和系统所提供的用户支持的种类。
可以将易用性分为如下几个方面:
学习系统的特性:如果用户不熟悉某个特定的系统或该系统的某一个方面,那么,系统如何使学习任务变的容易
有效地使用系统:系统如何提高用户的操作效率
将错误的影响降到最低:系统怎样使用户犯的错误造成的影响最小
使系统适应用户的需求:用户(或系统本身)可以如何使用户的任务变得更轻松
提高自信和满意度:系统如何使用户确信采取了正确的行动
易用性所设计的用户操作总是在运行时或系统配置时发生。在此之前发生的任何操作都由开发人员执行,尽管用户也可能时开发人员,但即使由同一个人执行,我们也对这两个角色加以区分。