软件质量管理-第一章课件.ppt

上传人(卖家):晟晟文业 文档编号:4625903 上传时间:2022-12-26 格式:PPT 页数:46 大小:626.50KB
下载 相关 举报
软件质量管理-第一章课件.ppt_第1页
第1页 / 共46页
软件质量管理-第一章课件.ppt_第2页
第2页 / 共46页
软件质量管理-第一章课件.ppt_第3页
第3页 / 共46页
软件质量管理-第一章课件.ppt_第4页
第4页 / 共46页
软件质量管理-第一章课件.ppt_第5页
第5页 / 共46页
点击查看更多>>
资源描述

1、Page 1第一章第一章 软件质量管理问题概论软件质量管理问题概论目录目录1.引言引言 2.软件质量属性和质量要素软件质量属性和质量要素3.商业目标决定质量目标商业目标决定质量目标4.质量保证能够保证质量吗质量保证能够保证质量吗5.质量人员的状况质量人员的状况6.全面软件质量管理:模型全面软件质量管理:模型7.全面软件质量管理:制定质量计划全面软件质量管理:制定质量计划8.全面软件质量管理:技术评审全面软件质量管理:技术评审9.全面软件质量管理:软件测试全面软件质量管理:软件测试10.全面软件质量管理:过程检查全面软件质量管理:过程检查11.全面软件质量管理:缺陷跟踪工具全面软件质量管理:缺陷

2、跟踪工具参考书:软件工程与项目管理解析,林锐参考书:软件工程与项目管理解析,林锐 著,电子工业出版社,著,电子工业出版社,20031.引言引言 软件质量管理是充满争论的话题。被人们奉为软件质量管理圣经的软件质量管理是充满争论的话题。被人们奉为软件质量管理圣经的CMMCMM和和ISO9001ISO9001似乎并不奏效,现实和理想之间的差距太大。似乎并不奏效,现实和理想之间的差距太大。经典软件工程教科书以及经典软件工程教科书以及CMM和和ISO9001总是抛开商业目标谈质量总是抛开商业目标谈质量管理,本末倒置,纸上谈兵,误导了大量读者,所以质量管理才变管理,本末倒置,纸上谈兵,误导了大量读者,所以

3、质量管理才变得那么艰辛。世界上还没有万能的软件质量管理圣经,我们不要迷得那么艰辛。世界上还没有万能的软件质量管理圣经,我们不要迷信信CMMCMM和和ISO9000ISO9000。要多向有实战经验的同行专家请教,但是不要轻信要多向有实战经验的同行专家请教,但是不要轻信“纸上谈兵纸上谈兵”的的专家。专家。本文给出了一套实用主义的本文给出了一套实用主义的“全面软件质量管理全面软件质量管理”方法。方法。重要的理念:重要的理念:商业目标决定质量目标商业目标决定质量目标。提高软件质量的最终目的是。提高软件质量的最终目的是为了赢利,而不是创造完美无缺的产品。因此对于普通商业软件而为了赢利,而不是创造完美无缺

4、的产品。因此对于普通商业软件而言,并不是言,并不是“质量越高越好质量越高越好”,而是恰好让广大用户满意,并且将,而是恰好让广大用户满意,并且将提高质量所付出的代价控制在预算之内。提高质量所付出的代价控制在预算之内。2.软件质量属性和质量要素软件质量属性和质量要素 2.1 如何描述质量如何描述质量词典对质量的定义是:词典对质量的定义是:典型的或本质的特征;典型的或本质的特征;事物固有的或事物固有的或区别于其他事物的特征或本质;区别于其他事物的特征或本质;优良或出色的程度。优良或出色的程度。CMM CMM 对质量的定义是:对质量的定义是:一个系统、组件或过程符合特定需求的一个系统、组件或过程符合特

5、定需求的程度;程度;一个系统、组件或过程符合客户或用户的要求或期望的程一个系统、组件或过程符合客户或用户的要求或期望的程度。度。上述定义很抽象,人们看了准会一脸迷惘。就让我们用上述定义很抽象,人们看了准会一脸迷惘。就让我们用“人的健康人的健康”来类比解释软件质量。来类比解释软件质量。古时候人们以为长得结实、饭量大就是健康,这显然是不科学古时候人们以为长得结实、饭量大就是健康,这显然是不科学的。现代人总是通过考察多方面的生理因素来判断是否健康,的。现代人总是通过考察多方面的生理因素来判断是否健康,如测量身高、体重、心跳、血压、血液、体温等。如果上述因如测量身高、体重、心跳、血压、血液、体温等。如

6、果上述因素都合格,那么表明这人是健康的。如果某个因素不合格,则素都合格,那么表明这人是健康的。如果某个因素不合格,则表明此人在某个方面不健康,医生会对症下药。表明此人在某个方面不健康,医生会对症下药。通过类比,我们这样理解软件质量:通过类比,我们这样理解软件质量:软件质量是许多质量属性的软件质量是许多质量属性的综合体现,各种质量属性反映了软件质量的方方面面。人们通过改综合体现,各种质量属性反映了软件质量的方方面面。人们通过改善软件的各种质量属性,从而提高软件的整体质量(否则无从下善软件的各种质量属性,从而提高软件的整体质量(否则无从下手)。手)。2.软件质量属性和质量要素软件质量属性和质量要素

7、2.1 如何描述质量如何描述质量 软件的质量属性很多,如正确性、精确性,健壮性、可靠性、容错软件的质量属性很多,如正确性、精确性,健壮性、可靠性、容错性、性能、易用性、安全性、可扩展性、可复用性、兼容性、可移性、性能、易用性、安全性、可扩展性、可复用性、兼容性、可移植性、可测试性、可维护性、灵活性等。植性、可测试性、可维护性、灵活性等。上述这些质量属性之间上述这些质量属性之间“你中有我,我中有他你中有我,我中有他”,非常缠绵。如果,非常缠绵。如果开发人员每天要面对那么多的质量属性咬文嚼字,不久就会迂腐得开发人员每天要面对那么多的质量属性咬文嚼字,不久就会迂腐得像孔乙己,因此我们有必要对质量属性

8、做些分类和整合。质量属性像孔乙己,因此我们有必要对质量属性做些分类和整合。质量属性可分为两大类:可分为两大类:“功能性功能性”与与“非功能性非功能性”,后者有时也称为,后者有时也称为“能能力力”(CapabilityCapability)。)。2.软件质量属性和质量要素软件质量属性和质量要素 2.2 十大软件质量因素十大软件质量因素功能性质量因素:正确性,健壮性,可靠性功能性质量因素:正确性,健壮性,可靠性非功能性质量因素:性能,易用性,清晰性,安全性,可扩展性,非功能性质量因素:性能,易用性,清晰性,安全性,可扩展性,兼容性,可移植性兼容性,可移植性为什么是为什么是“十大十大”质量因素质量因

9、素 逐一解释逐一解释“十大十大”质量因素(参见高质量程序设计指南质量因素(参见高质量程序设计指南C+/C语言)语言)2.软件质量属性和质量要素软件质量属性和质量要素2.3 软件质量要素软件质量要素 什么是软件质量要素?什么是软件质量要素?(1)从技术角度讲,对软件整体质量影响最大的那些质量属性)从技术角度讲,对软件整体质量影响最大的那些质量属性才是质量要素;才是质量要素;(2)从商业角度讲,客户最关心的、能成为卖点的质量属性才)从商业角度讲,客户最关心的、能成为卖点的质量属性才是质量要素。是质量要素。对于一个特定的软件而言,我们首先判断什么是质量要素,才能给对于一个特定的软件而言,我们首先判断

10、什么是质量要素,才能给出提高质量的具体措施,而不是一股脑地想把所有的质量属性都做出提高质量的具体措施,而不是一股脑地想把所有的质量属性都做好,否则不仅做不好,还可能得不偿失。好,否则不仅做不好,还可能得不偿失。如果某些质量属性并不能产生显著的经济效益,我们可以忽略它们,如果某些质量属性并不能产生显著的经济效益,我们可以忽略它们,把精力用在对经济效益贡献最大的质量要素上。简而言之,只有质把精力用在对经济效益贡献最大的质量要素上。简而言之,只有质量要素才值得开发人员下功夫去改善。量要素才值得开发人员下功夫去改善。2.软件质量属性和质量要素软件质量属性和质量要素 2.4 正确性正确性正确性是指软件按

11、照需求正确执行任务的能力。正确性是指软件按照需求正确执行任务的能力。“正确性正确性”的语义的语义涵盖了涵盖了“精确性精确性”。正确性无疑是第一重要的软件质量属性。正确性无疑是第一重要的软件质量属性。技术评审和测试的第一关都是检查工作成果的正确性。技术评审和测试的第一关都是检查工作成果的正确性。机器不会主动欺骗人,软件运行出错通常都是人造成的,所以不要机器不会主动欺骗人,软件运行出错通常都是人造成的,所以不要找借口埋怨机器有毛病。找借口埋怨机器有毛病。2.软件质量属性和质量要素软件质量属性和质量要素2.5 健壮性健壮性 健壮性是指在异常情况下,软件能够正常运行的能力。健壮性是指在异常情况下,软件

12、能够正常运行的能力。正确性描述软件在需求范围之内的行为,而健壮性描述软件在需求正确性描述软件在需求范围之内的行为,而健壮性描述软件在需求范围之外的行为。范围之外的行为。开发者往往把异常情况错当成正常情况而不作处理,结果降低了健开发者往往把异常情况错当成正常情况而不作处理,结果降低了健壮性。壮性。用户才不管正确性与健壮性的区别,反正软件出了差错都是开发方用户才不管正确性与健壮性的区别,反正软件出了差错都是开发方的错。所以提高软件的健壮性也是开发者的义务。的错。所以提高软件的健壮性也是开发者的义务。健壮性有两层含义:一是容错能力,二是恢复能力。健壮性有两层含义:一是容错能力,二是恢复能力。从语义上

13、理解,恢复不及容错那么健壮。从语义上理解,恢复不及容错那么健壮。UnixUnix容错能力很强,可惜不好用。容错能力很强,可惜不好用。WindowsWindows容错能力较差,但是恢复能力很好,而且很好用。占了容错能力较差,但是恢复能力很好,而且很好用。占了90%90%的操作系统市场。的操作系统市场。2.软件质量属性和质量要素软件质量属性和质量要素 2.6 可靠性可靠性 可靠性是指在一定的环境下,在给定的时间内,系统不发生故障的概率。可靠性是指在一定的环境下,在给定的时间内,系统不发生故障的概率。可靠性本来是硬件领域的术语。比如某个电子设备在刚开始工作时挺好可靠性本来是硬件领域的术语。比如某个电

14、子设备在刚开始工作时挺好的,但由于器件在工作中其物理性质会发生变化(如发热),慢慢地系统的,但由于器件在工作中其物理性质会发生变化(如发热),慢慢地系统的功能或性能就会失常。所以一个从设计到生产完全正确的硬件系统,在的功能或性能就会失常。所以一个从设计到生产完全正确的硬件系统,在工作中未必就是可靠的。工作中未必就是可靠的。软件在运行时不会发生物理性质的变化,人们常以为如果软件的某个功软件在运行时不会发生物理性质的变化,人们常以为如果软件的某个功能是正确的,那么它一辈子都是正确的。可是我们无法对软件进行彻底地能是正确的,那么它一辈子都是正确的。可是我们无法对软件进行彻底地测试,无法根除软件中潜在

15、的错误。平时软件运行得好好的,说不准哪一测试,无法根除软件中潜在的错误。平时软件运行得好好的,说不准哪一天就不正常了,如有千年等一回的天就不正常了,如有千年等一回的“千年虫千年虫”问题,司空见惯的问题,司空见惯的“内存泄内存泄露露”、“误差累积误差累积”问题等等。问题等等。2.软件质量属性和质量要素软件质量属性和质量要素 2.6 可靠性可靠性 软件可靠性分析通常采用统计方法,遗憾的是目前可供第一线开发软件可靠性分析通常采用统计方法,遗憾的是目前可供第一线开发人员使用的成果很少见,大多数文章限于理论研究。口语中的可靠人员使用的成果很少见,大多数文章限于理论研究。口语中的可靠性含义宽泛,几乎囊括了

16、正确性、健壮性。只要人们发现系统有毛性含义宽泛,几乎囊括了正确性、健壮性。只要人们发现系统有毛病,便归结为可靠性差。从专业角度讲,这种说法是确切的。病,便归结为可靠性差。从专业角度讲,这种说法是确切的。时隐时现的错误一般都属于可靠性问题,纠错的代价很高。例如当时隐时现的错误一般都属于可靠性问题,纠错的代价很高。例如当维护人员十万火急地赶到现场时,错误消失了;等维护人员回家后,维护人员十万火急地赶到现场时,错误消失了;等维护人员回家后,错误又出现了。错误又出现了。软件可靠性问题主要是在编程时候埋下的祸害(很难测试出来),软件可靠性问题主要是在编程时候埋下的祸害(很难测试出来),应当提倡规范化程序

17、设计,预防可靠性祸害。应当提倡规范化程序设计,预防可靠性祸害。2.软件质量属性和质量要素软件质量属性和质量要素2.7 性能性能性能通常是指软件的性能通常是指软件的“时间时间-空间空间”效率,而不仅是指软件的运行效率,而不仅是指软件的运行速度。人们总希望软件的运行速度高些,并且占用资源少些。速度。人们总希望软件的运行速度高些,并且占用资源少些。既要既要马儿跑得快,又要马儿吃的少。马儿跑得快,又要马儿吃的少。性能优化的关键工作是找出限制性能的性能优化的关键工作是找出限制性能的“瓶颈瓶颈”,不要在无关痛痒,不要在无关痛痒的地方瞎忙乎。的地方瞎忙乎。例如在大学里当教师,光靠使劲讲课或者埋头做实验,职称

18、是例如在大学里当教师,光靠使劲讲课或者埋头做实验,职称是升不快的。有些人找到了突破口,一年之内升不快的。有些人找到了突破口,一年之内“造造”它几十篇文它几十篇文章,争取破格升副教授、教授。章,争取破格升副教授、教授。程序员可以通过优化数据结构、算法和代码来提高软件的性能。程序员可以通过优化数据结构、算法和代码来提高软件的性能。例如数据库程序的优化。例如数据库程序的优化。算法复杂度分析是很好的方法,可以达到算法复杂度分析是很好的方法,可以达到“未卜先知未卜先知”的功效。的功效。2.软件质量属性和质量要素软件质量属性和质量要素2.7 性能性能 性能优化就好像从海绵里挤水一样,你不挤,水就不出来,你

19、越挤性能优化就好像从海绵里挤水一样,你不挤,水就不出来,你越挤海绵越干。有些程序员认为现在的计算机不仅速度越来越高,而且海绵越干。有些程序员认为现在的计算机不仅速度越来越高,而且内存越来越大,因此软件性能优化的必要性下降了。这种看法是不内存越来越大,因此软件性能优化的必要性下降了。这种看法是不对的,殊不知随着机器的升级,软件系统也越来越庞大了和复杂了,对的,殊不知随着机器的升级,软件系统也越来越庞大了和复杂了,性能优化仍然大有必要。性能优化仍然大有必要。最具有代表性的是三维游戏软件,例如最具有代表性的是三维游戏软件,例如Delta ForceDelta Force、古墓古墓丽影、反恐精英等,如

20、果不对软件(关键是游戏引擎)做精丽影、反恐精英等,如果不对软件(关键是游戏引擎)做精益求精的优化,要想在一台普通的益求精的优化,要想在一台普通的PCPC上顺畅地玩游戏是不太可能的。上顺畅地玩游戏是不太可能的。2.软件质量属性和质量要素软件质量属性和质量要素2.8 易用性易用性易用性是指用户使用软件的容易程度。易用性是指用户使用软件的容易程度。现代人的生活节奏快,干啥事都想图个方便。所以把易用性作为重现代人的生活节奏快,干啥事都想图个方便。所以把易用性作为重要的质量属性对待无可非议。要的质量属性对待无可非议。导致软件易用性差的根本原因导致软件易用性差的根本原因:理工科大学教育存在缺陷:没有开设人

21、机工程学、美学、心理学理工科大学教育存在缺陷:没有开设人机工程学、美学、心理学这些必修课,大部分开发人员不知道如何设计易用的软件产品。这些必修课,大部分开发人员不知道如何设计易用的软件产品。开发人员犯了开发人员犯了“错位错位”的毛病:他以为只要自己用起来方便,用的毛病:他以为只要自己用起来方便,用户也就会满意。户也就会满意。软件的易用性要让用户来评价。当用户真的感到软件很好用时,一软件的易用性要让用户来评价。当用户真的感到软件很好用时,一股温暖的感觉油然而生,于是就用股温暖的感觉油然而生,于是就用“界面友好界面友好”、“方便易用方便易用”等词等词来评价软件产品。来评价软件产品。2.软件质量属性

22、和质量要素软件质量属性和质量要素2.9 清晰性清晰性 清晰意味者所有的工作成果易读、易理解,可以提高团队开发效率,清晰意味者所有的工作成果易读、易理解,可以提高团队开发效率,降低维护代价。降低维护代价。开发人员只有在自己思路清晰的时候才可能写出让别人易读、易理开发人员只有在自己思路清晰的时候才可能写出让别人易读、易理解的程序和文档。解的程序和文档。可理解的东西通常是简洁的。一个原始问题可能很复杂,但高水平可理解的东西通常是简洁的。一个原始问题可能很复杂,但高水平的人就能够把软件系统设计得很简洁。如果软件系统臃肿不堪,它的人就能够把软件系统设计得很简洁。如果软件系统臃肿不堪,它迟早会出问题。所以

23、简洁是人们对工作迟早会出问题。所以简洁是人们对工作“精益求精精益求精”的结果,而不的结果,而不是潦草应付的结果。与简洁对立的是是潦草应付的结果。与简洁对立的是“罗里罗嗦罗里罗嗦”。千万不要把在学校里千万不要把在学校里“造文章造文章”的手法用于开发产品!的手法用于开发产品!如果把文章写得很简洁,让人很容易理解,投稿往往中不了;如果把文章写得很简洁,让人很容易理解,投稿往往中不了;只有加上一些玄乎的东西,把本来简单的弄成复杂的,才会增加投只有加上一些玄乎的东西,把本来简单的弄成复杂的,才会增加投稿的命中率。稿的命中率。2.软件质量属性和质量要素软件质量属性和质量要素2.10 安全性安全性 这里安全

24、性是指信息安全,英文是这里安全性是指信息安全,英文是SecuritySecurity而不是而不是SafetySafety。安全性是指防止系统被非法入侵的能力,既属于技术问题又属于管安全性是指防止系统被非法入侵的能力,既属于技术问题又属于管理问题。理问题。信息安全是一门比较深奥的学问,其发展是建立在正义与邪恶的斗信息安全是一门比较深奥的学问,其发展是建立在正义与邪恶的斗争之上。这世界似乎不存在绝对安全的系统,连美国军方的系统都频争之上。这世界似乎不存在绝对安全的系统,连美国军方的系统都频频遭黑客入侵。如今全球黑客泛滥,真是频遭黑客入侵。如今全球黑客泛滥,真是“道高一尺,魔高一丈道高一尺,魔高一丈

25、”啊!啊!开发商和客户愿意为提高安全性而投入的资金是有限的,他们要考开发商和客户愿意为提高安全性而投入的资金是有限的,他们要考虑值不值得。虑值不值得。究竟什么样的安全性是令人满意的呢?究竟什么样的安全性是令人满意的呢?一般地,如果黑客为非法入侵花费的代价(考虑时间、费用、风一般地,如果黑客为非法入侵花费的代价(考虑时间、费用、风险等因素)高于得到的好处,那么这样的系统可以认为是安全的。险等因素)高于得到的好处,那么这样的系统可以认为是安全的。对于普通软件,并不一点要追求很高的安全性,也不能完全忽视对于普通软件,并不一点要追求很高的安全性,也不能完全忽视安全性,要先分析黑客行为。安全性,要先分析

26、黑客行为。2.软件质量属性和质量要素软件质量属性和质量要素2.11 可扩展性可扩展性 可扩展性反映软件适应可扩展性反映软件适应“变化变化”的能力。的能力。在软件开发过程中,在软件开发过程中,“变化变化”是司空见惯的事情,如需求、设计是司空见惯的事情,如需求、设计的变化,算法的改进,程序的变化等等。的变化,算法的改进,程序的变化等等。由于软件是由于软件是“软软”的,是的,是否它天生就容易修改以适应否它天生就容易修改以适应“变化变化”?关键要看软件的规模和复杂关键要看软件的规模和复杂性性如果软件规模很小,问题很简单,那么修改起来的确比较容易,如果软件规模很小,问题很简单,那么修改起来的确比较容易,

27、这时就无所谓这时就无所谓“可扩展性可扩展性”了。要是软件的代码只有了。要是软件的代码只有100100行,行,那么那么“软件工程软件工程”也就用不着了。也就用不着了。如果软件规模很大,问题很复杂,倘若软件的可扩展性不好,如果软件规模很大,问题很复杂,倘若软件的可扩展性不好,那么该软件就像用卡片造成的房子,抽出或者塞进去一张卡片那么该软件就像用卡片造成的房子,抽出或者塞进去一张卡片都有可能使房子倒塌。都有可能使房子倒塌。2.软件质量属性和质量要素软件质量属性和质量要素2.11 可扩展性可扩展性 现代软件产品通常采用现代软件产品通常采用“增量开发模式增量开发模式”,不断推出新,不断推出新版本,获取增

28、值利润。可扩展性越来越重要。可扩展性版本,获取增值利润。可扩展性越来越重要。可扩展性是系统设计阶段重点考虑的质量属性。是系统设计阶段重点考虑的质量属性。谈到软件的可扩展性,开发人员首先想到的是怎样提高谈到软件的可扩展性,开发人员首先想到的是怎样提高可扩展性,于是努力去设计很好的体系结构来提高可扩可扩展性,于是努力去设计很好的体系结构来提高可扩展性,却不考虑该不该做这件事。从商业角度考虑,如展性,却不考虑该不该做这件事。从商业角度考虑,如果某个软件将不断地推出新版本,那么可扩展性很重要。果某个软件将不断地推出新版本,那么可扩展性很重要。但是如果软件永远都不会有下个版本(一次性买卖),但是如果软件

29、永远都不会有下个版本(一次性买卖),那么根本无需提高可扩展性,何必自找苦吃呢!那么根本无需提高可扩展性,何必自找苦吃呢!2.软件质量属性和质量要素软件质量属性和质量要素2.12 兼容性兼容性兼容性是指不同产品(或者新老产品)相互交换信息的兼容性是指不同产品(或者新老产品)相互交换信息的能力。例如两个字处理软件的文件格式兼容,那么它们都能力。例如两个字处理软件的文件格式兼容,那么它们都可以操作对方的文件,这种能力对用户很有好处。可以操作对方的文件,这种能力对用户很有好处。兼容性的商业规则:弱者设法与强者兼容,否则无容身兼容性的商业规则:弱者设法与强者兼容,否则无容身之地;强者应当避免被兼容,否则

30、市场将被瓜分。之地;强者应当避免被兼容,否则市场将被瓜分。如果你如果你经常看香港拍的经常看香港拍的“黑帮黑帮”影片,你就很容易明白这个道理。影片,你就很容易明白这个道理。金山软件公司的金山软件公司的WPSWPS与微软的与微软的WordWord之争。之争。WPSWPS一定要与一定要与WordWord兼容,否则活不下去。但是兼容,否则活不下去。但是WordWord绝对不会与绝对不会与WPSWPS兼容,除非兼容,除非WPSWPS又在中国称老大。又在中国称老大。中国联通和中国移动的手机互联互通问题。(互联网中国联通和中国移动的手机互联互通问题。(互联网的价值与用户数量的平方成正比)的价值与用户数量的平

31、方成正比)2.软件质量属性和质量要素软件质量属性和质量要素2.13 可移植性可移植性 软件的可移植性指的是软件不经修改或稍加修改就可以运行于不同软件的可移植性指的是软件不经修改或稍加修改就可以运行于不同软硬件环境(软硬件环境(CPUCPU、OSOS和编译器)的能力,主要体现为代码的可移和编译器)的能力,主要体现为代码的可移植性。植性。编程语言越低级,用它编写的程序越难移植,反之则越容易。编程语言越低级,用它编写的程序越难移植,反之则越容易。这是因为,不同的硬件体系结构(例如这是因为,不同的硬件体系结构(例如Intel CPUIntel CPU和和SPARC CPUSPARC CPU)使用不同的

32、指令集和字长,而使用不同的指令集和字长,而OSOS和编译器可以屏蔽这种差异,和编译器可以屏蔽这种差异,所以高级语言的可移植性更好。所以高级语言的可移植性更好。JavaJava程序号称程序号称“一次编译,到处运行一次编译,到处运行”,具有,具有100%100%的可移植性。的可移植性。为了提高为了提高JavaJava程序的性能,最新的程序的性能,最新的JavaJava标准允许人们使用一些标准允许人们使用一些与平台相关的优化技术,这样优化后的与平台相关的优化技术,这样优化后的JavaJava程序虽然不能程序虽然不能“一一次编译,到处运行次编译,到处运行”,仍然能够,仍然能够 “一次编程,到处编译一次

33、编程,到处编译”。软件设计时应该将软件设计时应该将“设备相关程序设备相关程序”与与“设备无关程序设备无关程序”分开,将分开,将“功能模块功能模块”与与“用户界面用户界面”分开。分开。3.商业目标决定质量目标商业目标决定质量目标3.1 教科书的片面观点教科书的片面观点大凡软件工程教科书为了强调质量的重要性,总是要举一些历史上发大凡软件工程教科书为了强调质量的重要性,总是要举一些历史上发生过的重大软件质量事故,例如航天飞机爆炸、核电站失事、爱国者导生过的重大软件质量事故,例如航天飞机爆炸、核电站失事、爱国者导弹发生故障等等。这些事故的确不是危言耸听,给人们敲响了质量的警弹发生故障等等。这些事故的确

34、不是危言耸听,给人们敲响了质量的警钟。钟。学术界总是喜欢宣扬质量至上的理念,而忽视企业的商业利益,将质学术界总是喜欢宣扬质量至上的理念,而忽视企业的商业利益,将质量目标凌驾于商业目标之上。我不能评判这种现象是好还是坏,但是的量目标凌驾于商业目标之上。我不能评判这种现象是好还是坏,但是的确误导了大量读者。许多软件人员都有确误导了大量读者。许多软件人员都有“质量越高越好质量越高越好”的观念,这是的观念,这是被教科书灌输的,而不是他自己领悟出来的。被教科书灌输的,而不是他自己领悟出来的。我曾在著作高质量程序设计指南我曾在著作高质量程序设计指南C+/CC+/C语言中大肆宣扬了高质语言中大肆宣扬了高质量

35、程序设计的理念,力求使量程序设计的理念,力求使C+C+程序达到程序达到“零缺陷零缺陷”的质量目标。尽管的质量目标。尽管此书得到了许多程序员的赞同,但是我经过反思之后改变了质量观念,此书得到了许多程序员的赞同,但是我经过反思之后改变了质量观念,我要着重指出的是:我要着重指出的是:重视软件质量是应该的,但是重视软件质量是应该的,但是“质量越高越好质量越高越好”并并不是普适的真理。只有极少数软件应该追求不是普适的真理。只有极少数软件应该追求“零缺陷零缺陷”,对绝大多数软,对绝大多数软件而言,商业目标决定了质量目标,而不该把质量目标凌驾于商业目标件而言,商业目标决定了质量目标,而不该把质量目标凌驾于商

36、业目标之上。之上。3.商业目标决定质量目标商业目标决定质量目标3.2 严格系统对质量的要求严格系统对质量的要求航空航天等系统对质量要求极高,任何缺陷都有可能导致机毁人亡,航空航天等系统对质量要求极高,任何缺陷都有可能导致机毁人亡,所以人们不惜一切代价去消除缺陷。在发射航天器之前,只要发现所以人们不惜一切代价去消除缺陷。在发射航天器之前,只要发现任何异常,就会立即取消发射指令,直到异常被消除为止。前苏联任何异常,就会立即取消发射指令,直到异常被消除为止。前苏联做得最过分,许多重大武器系统的负责人都签了生死状,系统研制做得最过分,许多重大武器系统的负责人都签了生死状,系统研制成功则获得英雄勋章,失

37、败则被枪毙。在这种压力下没有人敢对质成功则获得英雄勋章,失败则被枪毙。在这种压力下没有人敢对质量有一丝松懈。量有一丝松懈。3.商业目标决定质量目标商业目标决定质量目标3.3 普通商业软件:商业目标决定质量目标普通商业软件:商业目标决定质量目标上述严格系统毕竟是少数,绝大多数普通软件的缺陷并不会造成机上述严格系统毕竟是少数,绝大多数普通软件的缺陷并不会造成机毁人亡这样的重大损失,否则没有人敢从事软件开发了。在日常工作毁人亡这样的重大损失,否则没有人敢从事软件开发了。在日常工作中,我们接触过的软件几乎都是有缺陷的,即便是软件业老大中,我们接触过的软件几乎都是有缺陷的,即便是软件业老大Microso

38、ftMicrosoft,它的软件产品也经常出错甚至导致死机,人们骂几句后它的软件产品也经常出错甚至导致死机,人们骂几句后还会照样使用有缺陷的软件。还会照样使用有缺陷的软件。企业的根本目标是为了获取尽可能多的利润,而不是生产完美无缺企业的根本目标是为了获取尽可能多的利润,而不是生产完美无缺的产品。如果企业销售出去的软件的质量比较差,轻则挨骂,重则被的产品。如果企业销售出去的软件的质量比较差,轻则挨骂,重则被退货甚至被索赔,因此为了提高用户对产品的满意度,企业必须提高退货甚至被索赔,因此为了提高用户对产品的满意度,企业必须提高产品的质量。但是企业不可能为了追求完美的质量而不惜一切代价,产品的质量。

39、但是企业不可能为了追求完美的质量而不惜一切代价,当企业为提高质量所付出的代价超过销售收益时,这个产品已经没有当企业为提高质量所付出的代价超过销售收益时,这个产品已经没有商业价值了,还不如不开发。商业价值了,还不如不开发。企业必须权衡质量、效率和成本,产品质量太低了或者太高了,都企业必须权衡质量、效率和成本,产品质量太低了或者太高了,都不利于企业获取利润。企业理想的质量目标不是不利于企业获取利润。企业理想的质量目标不是“零缺陷零缺陷”,而是恰,而是恰好让广大用户满意,并且将提高质量所付出的代价控制在预算之内。好让广大用户满意,并且将提高质量所付出的代价控制在预算之内。4.质量保证能够保证质量吗质

40、量保证能够保证质量吗4.1 美丽的谎言美丽的谎言CMMCMM对软件质量保证是这样描述的:对软件质量保证是这样描述的:软件质量保证(软件质量保证(Quality Assurance)的目的是为管理者提供有关的目的是为管理者提供有关软件过程和产品的适当的可视性。它包括评审和审核软件产品及软件过程和产品的适当的可视性。它包括评审和审核软件产品及其活动,以验证其是否遵守既定的规程和标准,并向有关负责人其活动,以验证其是否遵守既定的规程和标准,并向有关负责人汇报评审和审核的结果。汇报评审和审核的结果。质量保证(质量保证(Quality Assurance,QAQuality Assurance,QA)是

41、是CMMCMM和和ISO9001ISO9001最为推崇的最为推崇的改善软件质量的方法。基于我亲身实践和调查研究,我敢冒天下之大改善软件质量的方法。基于我亲身实践和调查研究,我敢冒天下之大不讳说一句:不讳说一句:质量保证并不能保证质量,它是个美丽的谎言。质量保证并不能保证质量,它是个美丽的谎言。4.质量保证能够保证质量吗质量保证能够保证质量吗4.1 4.1 美丽的谎言美丽的谎言 简而言之,质量保证活动就是检查软件项目的简而言之,质量保证活动就是检查软件项目的“工作过程和工作成果工作过程和工作成果”是是否符合既定的规范。如此简单的活动为什么被冠以否符合既定的规范。如此简单的活动为什么被冠以“质量保

42、证质量保证”这等份量这等份量的术语呢?没有历史典故,经我考究,猜想是源于一个天真的假设:的术语呢?没有历史典故,经我考究,猜想是源于一个天真的假设:过程质量与产品质量存在某种程度的因果关系,通常“好的过程”产生“好的产品”,而“差的过程”将产生“差的产品”。假设企业已经制定了软件过程规范,如果质量保证人员发现某些项目的“工作过程以及工作成果”不符合既定的规范,那么马上可以断定产品存在缺陷。反之,如果质量保证人员没有发现不符合既定规范的东西,那么也可以断定产品是合格的。符合既定规范的东西并不意味着质量一定合格,仅靠规范无法识别出产品符合既定规范的东西并不意味着质量一定合格,仅靠规范无法识别出产品

43、中可能存在的大量缺陷中可能存在的大量缺陷(以高手与新手的设计、编程为例)。(以高手与新手的设计、编程为例)。质量保证的技术含量太低了,只能检查出肤浅的缺陷,不能对付有技术难质量保证的技术含量太低了,只能检查出肤浅的缺陷,不能对付有技术难度的缺陷。所以单独的度的缺陷。所以单独的“质量保证质量保证”其实并不能其实并不能“保证质量保证质量”。4.质量保证能够保证质量吗质量保证能够保证质量吗4.2 CMM3级企业级企业QA人员的迷惘(人员的迷惘(email摘录)摘录)我很迷茫,很想找一个人聊聊,希望你能给我点主意,化解我心中的谜团。我很迷茫,很想找一个人聊聊,希望你能给我点主意,化解我心中的谜团。昨天

44、我们公司拿到了昨天我们公司拿到了CMM3CMM3的证书,但是我一点都高兴不起来。公司宣称,我们的的证书,但是我一点都高兴不起来。公司宣称,我们的软件质量大大提高了,但是我却没有信心。我们的过程执行得很好,但是我觉得并没软件质量大大提高了,但是我却没有信心。我们的过程执行得很好,但是我觉得并没有在很大程度上改善产品的质量。有在很大程度上改善产品的质量。今天还有一个项目经理跟我诉苦:前一阶段大家都忙于执行过程,但是他的产今天还有一个项目经理跟我诉苦:前一阶段大家都忙于执行过程,但是他的产品质量令人很不满意,尤其是测试做的很不到位。我是这个项目的品质量令人很不满意,尤其是测试做的很不到位。我是这个项

45、目的SQASQA,所以我很理解所以我很理解他,但是我帮不上他的忙。因为他们的过程执行得很好,这个项目可是通过他,但是我帮不上他的忙。因为他们的过程执行得很好,这个项目可是通过CMM3CMM3级正级正式评估了的。式评估了的。当然,执行当然,执行CMMCMM有不少好处,比如文档全面完整了,项目管理的可视性提高了。有不少好处,比如文档全面完整了,项目管理的可视性提高了。但是对于我们公司而言,它并没有在根本上提高我们公司的软件能力。但是对于我们公司而言,它并没有在根本上提高我们公司的软件能力。比如概要设计,开发人员根本就不知道用来干吗的,怎么能指望他们写出高质比如概要设计,开发人员根本就不知道用来干吗

46、的,怎么能指望他们写出高质量的概要设计说明书出来。而在做技术评审的时候,他们很少能找出逻辑性的错误,量的概要设计说明书出来。而在做技术评审的时候,他们很少能找出逻辑性的错误,只能发现一些诸如错别字之类的小错误。我们几乎每一个配置项都要经过评审,但是只能发现一些诸如错别字之类的小错误。我们几乎每一个配置项都要经过评审,但是大部分评审都只能发现一些无关痛痒的问题。大部分评审都只能发现一些无关痛痒的问题。公司已经通过公司已经通过CMM3CMM3级了,我认为过程执行得很好了,可是软件质量仍然比较级了,我认为过程执行得很好了,可是软件质量仍然比较差。这是怎么回事啊,你觉得原因在哪里?差。这是怎么回事啊,

47、你觉得原因在哪里?结论:公司按照结论:公司按照CMM3级的要求执行,而且质量人员也认为执行过程符合既定的规级的要求执行,而且质量人员也认为执行过程符合既定的规范,但是软件产品的质量仍然低下。所以说范,但是软件产品的质量仍然低下。所以说“质量保证并不能保证质量质量保证并不能保证质量”,这句话一,这句话一点都不过分。质量保证对于保证质量而言只是必要的手段,而不是充分的手段。点都不过分。质量保证对于保证质量而言只是必要的手段,而不是充分的手段。5.质量人员的状况质量人员的状况 5.1 郁闷郁闷QA人员诉苦:人员诉苦:我现在觉得很郁闷,我现在觉得很郁闷,CMM评估前还有目标,评估完了冷静下评估前还有目

48、标,评估完了冷静下来却觉得效果很差,很没劲。项目经理向我诉苦,他们过程执行的很好,但来却觉得效果很差,很没劲。项目经理向我诉苦,他们过程执行的很好,但是对产品质量很不满意,我却无能为力,我这个是对产品质量很不满意,我却无能为力,我这个QA还有什么用处啊!所以我还有什么用处啊!所以我现在干活没有动力,因为不能产生效益,做再多的工作也觉得是白干。而且现在干活没有动力,因为不能产生效益,做再多的工作也觉得是白干。而且我现在手头有我现在手头有5个项目要跟踪,还不包括一些整理培训记录的杂活,我觉得个项目要跟踪,还不包括一些整理培训记录的杂活,我觉得自己连工人也不如。我有一些很好的想法却无处发挥,所以我很

49、迷茫,很矛自己连工人也不如。我有一些很好的想法却无处发挥,所以我很迷茫,很矛盾地考虑去留问题。盾地考虑去留问题。郁闷的滋味各色各样,只有正在郁闷的人感受最真切。我发现在软件职业里,质量郁闷的滋味各色各样,只有正在郁闷的人感受最真切。我发现在软件职业里,质量人员是最郁闷的一族。郁闷的共同特征有:人员是最郁闷的一族。郁闷的共同特征有:(1 1)在执行质量保证活动时,经常受别人的气,真是吃力不讨好。)在执行质量保证活动时,经常受别人的气,真是吃力不讨好。(2 2)如果项目取得成功,主要功劳都被项目主管霸占了,领导们至多会给质量人)如果项目取得成功,主要功劳都被项目主管霸占了,领导们至多会给质量人员一

50、些口头上的感谢。领导们嘴上重视产品的质量,但是内心并不重视质量人员一些口头上的感谢。领导们嘴上重视产品的质量,但是内心并不重视质量人员。员。(3 3)质量人员没有实质性的权力,没有成就感,但是却对质量负有最多的责任。)质量人员没有实质性的权力,没有成就感,但是却对质量负有最多的责任。(4)待遇一般,看不到升迁的机会,没有盼头,要么成为打杂的,要么另寻出路。)待遇一般,看不到升迁的机会,没有盼头,要么成为打杂的,要么另寻出路。5.质量人员的状况质量人员的状况5.1 郁闷郁闷 声援:声援:我也做过伤害质量人员的事情,非常后悔。我也做过伤害质量人员的事情,非常后悔。我所认识的公司内外的质量人员都是性

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 办公、行业 > 各类PPT课件(模板)
版权提示 | 免责声明

1,本文(软件质量管理-第一章课件.ppt)为本站会员(晟晟文业)主动上传,163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。
2,用户下载本文档,所消耗的文币(积分)将全额增加到上传者的账号。
3, 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(发送邮件至3464097650@qq.com或直接QQ联系客服),我们立即给予删除!


侵权处理QQ:3464097650--上传资料QQ:3464097650

【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。


163文库-Www.163Wenku.Com |网站地图|