您好,欢迎访问三七文档
当前软件质量的现状软件质量的基本概念软件质量保证软件的可靠性软件开发中的可靠性控制软件配置管理0当前软件质量的现状来自北京航空航天大学可靠性工程研究所的数据软件项目中途中止的占25%软件产品在交付时通常在产品中还残留15%的缺陷软件公司化在软件返工(修改)上的资源为30-44%软件失效往往比硬件失效高一个数量级中船总某军舰上计算机软件问题:中船总某军舰计算机CPU运行850小时故障120多次软件占70%MTBF≈10h致命故障12次软件占70%MTBF≈100h0当前软件质量的现状(续)主动控制技术(ACT)试验机我国第一架试验机由于软件故障而坠机在我国正在研制的若干型号的机型中,由软件引起的故障与由硬件引起的故障之比已达3:1。有些型号在试飞阶段,软件故障占故障总数的80%。0当前软件质量的现状(续)0当前软件质量的现状(续)NASA(美国航空航天局)的统计1软件质量的基本概念软件质量的定义软件质量特性软件质量模型软件质量的度量和评价1.1软件质量的定义ANSI/IEEEStd729-1983的定义与软件产品满足规定的和隐含的需求的能力有关的特征或特性的全体M.J.Fisher的定义所有描述计算机软件优秀程度的特性的组合质量特性及其组合,是软件开发与维护中的重要考虑因素为满足软件的各项精确定义的功能、性能需求,符合文档化的开发标准,需要相应地给出或设计一些质量特性及其组合。如果这些质量特性及其组合都能在产品中得到满足,则这个软件产品质量就是高的。1.1软件质量的定义(续)软件需求是度量软件质量的基础不符合需求的软件就不具备质量。标准还定义了一组开发准则——开发准则是软件质量的保证软件质量还在不断的发展和完善软件质量是各种特性的复杂组合。它随着应用的不同而不同,随着用户提出的质量要求不同而不同。1.1软件质量的定义(续)1.2软件质量特性软件质量特性,反映了软件的本质讨论一个软件的质量,问题最终要归结到定义软件的质量特性。定义一个软件的质量,就等价于为该软件定义一系列质量特性。人们通常把影响软件质量的特性用软件质量模型来描述。1.3软件质量模型软件质量特性通常用分层模型来定义,它包括基本质量特性和二次特性基本质量特性可以由一些子质量特性定义和度量。二次特性在必要时又可由它的一些子质量特性定义和度量。著名的软件质量模型1976年Boehm质量模型1979年McCall质量模型1985年ISO质量模型1.3.1Boehm质量模型1.3.2McCall质量模型1.3.3ISO的软件质量评价模型按照ISO/TC97/SC7/WG3/1985-1-30/N382,软件质量度量模型由三层组成软件质量需求评价准则(SQRC)软件质量设计评价准则(SQDC)软件质量度量评价准则(SQMC)高层和中层建立国际标准,低层可由各使用单位视实际情况制定1.3.3ISO的软件质量评价模型(续)1.3.4ISO质量特性国际标准(ISO/IEC9126-1991)质量特性:功能性可靠性可维护性效率可使用性可移植性1.3.4ISO质量特性国际标准(续)(ISO/IEC9126-1991)推荐21个子特性:适合性准确性互用性依从性安全性成熟性容错性可恢复性可理解性易学习性操作性时间特性资源特性可分析性稳定性可变更性可测试性可安装性可替换性适应性一致性1.3.4ISO质量特性国际标准(续)(ISO/IEC9126-1991)质量特性的相互影响1.4软件质量的度量和评价软件质量特性度量有两类:预测型验收型预测度量是利用定量或定性的方法,估算软件质量的评价值,以得到软件质量的比较精确的估算值。验收度量是在软件开发各阶段的检查点,对软件的要求质量进行确认性检查的具体评价值,它是对开发过程中的预测进行评价。1.4.1软件质量度量的种类预测度量又分为:尺度度量二元度量尺度度量,是一种定量度量。它适用于一些能够直接度量的特性。如出错率二元度量,是一种定性度量。它适用于一些只能间接度量的特性,例如,可使用性、灵活性等等。1.4.2预测度量尺度度量检查表1.4.2预测度量(续)二元度量检查表1.4.2预测度量(续)通过对照检查项目,确定一种质量特性的有无。例如,在设计和编码阶段的复杂性度量,利用尺度度量方法来做。对模块复杂性的度量采用McCabe环路度量。对于二元度量,可针对检查表中每一项都应给以记分,指定信息存在时记“1”,否则记“0”。表中所有各项的分数相加,即得度量结果。1.4.3预测度量的实施2软件的质量保证质量保证的概念软件质量保证的主要任务质量保证的基本措施质量保证的实施软件的结构特性与评价标准2.1质量保证的概念什么是质量保证,它是为保证产品和服务充分满足消费者要求的质量而进行的有计划、有组织的活动。质量保证是面向消费者的活动,是为了使产品实现用户要求的功能,站在用户立场上来掌握产品质量的。软件的质量保证就是向用户提供满意的高质量的软件产品。软件的质量保证活动也和一般的质量保证活动一样,是确保软件产品从诞生到消亡为止的所有阶段的质量的活动。即为了确定、达到和维护需要的软件质量而进行的所有有计划、有系统的管理活动。2.1质量保证的概念(续)2.2软件质量保证的主要任务用户要求定义熟练掌握正确定义用户要求的技术熟练使用定义软件需求的支持工具掌握收集和积累有关用户业务领域的各种业务的资料和技术的技能。减少重复劳动和无效劳动既有软件是否可以复用新生产软件应具有复用性重视需求测试,减少因需求规格说明有误、设计有误而造成的返工建立互相交流、信息往来通畅、具横向交流特征的信息流通网掌握开发新软件的方法采用先进的开发技术:如结构化技术、面向对象技术使用数据库技术或网络化技术使用新型开发工具或环境改进开发过程组织外部协作必须明确规定进度管理、质量管理、交接检查、维护体制等各方面的要求,建立跟踪检查的体制2.2软件质量保证的主要任务(续)发挥每个开发者的能力开发者必须有学习各专业业务知识、生产技术和管理技术的能动性。制定技术培训计划、技术水平标准。提高软件开发的工程能力要想生产出高质量的软件产品必须有高水平的软件工程能力。在软件开发环境或软件工具箱的支持下,运用先进的开发技术、工具和管理方法开发软件的能力。2.2软件质量保证的主要任务(续)提高计划和管理质量的能力项目开发初期计划阶段的项目计划评价计划执行过程中及计划完成报告的评价将评价、评审工作在工程实施之前就列入整个开发工程的工程计划中提高软件开发项目管理的精确度2.2软件质量保证的主要任务(续)2.3.1确定软件等级,实行分级管理在需求分析阶段应根据软件失效后对系统安全性和性能的不同影响程度,将软件划分为若干个等级。一般,可根据软件的安全性、重要性将软件划分为关键软件、重要软件和一般软件。在软件研制过程中,应视软件的等级采取不同的管理措施。2.3质量保证的基本措施2.3.2给出关键、重要软件的可靠性指标在确定软件可靠性指标时应注意:a.采用使用部门能观察到且可验证的指标b.分配时按软件安全关键程度适当加权c.给出指标时应明确验收方法。常用的软件可靠性指标有:MTBF、MTTF可用性AMDT初期故障率2.3质量保证的基本措施(续)2.3.3制定软件的可靠性、安全性设计准则a.每个阶段的具体质量要求和判据;b.需求分析、设计和编程阶段需遵守可靠性、安全性设计准则和相应的设计检查单;c.每阶段应进行的具体验证和评价活动类型、活动计划和责任者及其职责。2.3质量保证的基本措施(续)2.3.4认真编制符合国军标规定的软件设计文档应及时、认真地根据GJB438A-96或其它相应标准的要求,对级别不同的软件编制相应当文档。在转阶段评审中,必须对相应的软件文档进行认真评审。2.3质量保证的基本措施(续)2.3.5严格进行软件的阶段评审软件研制单位应认真组织并严格进行软件的阶段评审;特别应认真组织好软件需求评审,软件详细设计评审,软件测试和验收评审。在评审前必须确定方式、内容、要求和评审组成员。在评审应对评审中的问题进行更改、跟踪归零。2.3质量保证的基本措施(续)2.3.6加强软件的配置管理应根据国军标有关规定对软件配置标识、配置控制、配置状况记录和配置审核进行管理。必须制定“软件配置管理计划”,并按计划实施规定的管理活动。应按照型号软件的研制进程对软件的版本进行标识并实施控制。软件研制单位应建立本单位的软件开发库,受控库和成品库,并制定各软件库的管理规程。已归档软件产品的更改必须严格履行审批手续,更改后的软件必须进行回归测试,并重新归档。2.3质量保证的基本措施(续)2.3.7强化软件测试a)制定软件测试计划b)在软件研的同时进行测试c)规范软件的测试d)安全关键软件的第三方测试2.3质量保证的基本措施(续)2.3.8建立闭环的软件故障报告、分析和纠正系统(SFRACAS)在系统分析和设计阶段开始,就应建立SFRACAS,在软件测试过程中,应按有关规定记录、整理、分析有关故障数据,实施闭环控制,有效地消除软件缺陷、故障,控制软件研制工作的质量。在软件各开发、测试部门及外场测试部门及外场试验,使用部门应建立问题报告制度,软件的更改必须认真填写“软件问题报告单”及“软件更改报告单”。对软件的更改记录和信息应纳入系统承制单位的信息闭环管理系统。2.3质量保证的基本措施(续)2.4质量保证活动的实施-TPDCATarget设定质量目标。Plan设定评测检查项目(质量评价准则)。制定实现质量目标的方法或手段。Do制作高质量的规格说明和程序。在接受质量检查前先做自我检查。Check质量检查,评价结果用质量图的形式表示Action:对评价发现的问题进行改进活动,如果实现并达到了质量目标就转入下一个工程阶段。这样重复“Plan”到“Action”的过程,直到整个开发项目完成。2.5软件的结构特性与评价标准逻辑数据层次评价标准全部数据元素定义完毕所有层次的操作符定义完毕功能层次评价标准全部功能元素定义完毕所有层次的操作符定义完毕逻辑数据与功能的对应关系评价准则所有数据都与功能对应所有功能元素都与数据对应逻辑数据与功能的相互关系个数(局部)物理数据层次评价准则全部数据元素定义完毕物理数据之间的所有指针定义完毕上述指针都具有层次性模块层次评价准则所有模块定义完毕模块之间所有控制关系定义完毕上述关系都是标准过程调用形式各层次上的模块大小适当2.5软件的结构特性与评价标准(续)物理数据与模块的对应关系评价准则所有物理数据都与模块对应所有模块都与物理数据对应对应于一个物理数据的模块数(以一对一为好)功能与模块的对应关系评价准则所有功能都与模块对应对应模块的功能个数(以一对一为好)2.5软件的结构特性与评价标准(续)3软件可靠性与可靠性工程软件生存期与软件寿命的关系软件可靠性定义测试中的可靠性分析SPQL评价软件可靠性工程软件可靠性的测试与验证3.1软件生存期与软件寿命的关系软件寿命的基本概念一切有生命的东西都有“寿命”概念延伸:产品的寿命就是指该产品从出厂直到丧失使用价值的持续时间。从软件工程的角度来说,软件产品的寿命是指软件的整个生存期。从用户的角度来看,更关心的是软件在交付使用后的情况——MTBF:平均失效间隔时间软件在使用期间能够正常工作的持续时间叫做软件的使用寿命。软件的使用寿命与使用环境有关。软件故障与失效软件发生失效(failure)标志着软件一次使用寿命的结束失效是由故障引起的:设计者的失误─致使系统中留下错误的设计(bug),使软件存有故障(fault),这些故障导致系统的错误执行─错误(error),从而导致系统无法达到预期的结果─失效(failure)。故障往
本文标题:质量与可靠性
链接地址:https://www.777doc.com/doc-443204 .html