欢迎来到天天文库
浏览记录
ID:44399491
大小:226.00 KB
页数:79页
时间:2019-10-21
《软件质量保证84975new》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、第二部分第8章软件质量保证厦门大学软件学院林坤辉第8章软件质量管理8.1质量的概念8.1.1如何描述质量词典对质量的定义是:①典型的或本质的特征;②事物固有的或区别于其他事物的特征或本质;③优良或出色的程度。CMM对质量的定义是:①一个系统、组件或过程符合特定需求的程度;②一个系统、组件或过程符合客户或用户的要求或期望的程度。可以这样理解软件质量:软件质量是许多质量属性的综合体现,各种质量属性反映了软件质量的方方面面。人们通过改善软件的各种质量属性,从而提高软件的整体质量.软件的质量属性很多,如:正确性、精确性,健壮
2、性、可靠性、容错性、性能、易用性、安全性、可扩展性、可复用性、兼容性、可移植性、可测试性、可维护性、灵活性等。8.1.2十大软件质量因素有必要对质量属性做些分类和整合。质量属性可分为两大类:“功能性”与“非功能性”,后者有时也称为“能力”(Capability)。功能性质量因素:正确性,健壮性,可靠性非功能性质量因素:性能,易用性,清晰性,安全性,可扩展性,兼容性,可移植性8.1.3软件质量要素什么是软件质量要素?(1)从技术角度讲,对软件整体质量影响最大的那些质量属性才是质量要素;(2)从商业角度讲,客户最关心的、能成为
3、卖点的质量属性才是质量要素。在根据对象的可度量特征考察一个对象时,可以有以下两种不同的质量:设计质量和符合质量。设计质量:是指设计者为一件产品规定的特征。材料等级、耐久性、及性能的规约都属于设计质量。如果产品能够依照规约进行制造,则产品的设计质量便会提高。符合质量:是指在制造过程中符合设计规格的程度。同样,符合程度越高,符合质量也就越高。在软件开发时,设计质量包括系统的需求、规约和设计。符合质量则主要关注实现问题。如果实现了符合设计、得到的系统满足系统需求和性能目标,则符合质量较高.对于一个特定的软件而言,我们要首先判断:
4、什么是质量要素,才能给出提高质量的具体措施;而不是一股脑地想把所有的质量属性都做好;否则不仅做不好,还可能得不偿失。1)正确性正确性是指软件按照需求正确执行任务的能力。“正确性”的语义涵盖了“精确性”。正确性无疑是第一重要的软件质量属性。技术评审和测试的第一关都是检查工作成果的正确性。机器不会主动欺骗人,软件运行出错通常都是人造成的,所以不要找借口埋怨机器有毛病。2)健壮性健壮性是指在异常情况下,软件能够正常运行的能力。正确性描述软件在需求范围之内的行为,而健壮性描述软件在需求范围之外的行为。开发者往往把异常情况错当成正常
5、情况而不作处理,结果降低了健壮性。健壮性有两层含义:一是容错能力,二是恢复能力。从语义上理解,恢复不及容错那么健壮。Unix容错能力很强,可惜不好用。Windows容错能力较差,但是恢复能力很好,而且很好用。占了90%的操作系统市场。用户才不管正确性与健壮性的区别,反正软件出了差错都是开发方的错。所以提高软件的健壮性也是开发者的义务。3)可靠性可靠性是指在一定的环境下,在给定的时间内,系统不发生故障的概率。可靠性本来是硬件领域的术语。比如某个电子设备在刚开始工作时挺好的,但由于器件在工作中其物理性质会发生变化(如发热),慢
6、慢地系统的功能或性能就会失常。所以一个从设计到生产完全正确的硬件系统,在工作中未必就是可靠的。软件在运行时不会发生物理性质的变化,人们常以为如果软件的某个功能是正确的,那么它一辈子都是正确的。可是我们无法对软件进行彻底地测试,无法根除软件中潜在的错误。平时软件运行得好好的,说不准哪一天就不正常了,如有千年等一回的“千年虫”问题,司空见惯的“内存泄露”、“误差累积”问题等等。软件可靠性分析通常采用统计方法,遗憾的是目前可供第一线开发人员使用的成果很少见,大多数文章限于理论研究。口语中的可靠性含义宽泛,几乎囊括了正确性、健壮性
7、。只要人们发现系统有毛病,便归结为可靠性差。从专业角度讲,这种说法是确切的。软件可靠性问题主要是在编程时候埋下的祸害(很难测试出来),应当提倡规范化程序设计,预防可靠性祸害。时隐时现的错误一般都属于可靠性问题,纠错的代价很高。例如当维护人员十万火急地赶到现场时,错误消失了;等维护人员回家后,错误又出现了。可靠性的简单度量是“平均失败间隔时间”(MTBF),其中:MTBF=MTTF+MTTR(MTTF和MTTR分别是“平均失败时间”和“平均修复时间”的首字母缩写)。许多研究人员认为MTBF是一个远比“缺陷数/KLOC”更为有
8、用的度量指标。简而言之,最终用户关心的是失败,而不是总缺陷数。由于一个程序中包含的每个缺陷所具有的失败率不同,总缺陷数难以表示系统的可靠性.我们必须开发一个“可用性”度量。软件可用性是指在某个给定时间点上程序能够按照需求执行的概率。其定义为:可用性=MTTF/(MTTF+MTTR)×100%MTBF可靠
此文档下载收益归作者所有