质量属性分析
质量属性分析
邵文
(软件工程系1805-3班)
摘 要:通常,描述一个物体会从它的各个方面来描述,比如长度、材质、大小等。这些方面都是这个物体的属性。对于软件或者系统来说质量属性就是它的可测量或可测试的属性。本文对软件设计过程中六类系统质量属性进行探讨,并分析其战术措施和相应质量属性的解决对策,以提高软件生产率、保障软件的质量、改善软件维护等不断涌现的问题。
关键词:软件质量属性 分析 质量属性战术
Abstract: usually, describing an object will be described from its various aspects, such as length, material, size, etc. These are the attributes of the object. For software or system, quality attribute is its measurable or testable attribute. This paper discusses six kinds of system quality attributes in the process of software design, and analyzes their tactical measures and corresponding quality attribute solutions, in order to improve software productivity, guarantee software quality, improve software maintenance and other emerging problems.
1.引言
关于质量属性的分类和表述没有一个统一的答案,但大体上可以分为三大类:系统的质量属性;手架构影响的商业属性;与架构本身相关的质量属性。常见系统质量属性可以分为六类:可用性;可修改性;性能;安全性;可测试性;易用性。本文对六类系统质量属性进行分析,深刻理解其定义及侧重点,分析各类系统质量属性战术,给出针对解决方案。为以后的项目的各个部分为提供更深刻的理解和帮助。
2.质量属性理解
可用性:指系统正常运行时间的比例,是通过两次故障之间的时间长度或在系统崩溃情况下能够恢复正常运行的速度来衡量的。通常我们用如下公式来量化描述系统的可用性。系统可用性a = [平均正常工作时间 / ( 平均正常工作时间 + 平均修复时间 ) ] * 100%
可修改性:在一个可运行软件中,为了满足用户需求、环境改变或软件错误发生时,进行相应修改所做的努力程度。可维修性反映了在用户需求改变或软件环境发生变更时,对软件系统进行相应修改的容易程度。一个易于维护的软件系统也是一个易理解、易测试和易修改的软件,以便纠正或增加新的功能,或允许在不同软件环境上进行操作。
性能:指系统的响应能力,即对外部刺激(事件)做出反应时所需要的时间或在某段时间内所处理的事件个数。性能反应的是系统的响应能力,表现在三个方面,速度、吞吐量和持续高速性。
安全性:衡量系统在向合法用户正常提供服务的情况下,阻止非授权使用的能力。
可测试性:可测试性的响应度量处理的是测试在发现缺陷方面的效率以及想要达到某个期望的覆盖范围,需要用多长时间进行测试。
易用性:关注的是对用户来说完成某个期望任务的难易程度和系统所提供的用户支持种类。
3.质量属性战术
可用性战术分析:阻止错误发展为故障,或者至少能够把错误的影响限制在一定范围内,从而使系统恢复成为可能。可用性战术可分为三种:错误检测、错误恢复、错误预防。错误检测常用方法有命令/响应机制、心跳、异常机制。错误恢复则包含表决、主动冗余、被动冗余、备件、Shadow操作、状态再同步、检查点/回滚。错误预防可采用从服务中删除、事务、进程监视器。
可修改性战术分析:可修改性战术分为三类。局部化变更:局部化意味着实现“模块化”思想,也就是设计模式中的“单一职责原则”的设计原则。防止连锁反应:我们平时编程,无论是写函数还是写类,都需要被其他类还是函数调用,修改此函数或类就会影响到调用他的函数,这就是连锁反应。防止连锁反应的方法有信息隐藏、维持现有的接口、限制通信路径、使用仲裁者。
性能战术分析:性能战术的目标是对一定的时间限制内到达系统的事件生成一个响应,这些事件可以是消息到达、定时器到时,系统状态的变化。性能战术包括三个分类。资源需求,分析影响性能的资源因素;资源管理,提高资源的应用效率;资源仲裁,解决资源的争用。
安全性战术分析:提高安全性的方法主要分为三大类:抵抗攻击,检测攻击,从攻击中恢复
抵抗攻击:防止攻击队系统和数据造成影响乃至破坏;检测攻击:尽早发现正在进行地攻击,确保能够及时作出回应如关闭主机等。系统监测一般是软件和人工结合,既有自动检测系统检测异常,也有安全专家人工复核或检查;从攻击中恢复:在被攻击并产生了影响后,尽快地从异常情况中恢复、
可测试性战术分析:可测试性目标是发现错误。管理系统的输入输出,将接口与实现分离允许在缺少被占位组件时,对系统的剩余部分进行测试。有了标准的接口,进行有效的隔离,能够极大程度的减少测试员的工作量,模块化测试,单元测试极大地减少了测试过程中用例的原则。设置内部监视,通过内部监视器组件可以维持状态、性能负载、容量、安全性或其他可通过接口访问的信息。当监视状态被激活时可以记录事件。
易用性战术分析:易用性战术可分为运行时战术和设计时战术。运行时战术包括用户主动,系统主动,混合主动。设计时战术包含将用户接口与应用的其余部分分离开来。单独维护用户接口代码将会把变更局部化在某个地方。
4.总结
质量属性是影响质量的关键因素,是对质量的描述。质量属性直接影响着用户对软件产品的满意度。深入了解和分析这些质量属性,无论是对日后软件开发和系统架构还是自身对软件体系架构的理解都有极大的帮助。