软件质量概念.ppt

上传人:文库蛋蛋多 文档编号:2975571 上传时间:2023-03-07 格式:PPT 页数:71 大小:291.03KB
返回 下载 相关 举报
软件质量概念.ppt_第1页
第1页 / 共71页
软件质量概念.ppt_第2页
第2页 / 共71页
软件质量概念.ppt_第3页
第3页 / 共71页
软件质量概念.ppt_第4页
第4页 / 共71页
软件质量概念.ppt_第5页
第5页 / 共71页
点击查看更多>>
资源描述

《软件质量概念.ppt》由会员分享,可在线阅读,更多相关《软件质量概念.ppt(71页珍藏版)》请在三一办公上搜索。

1、1,软件质量概念软件质量保证软件可靠性,软件质量管理,2,软件质量概念,软件质量的定义软件质量特性软件质量模型软件质量的度量和评价,3,软件质量的定义,ANSI/IEEE Std 729-1983定义软件质量为“与软件产品满足规定的和隐含的需求的能力有关的特征或特性的全体”。软件需求是度量软件质量的基础。不符合需求的软件就不具备质量。质量/成本,性价比,4,质量特性及其组合,是软件开发与维护中的重要考虑因素,为满足软件的各项精确定义的功能、性能需求,符合文档化的开发标准,需要相应地设计实现一些质量特性及其组合。软件质量是各种特性的复杂组合。它随着应用的不同而不同,随着用户提出的质量要求不同而不

2、同。,5,软件质量特性,定义一个软件的质量,就等价于为该软件定义一系列质量特性。软件质量模型描述影响软件质量的特性。,6,软件质量模型,软件质量特性定义成分层模型最基本的叫做基本质量特性,它可以由一些子质量特性定义和度量。二次特性在必要时又可由它的一些子质量特性定义和度量。1976年 Boehm质量模型1979年 McCall质量模型1985年 ISO质量模型,7,McCall质量模型,可维护性(Maintainability)可测试性(Testability)灵活性(Flexibility),正确性(Correctness)可靠性(Reliability)可使用性(Usability)效率(

3、Efficiency)完整性(Integrity),互连性(Interoperability)可移植性(Portability)复用性(Reusability),8,ISO的软件质量评价模型,按照ISO/TC97/SC7/WG3/1985-1-30/N382,软件质量度量模型由三层组成软件质量需求评价准则(SQRC)软件质量设计评价准则(SQDC)软件质量度量评价准则(SQMC)高层和中层建立国际标准,低层可由各使用单位视实际情况制定,9,1991年 ISO质量特性国际标准(ISO/IEC9126),6 SQRC质量特性:功能性、可靠性、可维护性、效率、可使用性、可移植性推荐21个SQDC子特

4、性:适合性 准确性 互用性 依从性 安全性 成熟性 容错性 可恢复性 可理解性 易学习性 操作性 时间特性 资源特性 可分析性 稳定性 可变更性 可测试性 可安装性 可替换性 适应性 一致性,10,软件质量,功能性,可靠性,可维护性,效率,可使用性,可移植性,适合性,准确性,互操作性,依从性compliance,安全性,成熟性,容错性,易恢复性,易理解性,易学习性,易操作性,时间特性,资源特性,易分析性,稳定性,易变更性,易测试性,易安装性,易替换性,适应性,遵循性conformance,质量特性,质量子特性,质量度量准则SRMC,使用单位自行规定,ISO 9126质量模型,11,12,软件质

5、量的度量和评价,软件质量特性度量有两类:预测型和验收型。预测度量是利用定量或定性的方法,估算软件质量的评价值。验收度量是在软件开发各阶段的检查点,对软件的要求质量进行确认性检查的具体评价值。,13,度量有两种。第一种叫做尺度度量,这是一种定量度量。它适用于一些能够直接度量的特性,例如,出错率定义为:错误数KLOC单位时间。第二种叫做二元度量,这是一种定性度量。它适用于一些只能间接度量的特性,例如,可使用性、灵活性等等。,14,尺度度量检查表,15,二元度量检查表,16,通过对照检查项目,确定一种质量特性的有无。例如,在设计和编码阶段的复杂性度量,利用尺度度量方法来做。对模块复杂性的度量采用Mc

6、Cabe 环路度量。对于二元度量,可针对检查表中每一项都应给以记分,指定信息存在时记“1”,否则记“0”。表中所有各项的分数相加,即得度量结果。,17,软件的质量保证QA,质量保证的概念软件质量保证的主要任务质量保证与检验软件质量保证体系质量保证的实施软件的质量设计,18,质量保证的概念Quality Assurance(QA),什么是质量保证,它是为保证产品和服务充分满足消费者要求的质量而进行的有计划、有组织的活动。质量保证是面向消费者的活动,是为了使产品实现用户要求的功能,站在用户立场上来掌握产品质量。软件的质量保证就是向用户及社会提供合格产品。,19,软件的质量保证活动也和一般的质量保证

7、活动一样,是确保软件产品从诞生到消亡为止的所有阶段的质量的活动。即为了确定、达到和维护需要的软件质量而进行的所有有计划、有系统的管理活动。,20,软件质量保证的主要任务,为了提高软件的质量和生产软件的效率,软件质量保证的主要任务大致可归结为8点。,21,1.了解用户,需求,熟练掌握正确定义用户要求的技术熟练使用和指导他人使用定义软件需求的支持工具重视领导全体开发人员收集和积累有关用户业务领域的各种业务的资料和技术技能。,22,2.力争不重复劳动,考虑哪些既有软件可以复用在开发过程中,随时考虑所生产软件的复用性。重复劳动增加成本,23,3.掌握开发新软件的方法,在开发新软件的过程中大力使用和推行

8、软件工程学中所介绍的开发方法和工具。使用先进的开发技术:如结构化技术、面向对象技术 使用数据库技术或网络化技术 应用开发工具或环境 改进开发过程,24,4.组织外部力量协作的方法,一个软件自始至终由同一个软件开发单位来开发,也许是最理想的。但在现实中常常难以做到。改善对外部协作部门的开发管理。必须明确规定进度管理、质量管理、交接检查、维护体制等各方面的要求,建立跟踪检查的体制。,25,5.排除无效劳动,最大的无效劳动就是因需求规格说明有误、设计有误而造成的返工。定量记录返工工作量,收集和分析返工劳动花费数据较大的无效劳动是重复劳动,即相似的软件在几个地方同时开发建立互相交流、信息往来通畅、具横

9、向交流特征的信息流通网,26,6.发挥每个开发者的能力,软件生产是人的智能生产活动,它依赖于人的能力和开发组织团队的能力。开发者必须有学习各专业业务知识、生产技术和管理技术的能动性。管理者或产品服务者要制定技术培训计划、技术水平标准,以及适用于将来需要的中长期技术培训计划。,27,7.提高软件开发的工程能力,要想生产出高质量的软件产品必须有高水平的软件工程能力。在软件开发环境或软件工具箱的支持下,运用先进的开发技术、工具和管理方法开发软件的能力。,28,8.提高计划和管理质量能力,项目开发初期计划阶段的项目计划评价计划执行过程中及计划完成报告的评价将评价、评审工作在工程实施之前就列入整个开发工

10、程的工程计划中提高软件开发项目管理的精确度,29,质量保证与检验,其一是切实搞好开发阶段的管理,检查各开发阶段的质量保证活动开展得如何;其二是预先防止软件差错给用户造成损失。为了确保每个开发过程的质量,防止把软件差错传递到下一个过程,必须进行质量检验。,30,质量检验的原则,用户要求的是产品所具有的功能,这是“真质量”。靠质量检验,一般检查的是“真质量”的质量特性。能靠质量检验的质量特性,即使全数检验,也只是代表产品的部分质量特性。必须在各开发阶段对影响产品质量的因素进行切实的管理,认真检查实施落实情况。,31,当开发阶段出现异常时,要从质量特性方面进行检验,看是否会给后续阶段带来影响。由于工

11、程能力不足,软件产品不能满足用户要求的质量。这时可通过检验对该产品做出评价,判断是否能向用户提供该产品。要以一定的标准检验产品,根据产品的质量特性,检查各个过程的管理状态。,32,质量检验的类型,供货检验:这是指对委托外单位承担开发作业,而后买进或转让的构成软件产品的部件、规格说明、半成品或产品的检查。中间检验阶段评审:在各阶段的中途或向下一阶段移交时进行的检查叫做中间检验或阶段评审。验收检验:确认产品是否已达到可以进行“产品检验”的质量要求。产品检验:这是软件产品交付使用前进行的检查。,33,软件质量保证体系,软件的质量保证活动,是涉及各个门。明确部门间的质量保证业务,确立部门间的联合与协作

12、的机构就是质量保证体系。必须明确反馈途径。必须明确各部门的职责。必须确定保证系统运行的方法、工具、有关文档资料,以及系统管理的规程和标准。,34,必须明确决定是否可向下一阶段进展的评价项目和评价准则。必须不断地总结系统管理的经验教训,能够修改系统。制定质量保证计划,在计划中 确定质量目标 确定在每个阶段为达到总目标所应达到的要求 确定进度安排 确定所需人力、资源和成本等。,35,36,软件质量保证规程和技术准则,规定在项目的哪个阶段进行评审及如何评审;规定在项目的哪个阶段应当产生哪些报告和计划;规定产品各方面测试应达到的水平。在每次评审和测试中发现的错误如何修正;,37,描述希望得到的质量度量

13、;说明各种软件人员的职责,规定为了达到质量目标他们必须进行哪些活动。建立 在各阶段中执行质量评价和质量检查系统 有效运用质量信息系统,并使其运行。,38,软件质量保证计划示例,gbSQAP.doc,39,质量保证的实施,软件质量保证的实施需要从纵向和横向两个方面展开。要求所有与软件生存期有关的人员都要参加 要求对产品形成的全过程进行质量管理这要求整个软件部门齐心协力,不断完善软件的开发环境。此外还需要与用户共同合作。,40,质量目标与度量,为了开发高质量的软件,需要明确软件的功能,明确软件应达到什么样的质量标准,即质量目标。为了达到这个目标,在开发过程中的各个阶段进行质量设计,检查和评价。在做

14、质量评价时,需要有对质量进行度量的准则和方法。需要有在软件生存期中如何使用这些准则和方法的质量保证步骤,以及提高该项作业效率的工具,41,软件质量度量和保证的条件,适应性:适应各种用户、软件类型易学性:不需要特殊技术,易掌握可靠性:同个软件的评价结果一致针对性:设计阶段就确立质量目标,在各个阶段实施落实。,42,质量保证活动的实施步骤:,Target:以用户要求和开发方针为依据,对质量需求准则、质量设计准则的各质量特性设定质量目标。Plan:设定适合于被开发软件的评测检查项目(质量评价准则)。研讨实现质量目标的方法或手段。Do:制作高质量的规格说明和程序。在接受质量检查前先自行检查。,43,C

15、heck:以Plan阶段设定的质量评价准则进行评价。计算结果用质量图的形式表示出来。比较评价结果的质量得分和质量目标,看其是否合格。Action:对评价发现的问题进行改进活动,如果实现并达到了质量目标就转入下一个工程阶段。这样重复“Plan”到“Action”的过程,直到整个开发项目完成。,44,45,Target,46,47,48,软件的质量设计,质量特性转换为软件的内部结构在软件定义阶段,必须定义对软件的质量需求。即确定软件的质量特性及必需的评价准则,并定量地设定其必须达到的质量水平在以后软件开发的每一阶段结束时,要算出评价的分数,然后与目标值加以对照,以评估在这一阶段开发的软件质量是否达

16、到要求。,49,为了实现规定的质量特性,就需要把这些质量特性转换为软件的内部结构的特性。例如,软件质量需求中的“性能”,可以转换成软件内部结构中的构成元素,即每一个程序模块和物理数据各自应具有的性能特性。这些性能特性的累积就形成外部规格中的性能特性。,50,软件的结构特性与评价标准,结构特性 逻辑数据层次评价标准 全部数据元素定义完毕 所有层次的操作符定义完毕结构特性 功能层次评价标准 全部功能元素定义完毕 所有层次的操作符定义完毕,51,结构特性 逻辑数据与功能的对应关系评价准则 所有数据都与功能对应 所有功能元素都与数据对应 逻辑数据与功能的相互关系个数(局部),52,结构特性 物理数据层

17、次评价准则 全部数据元素定义完毕 物理数据之间的所有指针定义完毕 上述指针都具有层次性,53,结构特性 模块层次评价准则 所有模块定义完毕 模块之间所有控制关系定义完毕 上述关系都是标准过程调用形式 各层次上的模块大小适当,54,结构特性 物理数据与模块的对应关系评价准则 所有物理数据都与模块对应 所有模块都与物理数据对应 对应于一个物理数据的模块数(以一对一为好),55,结构特性 逻辑数据与物理数据的对应关系评价准则 所有逻辑数据都与物理数据对应 对应于一个物理数据的逻辑数据数(以一对一为好),56,结构特性 功能与模块的对应关系评价准则 所有功能都与模块对应 对应模块的功能个数(以一对一为

18、好),57,软件可靠性,软件生存期与软件寿命的关系软件可靠性定义测试中的可靠性分析测试精确度和测试覆盖度的评价,58,软件生存期既软件寿命,“寿命”也可以延伸到对非生命产品的质量评价上来。如一个电子产品的寿命就是指该产品从出厂直到丧失使用价值的持续时间。从软件工程的角度来说,软件产品的寿命是指软件的整个生存期。,59,从软件用户的角度来看,更关心的是软件在交付使用后的情况如何。希望用一个指标平均失效间隔时间 MTBF(MeanTime Between Failure)来表明,在规定的要求和条件下,能在多大的程度上依赖这个软件来完成任务。我们把在使用期间软件能够持续正常工作的时间叫做软件的使用寿

19、命。,60,软件可靠性的定义,软件可靠性是软件在给定的时间间隔及给定的环境条件下,按设计要求,成功地运行程序的概率。环境条件指的是软件的使用环境。无论是什么软件,如果不对它的使用环境加以限制,都是会失效的。这种失效的数据,不能用来度量软件的可靠性。,61,规定的时间在定义中,一般采用“运行时间”t 作为时间的尺度。因 具体要处理的问题是多种多样的 其对应的输入环境是随机 程序中相应程序路径的选取也是随机的 软件的失效也是随机的应当把运行时间t当作随机变量来考虑。,62,规定的功能在考虑软件可靠性时,首先应当明确软件的功能是什么,哪些功能是主要的,哪些功能是次要的。一般从软件需求分析说明书和设计

20、说明书中可以了解这些情况。由于功能不同,失效带来的损失就不一样。因此,还要明确哪些失效是致命的,哪些失效是非致命的,哪些又是容易修复的。此外,还要明确,怎样才算是完成了一个规定的功能。,63,成功地运行程序是指不仅程序能正确地运行,满足用户对它的功能要求,而且当程序一旦受到意外的伤害,或系统故障时,能尽快恢复,仍能正常地运行。,64,测试中的可靠性分析,在软件开发的过程中,利用测试的统计数据,估算软件的可靠性,以控制软件的质量是至关重要的。推测错误的产生频度,即推测错误产生的时间间隔推测残留在程序中的错误数评价测试的精确度和覆盖率,65,推测错误的产生频度,估算错误产生频度的一种方法是估算平均

21、失效等待时间MTTF(Mean Time To Failure)MTTF估算公式(Shooman模型),66,故障累积指数曲线模型,67,估算软件中故障总数ET 的方法,利用Shooman模型估算程序中原来错误总量ET 瞬间估算,68,SPQL(Software Product Quality Level)用如下公式度量:SPQL AcCv其中,Ac(Test Accuracy)是测试的精确度,它反映了测试的质量;Cv(Test Coveragy)是测试的覆盖度,它反映了测试的数量。,测试结束时软件产品质量水准,69,测试质量的度量可以靠测试的故障捕捉率和遗漏率来衡量。测试数量的度量指标是执行的测试用例数、确认的程序路径数等等;,70,测试精确度Ac,表明在测试的过程中以多大的把握捕捉了软件中潜在的故障。测定Ac,需要预先植入播种故障,然后通过测试,根据播种故障的捕捉率来推测原有故障的捕获率。,71,测试覆盖率Cv,表明在整个测试期间发现软件内潜在故障的可能性有多大。可通过被测试对象软件内潜在的原有故障的捕捉率来测定的。,

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

当前位置:首页 > 建筑/施工/环境 > 项目建议


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号