全面软件质量管理课件.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《全面软件质量管理课件.ppt》由用户(三亚风情)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 全面 软件 质量管理 课件
- 资源描述:
-
1、2022年8月1日星期一全面软件质量管理全面软件质量管理目录目录1.引言引言 2.软件质量属性和质量要素软件质量属性和质量要素3.商业目标决定质量目标商业目标决定质量目标4.质量保证能够保证质量吗质量保证能够保证质量吗5.质量人员的状况质量人员的状况6.全面软件质量管理:模型全面软件质量管理:模型7.全面软件质量管理:制定质量计划全面软件质量管理:制定质量计划8.全面软件质量管理:技术评审全面软件质量管理:技术评审9.全面软件质量管理:软件测试全面软件质量管理:软件测试10.全面软件质量管理:过程检查全面软件质量管理:过程检查11.全面软件质量管理:缺陷跟踪工具全面软件质量管理:缺陷跟踪工具参
2、考书:软件工程与项目管理解析,林锐参考书:软件工程与项目管理解析,林锐 著,电子工业出版社,著,电子工业出版社,20031.引言引言 u软件质量管理是充满争论的话题。被人们奉为软件质量管理圣经的软件质量管理是充满争论的话题。被人们奉为软件质量管理圣经的CMMCMM和和ISO9001ISO9001似乎并不奏效似乎并不奏效,现实和理想之间的差距太大。,现实和理想之间的差距太大。u经典软件工程教科书以及经典软件工程教科书以及CMM和和ISO9001总是抛开商业目标谈质量管理,本末倒置,纸上谈兵总是抛开商业目标谈质量管理,本末倒置,纸上谈兵,误导了大量读者,所以质量管理才变得那么艰辛。世界上还没有万能
3、的软件质量管理圣经,误导了大量读者,所以质量管理才变得那么艰辛。世界上还没有万能的软件质量管理圣经,我们不要迷信我们不要迷信CMMCMM和和ISO9000ISO9000。u要多向有实战经验的同行专家请教,但是不要轻信要多向有实战经验的同行专家请教,但是不要轻信“纸上谈兵纸上谈兵”的专家。的专家。u本文给出了一套实用主义的本文给出了一套实用主义的“全面软件质量管理全面软件质量管理”方法。方法。u重要的理念:重要的理念:商业目标决定质量目标商业目标决定质量目标。提高软件质量的最终目的是为了赢利,而不是创造完美提高软件质量的最终目的是为了赢利,而不是创造完美无缺的产品。因此对于普通商业软件而言,并不
4、是无缺的产品。因此对于普通商业软件而言,并不是“质量越高越好质量越高越好”,而是恰好让广大用户满,而是恰好让广大用户满意,并且将提高质量所付出的代价控制在预算之内意,并且将提高质量所付出的代价控制在预算之内。2.软件质量属性和质量要素软件质量属性和质量要素 2.1 如何描述质量如何描述质量u词典对质量的定义是:词典对质量的定义是:典型的或本质的特征;典型的或本质的特征;事物固有的或区别于其他事物的特征或本事物固有的或区别于其他事物的特征或本质;质;优良或出色的程度。优良或出色的程度。uCMM CMM 对质量的定义是:对质量的定义是:一个系统、组件或过程符合特定需求的程度;一个系统、组件或过程符
5、合特定需求的程度;一个系统、组件或一个系统、组件或过程符合客户或用户的要求或期望的程度。过程符合客户或用户的要求或期望的程度。u上述定义很抽象,人们看了准会一脸迷惘。就让我们用上述定义很抽象,人们看了准会一脸迷惘。就让我们用“人的健康人的健康”来类比解释软件质量。来类比解释软件质量。古时候人们以为长得结实、饭量大就是健康,这显然是不科学的。现代人总是通过考察古时候人们以为长得结实、饭量大就是健康,这显然是不科学的。现代人总是通过考察多方面的生理因素来判断是否健康,如测量身高、体重、心跳、血压、血液、体温等。多方面的生理因素来判断是否健康,如测量身高、体重、心跳、血压、血液、体温等。如果上述因素
6、都合格,那么表明这人是健康的。如果某个因素不合格,则表明此人在某如果上述因素都合格,那么表明这人是健康的。如果某个因素不合格,则表明此人在某个方面不健康,医生会对症下药。个方面不健康,医生会对症下药。u通过类比,我们这样理解软件质量:通过类比,我们这样理解软件质量:软件质量是许多质量属性的综合体现,各种质量属性反映软件质量是许多质量属性的综合体现,各种质量属性反映了软件质量的方方面面。人们通过改善软件的各种质量属性,从而提高软件的整体质量(否则了软件质量的方方面面。人们通过改善软件的各种质量属性,从而提高软件的整体质量(否则无从下手)。无从下手)。u软件的质量属性很多,如正确性、精确性,健壮性
7、、可靠性、容错性、性能、易用性、安全性软件的质量属性很多,如正确性、精确性,健壮性、可靠性、容错性、性能、易用性、安全性、可扩展性、可复用性、兼容性、可移植性、可测试性、可维护性、灵活性等。、可扩展性、可复用性、兼容性、可移植性、可测试性、可维护性、灵活性等。u上述这些质量属性之间上述这些质量属性之间“你中有我,我中有他你中有我,我中有他”,非常缠绵。如果开发人员每天要面对那么多,非常缠绵。如果开发人员每天要面对那么多的质量属性咬文嚼字,不久就会迂腐得像孔乙己,因此我们有必要对质量属性做些分类和整合的质量属性咬文嚼字,不久就会迂腐得像孔乙己,因此我们有必要对质量属性做些分类和整合。质量属性可分
8、为两大类:。质量属性可分为两大类:“功能性功能性”与与“非功能性非功能性”,后者有时也称为,后者有时也称为“能力能力”(CapabilityCapability)。)。2.软件质量属性和质量要素软件质量属性和质量要素 2.2 十大软件质量因素十大软件质量因素u功能性质量因素:正确性,健壮性,可靠性功能性质量因素:正确性,健壮性,可靠性u非功能性质量因素:性能,易用性,清晰性,安全性,可扩展性,兼容性,可移植性非功能性质量因素:性能,易用性,清晰性,安全性,可扩展性,兼容性,可移植性u为什么是为什么是“十大十大”质量因素质量因素 u逐一解释逐一解释“十大十大”质量因素(参见高质量程序设计指南质量
9、因素(参见高质量程序设计指南C+/C语言)语言)2.3 软件质量要素软件质量要素u什么是软件质量要素?什么是软件质量要素?(1 1)从技术角度讲,对软件整体质量影响最大的那些质量属性才是质量要素;)从技术角度讲,对软件整体质量影响最大的那些质量属性才是质量要素;(2 2)从商业角度讲,客户最关心的、能成为卖点的质量属性才是质量要素。)从商业角度讲,客户最关心的、能成为卖点的质量属性才是质量要素。u对于一个特定的软件而言,我们首先判断什么是质量要素,才能给出提高质量的具体措施,而对于一个特定的软件而言,我们首先判断什么是质量要素,才能给出提高质量的具体措施,而不是一股脑地想把所有的质量属性都做好
10、,否则不仅做不好,还可能得不偿失。不是一股脑地想把所有的质量属性都做好,否则不仅做不好,还可能得不偿失。u如果某些质量属性并不能产生显著的经济效益,我们可以忽略它们,把精力用在对经济效益贡如果某些质量属性并不能产生显著的经济效益,我们可以忽略它们,把精力用在对经济效益贡献最大的质量要素上。简而言之,只有质量要素才值得开发人员下功夫去改善。献最大的质量要素上。简而言之,只有质量要素才值得开发人员下功夫去改善。2.软件质量属性和质量要素软件质量属性和质量要素 2.4 正确性正确性u正确性是指软件按照需求正确执行任务的能力。正确性是指软件按照需求正确执行任务的能力。“正确性正确性”的语义涵盖了的语义
11、涵盖了“精确性精确性”。u正确性无疑是第一重要的软件质量属性。正确性无疑是第一重要的软件质量属性。u技术评审和测试的第一关都是检查工作成果的正确性。技术评审和测试的第一关都是检查工作成果的正确性。u机器不会主动欺骗人,软件运行出错通常都是人造成的,所以不要找借口埋怨机器有毛病。机器不会主动欺骗人,软件运行出错通常都是人造成的,所以不要找借口埋怨机器有毛病。2.5 健壮性健壮性 u健壮性是指在异常情况下,软件能够正常运行的能力。健壮性是指在异常情况下,软件能够正常运行的能力。u正确性描述软件在需求范围之内的行为,而健壮性描述软件在需求范围之外的行为。正确性描述软件在需求范围之内的行为,而健壮性描
12、述软件在需求范围之外的行为。u开发者往往把异常情况错当成正常情况而不作处理,结果降低了健壮性。开发者往往把异常情况错当成正常情况而不作处理,结果降低了健壮性。u用户才不管正确性与健壮性的区别,反正软件出了差错都是开发方的错。所以提高软件的健壮用户才不管正确性与健壮性的区别,反正软件出了差错都是开发方的错。所以提高软件的健壮性也是开发者的义务。性也是开发者的义务。u健壮性有两层含义:一是容错能力,二是恢复能力。健壮性有两层含义:一是容错能力,二是恢复能力。从语义上理解,恢复不及容错那么健壮。从语义上理解,恢复不及容错那么健壮。UnixUnix容错能力很强,可惜不好用。容错能力很强,可惜不好用。W
13、indowsWindows容错能力较差,但是恢复能力很好,而且很好用。占了容错能力较差,但是恢复能力很好,而且很好用。占了90%90%的操作系统市场。的操作系统市场。2.软件质量属性和质量要素软件质量属性和质量要素2.6 可靠性可靠性 u可靠性是指在一定的环境下,在给定的时间内,系统不发生故障的概率。可靠性是指在一定的环境下,在给定的时间内,系统不发生故障的概率。u可靠性本来是硬件领域的术语。比如某个电子设备在刚开始工作时挺好的,但由于器件在工作可靠性本来是硬件领域的术语。比如某个电子设备在刚开始工作时挺好的,但由于器件在工作中其物理性质会发生变化(如发热),慢慢地系统的功能或性能就会失常。所
14、以一个从设计到中其物理性质会发生变化(如发热),慢慢地系统的功能或性能就会失常。所以一个从设计到生产完全正确的硬件系统,在工作中未必就是可靠的。生产完全正确的硬件系统,在工作中未必就是可靠的。u软件在运行时不会发生物理性质的变化,人们常以为如果软件的某个功能是正确的,那么它一软件在运行时不会发生物理性质的变化,人们常以为如果软件的某个功能是正确的,那么它一辈子都是正确的。可是我们无法对软件进行彻底地测试,无法根除软件中潜在的错误。平时软辈子都是正确的。可是我们无法对软件进行彻底地测试,无法根除软件中潜在的错误。平时软件运行得好好的,说不准哪一天就不正常了,如有千年等一回的件运行得好好的,说不准
15、哪一天就不正常了,如有千年等一回的“千年虫千年虫”问题,司空见惯的问题,司空见惯的“内存泄露内存泄露”、“误差累积误差累积”问题等等。问题等等。u软件可靠性分析通常采用统计方法,遗憾的是目前可供第一线开发人员使用的成果很少见,大软件可靠性分析通常采用统计方法,遗憾的是目前可供第一线开发人员使用的成果很少见,大多数文章限于理论研究。口语中的可靠性含义宽泛,几乎囊括了正确性、健壮性。只要人们发多数文章限于理论研究。口语中的可靠性含义宽泛,几乎囊括了正确性、健壮性。只要人们发现系统有毛病,便归结为可靠性差。从专业角度讲,这种说法是确切的。现系统有毛病,便归结为可靠性差。从专业角度讲,这种说法是确切的
16、。u时隐时现的错误一般都属于可靠性问题,纠错的代价很高。例如当维护人员十万火急地赶到现时隐时现的错误一般都属于可靠性问题,纠错的代价很高。例如当维护人员十万火急地赶到现场时,错误消失了;等维护人员回家后,错误又出现了。场时,错误消失了;等维护人员回家后,错误又出现了。u软件可靠性问题主要是在编程时候埋下的祸害(很难测试出来),应当提倡规范化程序设计,软件可靠性问题主要是在编程时候埋下的祸害(很难测试出来),应当提倡规范化程序设计,预防可靠性祸害。预防可靠性祸害。2.软件质量属性和质量要素软件质量属性和质量要素2.7 性能性能u性能通常是指软件的性能通常是指软件的“时间时间-空间空间”效率,而不
17、仅是指软件的运行速度。人们总希望软件的运行效率,而不仅是指软件的运行速度。人们总希望软件的运行速度高些,并且占用资源少些。速度高些,并且占用资源少些。既要马儿跑得快,又要马儿吃的少。既要马儿跑得快,又要马儿吃的少。u性能优化的关键工作是找出限制性能的性能优化的关键工作是找出限制性能的“瓶颈瓶颈”,不要在无关痛痒的地方瞎忙乎。,不要在无关痛痒的地方瞎忙乎。例如在大学里当教师,光靠使劲讲课或者埋头做实验,职称是升不快的。有些人找到了例如在大学里当教师,光靠使劲讲课或者埋头做实验,职称是升不快的。有些人找到了突破口,一年之内突破口,一年之内“造造”它几十篇文章,争取破格升副教授、教授。它几十篇文章,
18、争取破格升副教授、教授。程序员可以通过优化数据结构、算法和代码来提高软件的性能。例如数据库程序的优化程序员可以通过优化数据结构、算法和代码来提高软件的性能。例如数据库程序的优化。算法复杂度分析是很好的方法,可以达到算法复杂度分析是很好的方法,可以达到“未卜先知未卜先知”的功效。的功效。u性能优化就好像从海绵里挤水一样,你不挤,水就不出来,你越挤海绵越干。有些程序员认为性能优化就好像从海绵里挤水一样,你不挤,水就不出来,你越挤海绵越干。有些程序员认为现在的计算机不仅速度越来越高,而且内存越来越大,因此软件性能优化的必要性下降了。这现在的计算机不仅速度越来越高,而且内存越来越大,因此软件性能优化的
19、必要性下降了。这种看法是不对的,殊不知随着机器的升级,软件系统也越来越庞大了和复杂了,性能优化仍然种看法是不对的,殊不知随着机器的升级,软件系统也越来越庞大了和复杂了,性能优化仍然大有必要。大有必要。最具有代表性的是三维游戏软件,例如最具有代表性的是三维游戏软件,例如Delta ForceDelta Force、古墓丽影、反恐精英、古墓丽影、反恐精英等,如果不对软件(关键是游戏引擎)做精益求精的优化,要想在一台普通的等,如果不对软件(关键是游戏引擎)做精益求精的优化,要想在一台普通的PCPC上顺畅上顺畅地玩游戏是不太可能的。地玩游戏是不太可能的。2.软件质量属性和质量要素软件质量属性和质量要素
20、2.8 易用性易用性u易用性是指用户使用软件的容易程度。易用性是指用户使用软件的容易程度。u现代人的生活节奏快,干啥事都想图个方便。所以把易用性作为重要的质量属性对待无可非议现代人的生活节奏快,干啥事都想图个方便。所以把易用性作为重要的质量属性对待无可非议。u导致软件易用性差的根本原因导致软件易用性差的根本原因:理工科大学教育存在缺陷:没有开设人机工程学、美学、心理学这些必修课,大部分开理工科大学教育存在缺陷:没有开设人机工程学、美学、心理学这些必修课,大部分开发人员不知道如何设计易用的软件产品。发人员不知道如何设计易用的软件产品。开发人员犯了开发人员犯了“错位错位”的毛病:他以为只要自己用起
21、来方便,用户也就会满意。的毛病:他以为只要自己用起来方便,用户也就会满意。u软件的易用性要让用户来评价。当用户真的感到软件很好用时,一股温暖的感觉油然而生,于软件的易用性要让用户来评价。当用户真的感到软件很好用时,一股温暖的感觉油然而生,于是就用是就用“界面友好界面友好”、“方便易用方便易用”等词来评价软件产品。等词来评价软件产品。2.9 清晰性清晰性 u清晰意味者所有的工作成果易读、易理解,可以提高团队开发效率,降低维护代价。清晰意味者所有的工作成果易读、易理解,可以提高团队开发效率,降低维护代价。u开发人员只有在自己思路清晰的时候才可能写出让别人易读、易理解的程序和文档。开发人员只有在自己
22、思路清晰的时候才可能写出让别人易读、易理解的程序和文档。u可理解的东西通常是简洁的。一个原始问题可能很复杂,但高水平的人就能够把软件系统设计可理解的东西通常是简洁的。一个原始问题可能很复杂,但高水平的人就能够把软件系统设计得很简洁。如果软件系统臃肿不堪,它迟早会出问题。所以简洁是人们对工作得很简洁。如果软件系统臃肿不堪,它迟早会出问题。所以简洁是人们对工作“精益求精精益求精”的的结果,而不是潦草应付的结果。与简洁对立的是结果,而不是潦草应付的结果。与简洁对立的是“罗里罗嗦罗里罗嗦”。u千万不要把在学校里千万不要把在学校里“造文章造文章”的手法用于开发产品!的手法用于开发产品!如果把文章写得很简
23、洁,让人很容易理解,投稿往往中不了;只有加上一些玄乎的东西如果把文章写得很简洁,让人很容易理解,投稿往往中不了;只有加上一些玄乎的东西,把本来简单的弄成复杂的,才会增加投稿的命中率。,把本来简单的弄成复杂的,才会增加投稿的命中率。2.软件质量属性和质量要素软件质量属性和质量要素2.10 安全性安全性 u这里安全性是指信息安全,英文是这里安全性是指信息安全,英文是SecuritySecurity而不是而不是SafetySafety。u安全性是指防止系统被非法入侵的能力,既属于技术问题又属于管理问题。安全性是指防止系统被非法入侵的能力,既属于技术问题又属于管理问题。u信息安全是一门比较深奥的学问,
24、其发展是建立在正义与邪恶的斗争之上。这世界似乎不存在信息安全是一门比较深奥的学问,其发展是建立在正义与邪恶的斗争之上。这世界似乎不存在绝对安全的系统,连美国军方的系统都频频遭黑客入侵。如今全球黑客泛滥,真是绝对安全的系统,连美国军方的系统都频频遭黑客入侵。如今全球黑客泛滥,真是“道高一尺道高一尺,魔高一丈,魔高一丈”啊!啊!u开发商和客户愿意为提高安全性而投入的资金是有限的,他们要考虑值不值得。开发商和客户愿意为提高安全性而投入的资金是有限的,他们要考虑值不值得。u究竟什么样的安全性是令人满意的呢?究竟什么样的安全性是令人满意的呢?一般地,如果黑客为非法入侵花费的代价(考虑时间、费用、风险等因
25、素)高于得到的一般地,如果黑客为非法入侵花费的代价(考虑时间、费用、风险等因素)高于得到的好处,那么这样的系统可以认为是安全的。好处,那么这样的系统可以认为是安全的。对于普通软件,并不一点要追求很高的安全性,也不能完全忽视安全性,要先分析黑客对于普通软件,并不一点要追求很高的安全性,也不能完全忽视安全性,要先分析黑客行为。行为。2.软件质量属性和质量要素软件质量属性和质量要素2.11 可扩展性可扩展性 u可扩展性反映软件适应可扩展性反映软件适应“变化变化”的能力。的能力。u在软件开发过程中,在软件开发过程中,“变化变化”是司空见惯的事情,如需求、设计的变化,算法的改进,程序的是司空见惯的事情,
展开阅读全文