软件质量概念软件质量保证软件可靠性软件配置管理.ppt
《软件质量概念软件质量保证软件可靠性软件配置管理.ppt》由会员分享,可在线阅读,更多相关《软件质量概念软件质量保证软件可靠性软件配置管理.ppt(142页珍藏版)》请在麦多课文档分享上搜索。
1、软件质量概念 软件质量保证 软件可靠性 软件配置管理,软件质量管理,软件质量概念,软件质量的定义 软件质量特性 软件质量模型 软件质量的度量和评价,软件质量的定义,ANSI/IEEE Std 729-1983定义软件质量为“与软件产品满足规定的和隐含的需求的能力有关的特征或特性的全体”。 M.J. Fisher 定义软件质量为“所有描述计算机软件优秀程度的特性的组合”。,质量特性及其组合,是软件开发与维护中的重要考虑因素,为满足软件的各项精确定义的功能、性能需求,符合文档化的开发标准,需要相应地给出或设计一些质量特性及其组合。 如果这些质量特性及其组合都能在产品中得到满足,则这个软件产品质量就
2、是高的。,软件需求是度量软件质量的基础。不符合需求的软件就不具备质量。 标准定义了一组开发准则,用来指导软件人员用工程化的方法来开发软件。如果不遵守这些开发准则,软件质量就得不到保证。 软件质量是各种特性的复杂组合。它随着应用的不同而不同,随着用户提出的质量要求不同而不同。,软件质量特性,软件质量特性,反映了软件的本质。讨论一个软件的质量,问题最终要归结到定义软件的质量特性。 定义一个软件的质量,就等价于为该软件定义一系列质量特性。 人们通常把影响软件质量的特性用软件质量模型来描述。,软件质量模型,软件质量特性定义成分层模型 最基本的叫做基本质量特性,它可以由一些子质量特性定义和度量。 二次特
3、性在必要时又可由它的一些子质量特性定义和度量。 1976年 Boehm质量模型 1979年 McCall质量模型 1985年 ISO质量模型,ISO的软件质量评价模型,按照ISO/TC97/SC7/WG3/1985-1-30/N382,软件质量度量模型由三层组成 软件质量需求评价准则(SQRC) 软件质量设计评价准则(SQDC) 软件质量度量评价准则(SQMC) 高层和中层建立国际标准,低层可由各使用单位视实际情况制定,Boehm质量模型,1991年 ISO质量特性国际标准 (ISO/IEC9126),质量特性:功能性、可靠性、可维护性、效率、可使用性、可移植性 推荐21个子特性:适合性 准确
4、性 互用性 依从性 安全性 成熟性 容错性 可恢复性 可理解性 易学习性 操作性 时间特性 资源特性 可分析性 稳定性 可变更性 可测试性 可安装性 可替换性 适应性 一致性,软件质量的度量和评价,软件质量特性度量有两类:预测型和验收型。 预测度量是利用定量或定性的方法,估算软件质量的评价值,以得到软件质量的比较精确的估算值。 验收度量是在软件开发各阶段的检查点,对软件的要求质量进行确认性检查的具体评价值,它是对开发过程中的预测进行评价。,预测度量有两种。 第一种叫做尺度度量,这是一种定量度量。它适用于一些能够直接度量的特性,例如,出错率定义为:错误数KLOC单位时间。 第二种叫做二元度量,这
5、是一种定性度量。它适用于一些只能间接度量的特性,例如,可使用性、灵活性等等。,尺度度量检查表,二元度量检查表,通过对照检查项目,确定一种质量特性的有无。 例如,在设计和编码阶段的复杂性度量,利用尺度度量方法来做。对模块复杂性的度量采用McCabe 环路度量。 对于二元度量,可针对检查表中每一项都应给以记分,指定信息存在时记 “1”,否则记 “0”。表中所有各项的分数相加,即得度量结果。,软件的质量保证,质量保证的概念 软件质量保证的主要任务 质量保证与检验 软件质量保证体系 质量保证的实施 软件的质量设计,质量保证的概念,什么是质量保证,它是为保证产品和服务充分满足消费者要求的质量而进行的有计
6、划、有组织的活动。 质量保证是面向消费者的活动,是为了使产品实现用户要求的功能,站在用户立场上来掌握产品质量的。 软件的质量保证就是向用户及社会提供满意的高质量的产品。,软件的质量保证活动也和一般的质量保证活动一样,是确保软件产品从诞生到消亡为止的所有阶段的质量的活动。即为了确定、达到和维护需要的软件质量而进行的所有有计划、有系统的管理活动。,软件质量保证的主要任务,为了提高软件的质量和软件的生产率,软件质量保证的主要任务大致可归结为8点。,1.用户要求定义,熟练掌握正确定义用户要求的技术 熟练使用和指导他人使用定义软件需求的支持工具 重视领导全体开发人员收集和积累有关用户业务领域的各种业务的
7、资料和技术技能。,2. 力争不重复劳动,考虑哪些既有软件可以复用 在开发过程中,随时考虑所生产软件的复用性。,3. 掌握开发新软件的方法,在开发新软件的过程中大力使用和推行软件工程学中所介绍的开发方法和工具。使用先进的开发技术:如结构化技术、面向对象技术使用数据库技术或网络化技术应用开发工具或环境改进开发过程,4. 组织外部力量协作的方法,一个软件自始至终由同一个软件开发单位来开发,也许是最理想的。但在现实中常常难以做到。 改善对外部协作部门的开发管理。必须明确规定进度管理、质量管理、交接检查、维护体制等各方面的要求,建立跟踪检查的体制。,5. 排除无效劳动,最大的无效劳动就是因需求规格说明有
8、误、设计有误而造成的返工。定量记录返工工作量,收集和分析返工劳动花费数据 较大的无效劳动是重复劳动,即相似的软件在几个地方同时开发 建立互相交流、信息往来通畅、具横向交流特征的信息流通网,6. 发挥每个开发者的能力,软件生产是人的智能生产活动,它依赖于人的能力和开发组织团队的能力。 开发者必须有学习各专业业务知识、生产技术和管理技术的能动性。 管理者或产品服务者要制定技术培训计划、技术水平标准,以及适用于将来需要的中长期技术培训计划。,7. 提高软件开发的工程能力,要想生产出高质量的软件产品必须有高水平的软件工程能力。 在软件开发环境或软件工具箱的支持下,运用先进的开发技术、工具和管理方法开发
9、软件的能力。,8. 提高计划和管理质量能力,项目开发初期计划阶段的项目计划评价 计划执行过程中及计划完成报告的评价 将评价、评审工作在工程实施之前就列入整个开发工程的工程计划中 提高软件开发项目管理的精确度,质量保证与检验,其一是切实搞好开发阶段的管理,检查各开发阶段的质量保证活动开展得如何; 其二是预先防止软件差错给用户造成损失。 为了确保每个开发过程的质量,防止把软件差错传递到下一个过程,必须进行质量检验。,质量检验的原则,用户要求的是产品所具有的功能,这是“真质量”。靠质量检验,一般检查的是“真质量”的质量特性。 能靠质量检验的质量特性,即使全数检验,也只是代表产品的部分质量特性。 必须
10、在各开发阶段对影响产品质量的因素进行切实的管理,认真检查实施落实情况。,当开发阶段出现异常时,要从质量特性方面进行检验,看是否会给后续阶段带来影响。 虽然各开发阶段进展稳定,但由于工程能力不足,软件产品不能满足用户要求的质量。这时可通过检验对该产品做出评价,判断是否能向用户提供该产品。 要以一定的标准检验产品,根据产品的质量特性,检查各个过程的管理状态。,软件质量保证体系,软件的质量保证活动,是涉及各个部门的部门间的活动。 例如,如果在用户处发现了软件故障,产品服务部门就应听取用户的意见,再由检查部门调查该产品的检验结果,进而还要调查软件实现过程的状况,并根据情况检查设计是否有误,不当之处加以
11、改进,防止再次发生问题。,为了顺利开展以上活动,事先明确部门间的质量保证业务,确立部门间的联合与协作的机构十分重要,这个机构就是质量保证体系。必须明确反馈途径。必须明确各部门的职责。必须确定保证系统运行的方法、工具、有关文档资料,以及系统管理的规程和标准。,必须明确决定是否可向下一阶段进展的评价项目和评价准则。必须不断地总结系统管理的经验教训,能够修改系统。制定质量保证计划,在计划中确定质量目标确定在每个阶段为达到总目标所应达到的要求确定进度安排确定所需人力、资源和成本等。,软件质量保证规程和技术准则,规定在项目的哪个阶段进行评审及如何评审; 规定在项目的哪个阶段应当产生哪些报告和计划; 规定
12、产品各方面测试应达到的水平。 在每次评审和测试中发现的错误如何修正;,描述希望得到的质量度量; 说明各种软件人员的职责,规定为了达到质量目标他们必须进行哪些活动。 建立在各阶段中执行质量评价的质量评价和质量检查系统有效运用质量信息的质量信息系统,并使其运行。,质量保证的实施,软件质量保证的实施需要从纵向和横向两个方面展开。要求所有与软件生存期有关的人员都要参加要求对产品形成的全过程进行质量管理 这要求整个软件部门齐心协力,不断完善软件的开发环境。此外还需要与用户共同合作。,质量目标与度量,为了开发高质量的软件,需要明确软件的功能,明确软件应达到什么样的质量标准,即质量目标。 为了达到这个目标,
13、在开发过程中的各个阶段进行检查和评价。 在做质量评价时,需要有对质量进行度量的准则和方法。 需要有在软件生存期中如何使用这些准则和方法的质量保证步骤,以及提高该项作业效率的工具,软件质量度量和保证的条件,适应性:适应各种用户、软件类型 易学性:不需要特殊技术,易掌握 可靠性:同个软件的评价结果一致 针对性:设计阶段就确立质量目标,在各个阶段实施落实。 客观性: 经济性:,质量保证活动的实施步骤:,Target:以用户要求和开发方针为依据,对质量需求准则、质量设计准则的各质量特性设定质量目标。 Plan:设定适合于被开发软件的评测检查项目(质量评价准则)。研讨实现质量目标的方法或手段。 Do:制
14、作高质量的规格说明和程序。在接受质量检查前先做自我检查。,Check:以Plan阶段设定的质量评价准则进行评价。计算结果用质量图的形式表示出来。比较评价结果的质量得分和质量目标,看其是否合格。 Action:对评价发现的问题进行改进活动,如果实现并达到了质量目标就转入下一个工程阶段。这样重复“Plan”到“Action”的过程,直到整个开发项目完成。,软件的质量设计,质量特性转换为软件的内部结构 在软件定义阶段,必须定义对软件的质量需求。即确定软件的质量特性及必需的评价准则,并定量地设定其必须达到的质量水平 在以后软件开发的每一阶段结束时,要算出评价的分数,然后与目标值加以对照,以评估在这一阶
15、段开发的软件质量是否达到要求。,为了实现规定的质量特性,就需要把这些质量特性转换为软件的内部结构的特性。 例如,软件质量需求中的“性能”,可以转换成软件内部结构中的构成元素,即每一个程序模块和物理数据各自应具有的性能特性。这些性能特性的累积就形成外部规格中的性能特性。,软件的结构特性与评价标准,结构特性 逻辑数据层次 评价标准 全部数据元素定义完毕所有层次的操作符定义完毕 结构特性 功能层次 评价标准全部功能元素定义完毕所有层次的操作符定义完毕,结构特性 逻辑数据与功能的对应关系 评价准则所有数据都与功能对应所有功能元素都与数据对应逻辑数据与功能的相互关系个数(局部),结构特性 物理数据层次
16、评价准则全部数据元素定义完毕物理数据之间的所有指针定义完毕上述指针都具有层次性,结构特性 模块层次 评价准则所有模块定义完毕模块之间所有控制关系定义完毕上述关系都是标准过程调用形式各层次上的模块大小适当,结构特性 物理数据与模块的对应关系 评价准则 所有物理数据都与模块对应所有模块都与物理数据对应对应于一个物理数据的模块数(以一对一为好),结构特性 逻辑数据与物理数据的对应关系 评价准则所有逻辑数据都与物理数据对应对应于一个物理数据的逻辑数据数(以一对一为好),结构特性 功能与模块的对应关系 评价准则所有功能都与模块对应对应模块的功能个数(以一对 一为好),软件可靠性,软件生存期与软件寿命的关
17、系 在软件工程中常用的定义 软件可靠性定义 测试中的可靠性分析 测试精确度和测试覆盖度的评价,软件生存期与软件寿命的关系,一切有生命的东西都有一个“寿命” 这个概念也可以延伸到对非生命产品的质量评价上来。例如一个电子产品的寿命就是指该产品从出厂直到丧失使用价值的持续时间。 从软件工程的角度来说,软件产品的寿命是指软件的整个生存期。,从软件用户的角度来看,更关心的是软件在交付使用后的情况如何。 希望用一个指标平均失效间隔时间 MTBF(MeanTime Between Failure) 来表明,在规定的要求和条件下,能在多大的程度上依赖这个软件来完成任务。 我们把在使用期间软件能够正常工作的持续
18、时间叫做软件的使用寿命。,软件的使用寿命与输入环境有关。 例如,有一个存在缺陷的编译程序,当用于学生做简单练习时,MTBF可能很长。而做一个大的课题时,由于程序连续出错,MTBF就会变得很短。 MTBF可以看做是对软件可靠性做估计的样本数据,但不能看做是依据。,“错误”这一术语。在没有特别加以说明的情况下,这是一个泛用的、模糊的概念。 它指的可能是bug(设计中的差错)、 fault(故障)、error(错误)、failure(失效)、crash(重大事故)、problem(疑问)等。 在汉译中,这些术语的使用更加混乱。,在软件工程中常用的定义,故障(fault):软件的内在缺陷。这些缺陷可在
19、生存期各个阶段被引入。 错误(error):故障在一定的环境条件下的暴露,导致系统在运行中出现了不正常、不正确、不按规范执行的状态,称为软件出错。 失效(failure):对错误不做任何修正和恢复, 导致系统的输出不满足用户要求,称为软件的一次失效。,以上定义的故障、错误和失效,分别代表了广义的“错误”在不同的条件下所对应的术语。 它们可以理解为:设计者的失误导致系统中留有错误的设计缺陷或“故障”(fault),这些故障导致系统的错误执行错误(error),由于错误导致系统的错误输出失效(failure)。,故障是物理地或静态地存在的 失误、错误和失效都是系统的一种动态的转瞬即逝的现象 软件发
20、生失效标志着软件一次使用寿命的结束 发生过失效的软件通常仍然是可用的。只有当软件频繁失效,或者公认已经“过时”了的时侯,软件才被废弃,意味着当前这一版本软件使用寿命的终结。,软件故障产生原因,支持软件工作的基本条件(除硬件外的操作系统、数据库管理系统、编译程序、微代码等)的缺陷 软件设计不当 加入了允许范围之外的输入,软件可靠性的定义,软件可靠性是软件在给定的时间间隔及给定的环境条件下,按设计要求,成功地运行程序的概率。 环境条件指的是软件的使用环境。无论是什么软件,如果不对它的使用环境加以限制,都是会失效的。这种失效的数据,不能用来度量软件的可靠性。,规定的时间在定义中,一般采用“运行时间”
21、 t 作为时间的尺度。因 具体要处理的问题是多种多样的 其对应的输入环境是随机 程序中相应程序路径的选取也是随机的 软件的失效也是随机的 应当把运行时间t当作随机变量来考虑。,规定的功能在考虑软件可靠性时,首先应当明确软件的功能是什么,哪些功能是主要的,哪些功能是次要的。一般从软件需求分析说明书和设计说明书中可以了解这些情况。由于功能不同,失效带来的损失就不一样。因此,还要明确哪些失效是致命的,哪些失效是非致命的,哪些又是容易修复的。此外,还要明确,怎样才算是完成了一个规定的功能。,成功地运行程序是指不仅程序能正确地运行,满足用户对它的功能要求, 而且当程序一旦受到意外的伤害,或系统故障时,能
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
2000 积分 0人已下载
下载 | 加入VIP,交流精品资源 |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件 质量 概念 质量保证 可靠性 配置管理 PPT
