质量与可靠性课件_第1页
质量与可靠性课件_第2页
质量与可靠性课件_第3页
质量与可靠性课件_第4页
质量与可靠性课件_第5页
已阅读5页,还剩203页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

当前软件质量的现状软件质量的基本概念软件质量保证软件的可靠性软件开发中的可靠性控制软件配置管理软件质量与可靠性当前软件质量的现状软件质量与可靠性10当前软件质量的现状来自北京航空航天大学可靠性工程研究所的数据软件项目中途中止的占25%软件产品在交付时通常在产品中还残留15%的缺陷软件公司化在软件返工(修改)上的资源为30-44%软件失效往往比硬件失效高一个数量级0当前软件质量的现状来自北京航空航天大学可靠性工程研究所的2

中船总某军舰上计算机软件问题:中船总某军舰计算机CPU运行850小时故障120多次软件占70%MTBF≈10h致命故障12次软件占70%MTBF≈100h0当前软件质量的现状(续)0当前软件质量的现状(续)3主动控制技术(ACT)试验机我国第一架试验机由于软件故障而坠机在我国正在研制的若干型号的机型中,由软件引起的故障与由硬件引起的故障之比已达3:1。有些型号在试飞阶段,软件故障占故障总数的80%。0当前软件质量的现状(续)主动控制技术(ACT)试验机0当前软件质量的现状(续)40当前软件质量的现状(续)NASA(美国航空航天局)的统计0当前软件质量的现状(续)NASA(美国航空航天局)的统计51软件质量的基本概念软件质量的定义软件质量特性软件质量模型软件质量的度量和评价1软件质量的基本概念软件质量的定义61.1软件质量的定义ANSI/IEEEStd729-1983的定义与软件产品满足规定的和隐含的需求的能力有关的特征或特性的全体M.J.Fisher的定义

所有描述计算机软件优秀程度的特性的组合1.1软件质量的定义ANSI/IEEEStd729-197质量特性及其组合,是软件开发与维护中的重要考虑因素为满足软件的各项精确定义的功能、性能需求,符合文档化的开发标准,需要相应地给出或设计一些质量特性及其组合。如果这些质量特性及其组合都能在产品中得到满足,则这个软件产品质量就是高的。1.1软件质量的定义(续)质量特性及其组合,是软件开发与维护中的重要考虑因素1.1软件8软件需求是度量软件质量的基础不符合需求的软件就不具备质量。标准还定义了一组开发准则——开发准则是软件质量的保证软件质量还在不断的发展和完善软件质量是各种特性的复杂组合。它随着应用的不同而不同,随着用户提出的质量要求不同而不同。

1.1软件质量的定义(续)软件需求是度量软件质量的基础1.1软件质量的定义(续)91.2软件质量特性软件质量特性,反映了软件的本质讨论一个软件的质量,问题最终要归结到定义软件的质量特性。定义一个软件的质量,就等价于为该软件定义一系列质量特性。人们通常把影响软件质量的特性用软件质量模型来描述。1.2软件质量特性软件质量特性,反映了软件的本质101.3软件质量模型软件质量特性通常用分层模型来定义,它包括基本质量特性和二次特性基本质量特性可以由一些子质量特性定义和度量。二次特性在必要时又可由它的一些子质量特性定义和度量。著名的软件质量模型1976年Boehm质量模型1979年McCall质量模型1985年ISO质量模型1.3软件质量模型软件质量特性通常用分层模型来定义,它包括基111.3.1Boehm质量模型1.3.1Boehm质量模型121.3.2McCall质量模型1.3.2McCall质量模型131.3.3

ISO的软件质量评价模型按照ISO/TC97/SC7/WG3/1985-1-30/N382,软件质量度量模型由三层组成软件质量需求评价准则(SQRC)软件质量设计评价准则(SQDC)软件质量度量评价准则(SQMC)高层和中层建立国际标准,低层可由各使用单位视实际情况制定1.3.3ISO的软件质量评价模型按照ISO/TC97/S141.3.3

ISO的软件质量评价模型(续)1.3.3ISO的软件质量评价模型(续)151.3.4ISO质量特性国际标准

(ISO/IEC9126-1991)质量特性:功能性可靠性可维护性效率可使用性可移植性1.3.4ISO质量特性国际标准

(ISO/I161.3.4ISO质量特性国际标准(续)

(ISO/IEC9126-1991)推荐21个子特性:适合性准确性互用性依从性安全性成熟性容错性可恢复性可理解性易学习性操作性时间特性资源特性可分析性稳定性可变更性可测试性可安装性可替换性适应性一致性

1.3.4ISO质量特性国际标准(续)

(IS171.3.4ISO质量特性国际标准(续)

(ISO/IEC9126-1991)质量特性的相互影响1.3.4ISO质量特性国际标准(续)

(IS181.4

软件质量的度量和评价软件质量特性度量有两类:预测型验收型预测度量是利用定量或定性的方法,估算软件质量的评价值,以得到软件质量的比较精确的估算值。验收度量是在软件开发各阶段的检查点,对软件的要求质量进行确认性检查的具体评价值,它是对开发过程中的预测进行评价。1.4.1

软件质量度量的种类1.4软件质量的度量和评价软件质量特性度量有两类:1.4.19预测度量又分为:尺度度量二元度量尺度度量,是一种定量度量。它适用于一些能够直接度量的特性。如出错率二元度量,是一种定性度量。它适用于一些只能间接度量的特性,例如,可使用性、灵活性等等。1.4.2

预测度量预测度量又分为:1.4.2预测度量20尺度度量检查表1.4.2

预测度量(续)尺度度量检查表1.4.2预测度量(续)21二元度量检查表1.4.2

预测度量(续)二元度量检查表1.4.2预测度量(续)22通过对照检查项目,确定一种质量特性的有无。例如,在设计和编码阶段的复杂性度量,利用尺度度量方法来做。对模块复杂性的度量采用McCabe环路度量。对于二元度量,可针对检查表中每一项都应给以记分,指定信息存在时记“1”,否则记“0”。表中所有各项的分数相加,即得度量结果。1.4.3

预测度量的实施通过对照检查项目,确定一种质量特性的有无。1.4.3预测度232

软件的质量保证质量保证的概念软件质量保证的主要任务质量保证的基本措施质量保证的实施软件的结构特性与评价标准2软件的质量保证质量保证的概念242.1质量保证的概念什么是质量保证,它是为保证产品和服务充分满足消费者要求的质量而进行的有计划、有组织的活动。质量保证是面向消费者的活动,是为了使产品实现用户要求的功能,站在用户立场上来掌握产品质量的。软件的质量保证就是向用户提供满意的高质量的软件产品。2.1质量保证的概念什么是质量保证,它是为保证产品和服务充分25软件的质量保证活动也和一般的质量保证活动一样,是确保软件产品从诞生到消亡为止的所有阶段的质量的活动。即为了确定、达到和维护需要的软件质量而进行的所有有计划、有系统的管理活动。2.1质量保证的概念(续)软件的质量保证活动也和一般的质量保证活动一样,是确保软件产品262.2软件质量保证的主要任务用户要求定义熟练掌握正确定义用户要求的技术熟练使用定义软件需求的支持工具掌握收集和积累有关用户业务领域的各种业务的资料和技术的技能。减少重复劳动和无效劳动既有软件是否可以复用新生产软件应具有复用性重视需求测试,减少因需求规格说明有误、设计有误而造成的返工建立互相交流、信息往来通畅、具横向交流特征的信息流通网2.2软件质量保证的主要任务用户要求定义27掌握开发新软件的方法采用先进的开发技术:如结构化技术、面向对象技术使用数据库技术或网络化技术使用新型开发工具或环境改进开发过程组织外部协作必须明确规定进度管理、质量管理、交接检查、维护体制等各方面的要求,建立跟踪检查的体制2.2软件质量保证的主要任务(续)掌握开发新软件的方法2.2软件质量保证的主要任务(续)28发挥每个开发者的能力开发者必须有学习各专业业务知识、生产技术和管理技术的能动性。制定技术培训计划、技术水平标准。提高软件开发的工程能力要想生产出高质量的软件产品必须有高水平的软件工程能力。在软件开发环境或软件工具箱的支持下,运用先进的开发技术、工具和管理方法开发软件的能力。

2.2软件质量保证的主要任务(续)发挥每个开发者的能力2.2软件质量保证的主要任务(续)29提高计划和管理质量的能力项目开发初期计划阶段的项目计划评价计划执行过程中及计划完成报告的评价将评价、评审工作在工程实施之前就列入整个开发工程的工程计划中提高软件开发项目管理的精确度2.2软件质量保证的主要任务(续)提高计划和管理质量的能力2.2软件质量保证的主要任务(续)302.3.1确定软件等级,实行分级管理在需求分析阶段应根据软件失效后对系统安全性和性能的不同影响程度,将软件划分为若干个等级。一般,可根据软件的安全性、重要性将软件划分为关键软件、重要软件和一般软件。在软件研制过程中,应视软件的等级采取不同的管理措施。2.3质量保证的基本措施2.3.1确定软件等级,实行分级管理2.3质量保证的基本措312.3.2给出关键、重要软件的可靠性指标在确定软件可靠性指标时应注意:a.采用使用部门能观察到且可验证的指标b.分配时按软件安全关键程度适当加权c.给出指标时应明确验收方法。常用的软件可靠性指标有:MTBF、MTTF可用性AMDT初期故障率2.3质量保证的基本措施(续)2.3.2给出关键、重要软件的可靠性指标2.3质量保证的基322.3.3制定软件的可靠性、安全性设计准则a.

每个阶段的具体质量要求和判据;b.

需求分析、设计和编程阶段需遵守可靠性、安全性设计准则和相应的设计检查单;c.每阶段应进行的具体验证和评价活动类型、活动计划和责任者及其职责。

2.3质量保证的基本措施(续)2.3.3制定软件的可靠性、安全性设计准则2.3质量保证332.3.4认真编制符合国军标规定的软件设计文档应及时、认真地根据GJB438A-96或其它相应标准的要求,对级别不同的软件编制相应当文档。在转阶段评审中,必须对相应的软件文档进行认真评审。2.3质量保证的基本措施(续)2.3.4认真编制符合国军标规定的软件设计文档2.3质量342.3.5严格进行软件的阶段评审

软件研制单位应认真组织并严格进行软件的阶段评审;特别应认真组织好软件需求评审,软件详细设计评审,软件测试和验收评审。在评审前必须确定方式、内容、要求和评审组成员。在评审应对评审中的问题进行更改、跟踪归零。2.3质量保证的基本措施(续)2.3.5严格进行软件的阶段评审 2.3质量保证的基本措352.3.6加强软件的配置管理应根据国军标有关规定对软件配置标识、配置控制、配置状况记录和配置审核进行管理。必须制定“软件配置管理计划”,并按计划实施规定的管理活动。应按照型号软件的研制进程对软件的版本进行标识并实施控制。软件研制单位应建立本单位的软件开发库,受控库和成品库,并制定各软件库的管理规程。已归档软件产品的更改必须严格履行审批手续,更改后的软件必须进行回归测试,并重新归档。2.3质量保证的基本措施(续)2.3.6加强软件的配置管理2.3质量保证的基本措施(续362.3.7强化软件测试a)制定软件测试计划b)在软件研的同时进行测试c)规范软件的测试d)安全关键软件的第三方测试2.3质量保证的基本措施(续)2.3.7强化软件测试2.3质量保证的基本措施(续)372.3.8建立闭环的软件故障报告、分析和纠正系统(SFRACAS)在系统分析和设计阶段开始,就应建立SFRACAS,在软件测试过程中,应按有关规定记录、整理、分析有关故障数据,实施闭环控制,有效地消除软件缺陷、故障,控制软件研制工作的质量。在软件各开发、测试部门及外场测试部门及外场试验,使用部门应建立问题报告制度,软件的更改必须认真填写“软件问题报告单”及“软件更改报告单”。对软件的更改记录和信息应纳入系统承制单位的信息闭环管理系统。2.3质量保证的基本措施(续)2.3.8建立闭环的软件故障报告、分析和纠正系统(SFRA382.4质量保证活动的实施-TPDCATarget

设定质量目标。Plan

设定评测检查项目(质量评价准则)。制定实现质量目标的方法或手段。Do

制作高质量的规格说明和程序。在接受质量检查前先做自我检查。Check

质量检查,评价结果用质量图的形式表示Action:对评价发现的问题进行改进活动,如果实现并达到了质量目标就转入下一个工程阶段。这样重复“Plan”到“Action”的过程,直到整个开发项目完成。2.4质量保证活动的实施-TPDCATarget设定质39质量与可靠性课件402.5软件的结构特性与评价标准逻辑数据层次

评价标准全部数据元素定义完毕所有层次的操作符定义完毕功能层次

评价标准全部功能元素定义完毕所有层次的操作符定义完毕逻辑数据与功能的对应关系

评价准则所有数据都与功能对应所有功能元素都与数据对应逻辑数据与功能的相互关系个数(局部)2.5软件的结构特性与评价标准逻辑数据层次评价标准41

物理数据层次

评价准则全部数据元素定义完毕物理数据之间的所有指针定义完毕上述指针都具有层次性模块层次评价准则所有模块定义完毕模块之间所有控制关系定义完毕上述关系都是标准过程调用形式各层次上的模块大小适当2.5软件的结构特性与评价标准(续)物理数据层次评价准则2.5软件的结构特性与评价标42物理数据与模块的对应关系评价准则

所有物理数据都与模块对应所有模块都与物理数据对应对应于一个物理数据的模块数(以一对一为好)功能与模块的对应关系评价准则所有功能都与模块对应对应模块的功能个数(以一对 一为好)2.5软件的结构特性与评价标准(续)物理数据与模块的对应关系评价准则2.5软件的结构特性与433软件可靠性与可靠性工程软件生存期与软件寿命的关系软件可靠性定义测试中的可靠性分析SPQL评价软件可靠性工程软件可靠性的测试与验证3软件可靠性与可靠性工程软件生存期与软件寿命的关系443.1软件生存期与软件寿命的关系软件寿命的基本概念一切有生命的东西都有“寿命”概念延伸:产品的寿命就是指该产品从出厂直到丧失使用价值的持续时间。从软件工程的角度来说,软件产品的寿命是指软件的整个生存期。从用户的角度来看,更关心的是软件在交付使用后的情况——MTBF:平均失效间隔时间

软件在使用期间能够正常工作的持续时间叫做软件的使用寿命。软件的使用寿命与使用环境有关。3.1软件生存期与软件寿命的关系软件寿命的基本概念45软件故障与失效软件发生失效(failure)标志着软件一次使用寿命的结束失效是由故障引起的:设计者的失误─致使系统中留下错误的设计(bug),使软件存有故障(fault),这些故障导致系统的错误执行─错误(error),从而导致系统无法达到预期的结果─失效(failure)。故障往往是物理地或静态地存在的,而失误、错误和失效都是系统的一种动态的转瞬即逝的现象发生过失效的软件通常仍然是可用的。只有当软件频繁失效,或者公认已经“过时”了的时侯,软件才被废弃,意味着当前这一版本软件寿命的终结。3.1软件生存期与软件寿命的关系(续)软件故障与失效3.1软件生存期与软件寿命的关系(续)463.2软件可靠性定义软件可靠性软件在给定的时间间隔及规定的环境条件下,按设计要求,成功地运行程序,实现规定的功能的概率。环境条件指的是软件的使用环境。无论什么软件,如果不对它的使用环境加以限制,都是会失效的。这种失效的数据,不能用来度量软件的可靠性。规定的时间一般为软件的运行时间,

是一个随机变量3.2软件可靠性定义软件可靠性47规定的功能在考虑软件可靠性时,首先应当明确软件的功能是什么,哪些功能是主要的,哪些功能是次要的。一般从软件需求分析说明和设计说明中可以了解这些情况。由于功能不同,失效带来的损失就不一样。因此,还要明确哪些失效是致命的,哪些失效是非致命的,哪些又是容易修复的。此外,还要明确,怎样才算是完成了一个规定的功能。成功地运行程序指不仅程序能正确地运行,满足用户对它的功能要求,而且当程序一旦受到意外的伤害,或系统故障时,能尽快恢复,仍能正常地运行。3.2软件可靠性定义(续)规定的功能3.2软件可靠性定义(续)483.3测试中的可靠性分析利用测试的统计数据,估算软件的可靠性推测错误的产生频度,即推测错误产生的时间间隔估算错误产生频度的一种方法是估算平均失效等待时间MTTF(MeanTimeToFailure)推测残留在程序中的错误数评价测试的精确度和覆盖率

3.3测试中的可靠性分析利用测试的统计数据,估算软件的可靠49SPQL:软件产品质量水平(SoftwareProductQualityLevel)SPQL用如下公式度量:

SPQL=Ac×Cv其中Ac(TestAccuracy)——测试的精确度,它反映了测试的质量;测试质量可以用测试的故障捕捉率和遗漏率来衡量Cv(TestCoverage)——测试的覆盖度,它反映了测试的数量。测试数量可以是执行的测试用例数、确认的程序路径数等等3.4SPQL评价SPQL:软件产品质量水平(SoftwareProduct50Ac的意义:表明在测试的过程中以多大的把握捕捉了软件中潜在的故障。Ac的测定:预先植入播种故障,然后通过测试,根据播种故障的捕捉率来推测原有故障的捕获率。

3.4.1测试精确度AcAc的意义:表明在测试的过程中以多大的把握捕捉了软件中潜在的51Cv的意义:表明在整个测试期间发现软件潜在故障的可能性有多大。Cv的测定:可通过被测对象软件潜在的原有故障的捕捉率来测定的。3.4.2测试覆盖率CvCv的意义:表明在整个测试期间发现软件潜在故障的可能性有多大523.5.1软件可靠性工程的基本概念软件可靠性工程(SRE)SoftwareReliabilityEngineering:为了达到软件产品的可靠性要求而进行的一系列软件工程活动。软件可靠性工程涉及以下四方面活动和有关技术:软件可靠性分析:进行软件可靠性的需求分析、指标分配、故障树分析、故障模式和影响分析、软件开发过程中有关软件可靠性的的特性分析…软件可靠性设计和实现:进行防错设计、容错设计、检错设计、纠错设计、故障恢复设计、软件可靠性增长…3.5软件可靠性工程3.5.1软件可靠性工程的基本概念3.5软件可靠性工程533.5.1软件可靠性工程的基本概念软件可靠性测量、测试和评估:在软件生存周期各阶段进行有关软件可靠性设计、制造和管理方面的属性测量,进行基于软件运行剖面的测试用例随机输入的软件测试、软件可靠性预计、软件可靠性估计、软件可靠性验证、…软件可靠性管理:确定影响软件可靠性的因素,制定必要的设计和实现准则以及对软件开发各阶段软件可靠性相关的过程和产品的要求,依据上述有关测量数据和分析结果控制和改进开发过程,进行风险管理,改进费用效益关系,改进开发过程,对采购或重用的软件进行可靠性管理,…

3.5软件可靠性工程(续)3.5.1软件可靠性工程的基本概念3.5软件可靠性工程(543.5.1软件可靠性工程的基本概念实施软件可靠性工程要解决三个问题即软件可靠性指标的确定与分配软件可靠性要求的实现软件可靠性的验证。

3.5软件可靠性工程(续)3.5.1软件可靠性工程的基本概念3.5软件可靠性工程(553.5.2为什么要实施软件可靠性工程(SRE)?1.SREcanhelpsolvethemostimportantsoftwaredevelopmentproblem,makingyouandyourorganizationmorecompetitive.能够解决软件开发中的大多数重要问题,提升竞争力2.SREisaproven,standard,widespreadbestpractice.经过证实的、权威的、普遍的最佳工程实践3.SREiswidelyapplicable.广泛的适用性4.SREcostislow.低廉的成本5.SREscheduleimpactisminor.基于SRE的计划、进度非常合理6.SREhasadditionaladvantages.其他优势3.5软件可靠性工程(续)3.5.2为什么要实施软件可靠性工程(SRE)?3.5563.5.3JustRight准则对软件可靠性的要求应该是JustRight,这与软件测试的Goodenough一样,也是权衡投入产出比的一种原则1.选择可靠性指标,比如故障率2.选定故障率的公共测量方法3.为每个相关系统设定系统总目标故障率FIO(failureintensityobjective)

4.开展如下工作:A.找出软件的总FIOB.设计软件可靠性策略,用最低的开发成本,来满足软件FIO和目标进度的要求,3.5软件可靠性工程(续)3.5.3JustRight准则3.5软件可靠性工程573.5.3JustRight准则如何确定可靠性指标采用用户(系统)能观察到且可验证的指标依据系统可靠性指标进行分配分配时按软件安全关键程度适当加权给出指标时明确验收方法3.5软件可靠性工程(续)3.5.3JustRight准则3.5软件可靠性工程583.5.3JustRight准则常用的软件可靠性指标

MTBF、MTTF可用性AMDT(MeanDownTime)初期故障偶然故障3.5软件可靠性工程(续)3.5.3JustRight准则3.5软件可靠性工程593.5.4可靠性指导方针FailureImpactHundredsofdeaths,morethan$109costOneortwodeathsaround$106costAround$1000costAround$100costAround$10costTypicalFIO(Failures/hr)10-910-610-310-210-1TimeBetweenFailures114,000years114years6weeks100hr10hr3.5软件可靠性工程(续)3.5.4可靠性指导方针FailureImpactTyp60可靠性指导方针的应用可接受的Down机时间5分钟/年5分钟/月or1小时/年10分钟/周or9小时/年可靠性5nines(0.99999)4nines(0.9999)3nines(0.999)3.5.4可靠性指导方针的应用3.5软件可靠性工程(续)可靠性指导方针的应用可接受的Down机时间可靠性3.5.461结果分析可靠性评估测试运行软件配置和规格说明书剖面用例结果预期结果和故障判据失效数据选取测试用例构造运行剖面被测软件软件可靠性模型激励器主控机仿真器输入信号信息输出信号控制运行剖面构造测试用例生成网络通讯数据收集/比较/分析可靠性评估、预计目标系统子系统仿真与数据交联控制实时数据记录测试用例实时控制命令实时输入信号实时运行结果控制命令3.6软件可靠性的测试与验证结果可靠性测试软件配置和规格说明书剖面用例结果预期结果和故障62结果分析排错与回归测试评估和预计参数估计停止测试测试运行软件配置和规格说明书剖面用例结果预期结果和故障判据软件目标值未达目标已达目标参数软件可靠性模型选取测试用例构造运行剖面被测软件3.6软件可靠性的测试与验证(续)结果排错与评估和参数停止测试软件配置和规格说明书剖面用例结果634软件开发过程中的质量控制软件开发的主要阶段软件开发各阶段的质量控制评审在质量控制中的作用4软件开发过程中的质量控制软件开发的主要阶段64系统分析和软件定义软件需求分析设计概要设计详细设计代码编写和单元测试软件测试部件测试集成测试系统测试验收生产4软件开发中的质量控制4.1软件开发的主要阶段系统分析和软件定义4软件开发中的质量控制4.1软件开发的654.21系统分析和软件定义主要工作:分析系统要求和使用环境.拟定软件研制任务书完成标志:软件研制任务书(或类似作用的文件)管理任务:

1.拟订质量(可靠性、安全性)大纲要求2.确定资源保证3.组织交办、承办双方协调,承制方大力支持质量控制手段:

1.制定软件质保计划2.评审软件研制任务书3.明确软件验收方法4.2软件开发各阶段的质量控制4.21系统分析和软件定义4.2软件开发各阶段的质量控制664.2.2软件需求分析主要工作:

1.确定运行环境2.确定功能、性能和接口要求,编写需求规格说明3.确定关键软件4.制定项目开发计划5.制定计算机软件/硬件系统测试计划完成标志:

1.软件需求规格说明2.项目开发计划3.计算机软件系统测试计划(初步)管理任务:

1.制定质量大纲实施计划2.组织评审3.进行配置管理4.进行进度管理5.组织交办、承办双方协调并由交办方认可质量控制手段:

1.评审软件需求规格说明2.与开发部门一起确定安全/关键软件3.评审系统测试计划4.2软件开发各阶段的质量控制(续)4.2.2软件需求分析4.2软件开发各阶段的质量控制(续674.2.3设计——概要设计主要工作:1.建立总体结构、划分模块2.定义各功能模块接口3.进行可靠性、安全性分析和设计4.制定计算机软件部件集成和测试计划完成标志:1.概要设计说明2.计算机软件部件集成和测试计划(初步)管理任务:1.组织评审2.组织记录并报告问题3.进行配置管理4.进行进度管理质量控制手段:

1评审概要设计说明2.评审软件集成测试计划4.2软件开发各阶段的质量控制(续)4.2.3设计——概要设计4.2软件开发各阶段的质量控制684.2.4设计——详细设计主要工作:1.设计模块内的算法和细节2.确定模块间详细接口信息3.拟订软件单元测试方案完成标志:1.详细设计说明管理任务:

1.组织评审2.组织记录并报告问题3.进行配置管理4.进行进度管理质量控制手段:

1.评审详细设计说明2.检查配置管理与质保运行情况4.2软件开发各阶段的质量控制(续)4.2.4设计——详细设计4.2软件开发各阶段的质量控制694.2.5编码和单元测试主要工作:1.编写源程序2.进行调试3.进行静态分析和单元测试4.编写软件使用说明5.设计测试用例,编写测试程序完成标志:1.源程序2.测试用例,测试程序3.软件使用说明(初稿)管理任务:

1.组织验证与评审2.组织记录并报告问题3.进行配置管理4.进行进度管理质量控制手段:

1.代码走查2.评审单元测试结果4.2软件开发各阶段的质量控制(续)4.2.5编码和单元测试4.2软件开发各阶段的质量控制(704.2.6部件测试主要工作:1.执行计算机软件部件集成和测试计划2.编写计算机软件部件集成和测试分析报告3.完成编写软件使用说明完成标志:1.可运行的程序系统及数据2.部件测试计划3.部件测试分析报告4.软件用户手册操作手册管理任务:

1.加强测试2.分析风险3.组织评审、记录并报告问题4.确定可否提交系统集成和测试5.进行配置管理6.进行进度管理质量控制手段:

1.评审软件用户手册2.评审软件操作手册3.检查软件部件测试结果4.2软件开发各阶段的质量控制(续)4.2.6部件测试4.2软件开发各阶段的质量控制(续)714.2.7集成测试主要工作:1.测试整个程序2.试用软件使用说明3.编写配置项测试分析报告完成标志:1.集成测试分析报告管理任务:

1.分析并报告问题2.组织问题追踪3.进行配置管理4.组织转阶段评审质量控制手段:

1.检查软件集成测试结果2.检查软件系统测试结果3.检查软件FRACAS运行情况4.确保安全/关键软件的第三方测试4.2软件开发各阶段的质量控制(续)4.2.7集成测试4.2软件开发各阶段的质量控制(续)724.2.8系统测试主要工作:1按系统集成和测试(系统联试)要求进行系统测试完成标志:1.系统集成和测试(系统联试)分析报告管理任务:

1.分析并报告问题2.组织问题追踪3.进行配置管理4.组织转阶段评审质量控制手段:

1.检查软件集成测试结果2.检查软件系统测试结果3.检查软件FRACAS运行情况4.确保安全/关键软件的第三方测试4.2软件开发各阶段的质量控制(续)4.2.8系统测试4.2软件开发各阶段的质量控制(续)734.2.9验收主要工作:1.验收测试与审计(可利用原有测试与审计结果)2.组织并进行移交软件产品完成标志:1.软件验收报告2.产品移交文件管理任务:

1.组织进行验收测试2.组织记录并报告问题3.进行配置管理质量控制手段:

1.组织软件产品的交付前验收2.评审验收测试与回归测试4.2软件开发各阶段的质量控制(续)4.2.9验收4.2软件开发各阶段的质量控制(续)744.2.10生产主要工作:1.编制软件生产操作规程2.按固化程序操作规程生产软件产品完成标志:软件产品管理任务:

质量控制手段:

评审软件生产操作规程2.对软件生产过程进行质量控制4.2软件开发各阶段的质量控制(续)4.2.10生产4.2软件开发各阶段的质量控制(续)754.3.1过程控制的重要手段——评审评审对象:

1.文档2.计划3.报告4.3.2软件开发中缺陷的引入和转移特性继承前一阶段遗漏的缺陷放大前一阶段遗漏的缺陷本阶段引入的缺陷本阶段克服的缺陷转移至下一阶段的缺陷4.3评审在质量控制中的作用从前一阶段来的缺陷数从前一阶段来的缺陷数开发阶段继承的缺陷数放大的缺陷数本阶段引入的缺陷数克服缺陷的能力(比例)传向下一阶段来的缺陷数4.3.1过程控制的重要手段——评审4.3评审在质量控制764.3评审在质量控制中的作用4.3.3无评审的缺陷扩大模型0%概要设计00100%详细设计662520%实现108125106437102750%软件部件测试930050%软件配置项测试470050%系统联试240024479312934.3评审在质量控制中的作用4.3.3无评审的缺陷扩大模774.3评审在质量控制中的作用4.3.4有评审的缺陷扩大模型70%概要设计001050%详细设计222560%实现530253211551050%软件部件测试240050%软件配置项测试120050%系统联试600612243244.3评审在质量控制中的作用4.3.4有评审的缺陷扩大模785软件配置管理软件配置管理的概念软件配置管理的基本方法版本控制变更控制5软件配置管理软件配置管理的概念795.1软件配置管理的概念5.1.1软件配置管理(SCM)在软件建立时,变更是不可避免的变更加剧了项目中软件人员之间的混乱协调软件开发使得混乱减到最小的技术叫做配置管理。配置管理是一组标识、组织和控制修改的活动,目的是使错误达到最小并最有效地提高生产率。SCM活动的目标

(1)标识变更;(2)控制变更;(3)确保变更正确地实现;(4)向其他有关的人报告变更。5.1软件配置管理的概念5.1.1软件配置管理(SCM805.1.2软件配置在软件工程中产生的所有信息项(文档、报告、程序、表格、数据)构成了软件配置。软件配置是软件的具体形态在某一时刻的瞬时影像。随着软件工程过程的进展,软件配置项(SCI)数目快速增加。系统规格说明可繁衍出软件项目实施计划和软件需求规格说明。它们又依次繁衍出建立信息层次的其它文档。5.1软件配置管理的概念(续)5.1.2软件配置5.1软件配置管理的概念(续)815.1.3基线基线是软件生存期中各开发阶段末尾的特定点,又称里程碑。由正式的技术评审而得到的SCI协议和软件配置的正式文本才能成为基线。基线的作用是把各阶段工作的划分更加明确化,以便于检验和肯定阶段成果。5.1软件配置管理的概念(续)5.1.3基线5.1软件配置管理的概念(续)825.1软件配置管理的概念(续)5.1.3软件开发各阶段的基线5.1软件配置管理的概念(续)5.1.3软件开发各阶段835.1.4项目数据库一旦一个SCI成为基线,就把它存放到项目数据库中。当软件组织成员想要对基线SCI进行修改时,须把它从项目数据库中复制到该工程师的专用工作区中。例如,把一个名为B的SCI从项目数据库复制到工程师的专用工作区中。工程师在B'(B的副本)上完成要求的变更,再用B'来更新B。有些系统中把这个基线SCI锁定。在变更完成、评审和批准之前,不许对它做任何操作。5.1软件配置管理的概念(续)5.1.4项目数据库5.1软件配置管理的概念(续)845.1.4项目数据库5.1.4项目数据库855.2软件配置管理的基本方法5.2.1软件配置项(SCI)系统规格说明软件项目实施计划软件需求说明可执行的原型初步的用户手册设计规格说明源代码清单测试计划和过程、测试用例和测试结果记录操作和安装手册可执行程序(可执行程序模块、连接模块)数据库描述(模式和文件结构、初始内容)正式的用户手册5.2软件配置管理的基本方法5.2.1软件配置项(SCI865.2.1软件配置项(SCI)维护文档(软件问题报告、维护请求、工程变更次序)软件工程标准项目开发总结除以上所列SCI以外,许多软件工程组织还把配置控制之下的软件工具列入其中,即编辑程序、编译程序、其它CASE工具的特定版本。因为要使用这些工具来生成文档、程序和数据,如果编译程序的版本不同,可能产生的结果也不同。5.2软件配置管理的基本方法(续)5.2.1软件配置项(SCI)5.2软件配置管理的基本875.2.2配置对象若干个SCI够成一个配置对象,在项目数据库中用一个单一的名字来组织它们。一个配置对象有一个名字和一组属性,并通过某些联系“连接”到其它对象。每个对象与其它对象的联系用箭头表示。箭头指明了一种构造关系。双向箭头则表明一种相互关系。如果对“源代码”对象作了一个变更,软件工程师就可以根据这种相互关系确定,其它哪些对象(和SCI)可能受到影响。5.2软件配置管理的基本方法(续)5.2.2配置对象5.2软件配置管理的基本方法(续)88配置对象配置对象895.2.3配置管理的任务

标识单个的SCI标识和管理软件各种版本控制变更审查软件配置报告所有加在配置上的变更。5.2软件配置管理的基本方法(续)5.2.3配置管理的任务5.2软件配置管理的基本方法(905.2.4标识SCI为了方便对软件配置项(SCI)进行控制和管理,首先应给它们命名——即对SCI进行标识对象类别基本对象:是由软件工程师在分析、设计、编码和测试时所建立的文本单元。例如,基本对象可能是需求规格说明中的一节,一个模块的源程序清单、一组用来测试一个等价类的测试用例。复合对象:是基本对象的组合或基本对象与其它复合对象的组合。5.2软件配置管理的基本方法(续)5.2.4标识SCI5.2软件配置管理的基本方法(续)915.2.4标识SCI标识由名字、描述、资源、实现等构成对象的名字明确地标识对象。对象描述包括:SCI类型(如文档、程序、数据)、项目标识、变更和/或版本信息。资源包括由对象产生的、处理的、引用的或其它需要的一些实体。基本对象的实现是指向文本单元的指针,复合对象的实现为null。5.2软件配置管理的基本方法(续)5.2.4标识SCI5.2软件配置管理的基本方法(续)925.2.5对象之间的关系对象的层次关系:一个对象可以是一个复合对象的一个组成部分,用联系<is

partof>标识。对象的相互关联关系:对象跨越对象层次的分支相互关联。这种交叉的结构联系用<interrelated>标识

5.2软件配置管理的基本方法(续)5.2.5对象之间的关系5.2软件配置管理的基本方法(续935.2.6演变图任何对象都可能要做多次变更。对于每一配置对象都可以建立一个演变图,用演变图记叙对象的变更历史。5.2软件配置管理的基本方法(续)5.2.6演变图5.2软件配置管理的基本方法(续)945.3.1什么是版本控制版本控制是SCM的基础,它管理并保护开发者的软件资源。版本控制管理在软件工程过程中建立起配置对象的不同版本。版本管理可以把一些属性结合到各个软件版本上。通过描述所希望的属性集合来确定(或构造)所想要的配置。使用演变图来表示系统的不同版本。5.3版本控制5.3.1什么是版本控制5.3版本控制955.3.2版本控制的主要任务集中管理档案,安全授权机制:版本管理的操作将开发组的档案集中地存放在服务器上,经系统管理员授权给各个用户。用户通过登入(checkin)和检出(checkout)的方式访问服务器上的文件,未经授权的用户无法访问服务器上的文件。软件版本升级管理:每次登入时,在服务器上都会生成新的版本。任何版本都可以随时检出编辑,同一应用的不同版本可以像树枝一样向上增长。5.3版本控制(续)5.3.2版本控制的主要任务5.3版本控制(续)965.3.2版本控制的主要任务加锁功能:目的是在文件更新时保护文件,避免不同用户更改同一文件时发生冲突。某一文件一旦被登入,锁即被解除,该文件可被其它用户使用。在更新一个文件之前锁定它,避免变更没有锁定的项目源文件。5.3版本控制(续)5.3.2版本控制的主要任务5.3版本控制(续)975.4.1变更控制的意义软件生存期内全部的软件配置是软件产品的真正代表,必须使其保持精确。软件工程过程中某一阶段的变更,均要引起软件配置的变更,这种变更必须严格加以控制和管理,保持修改信息。变更控制包括建立控制点和建立报告与审查制度。5.4变更控制5.4.1变更控制的意义5.4变更控制985.4变更控制(续)5.4.2变更控制过程5.4变更控制(续)5.4.2变更控制过程995.4变更控制(续)5.4.2变更控制过程5.4变更控制(续)5.4.2变更控制过程1005.4.2变更控制过程首先用户提交书面的变更请求,详细申明变更的理由、变更方案、变更的影响范围等。然后由变更控制机构确定控制变更的机制、评价其技术价值、潜在的副作用、对其它配置对象和系统功能的综合影响以及项目的开销、并把评价的结果以变更报告的形式提交给变更控制负责人。对每个批准了的变更产生一个工程变更顺序(ECO),描述进行的变更、必须考虑的约束、评审和审计的准则等。要做变更的对象从项目数据库中检出(checkout),对其做出变更,并实施适当的质量保证活动。然后再把对象登入(checkin)到数据库中并使用适当的版本控制机制建立软件的下一版本。5.4变更控制(续)5.4.2变更控制过程5.4变更控制(续)1015.4.3软件变更不同情况为改正小错误需要的变更。它是必须进行的,通常不需要从管理角度对这类变更进行审查和批准。但是,如果发现错误的阶段在造成错误的阶段的后面,例如在实现阶段发现了设计错误,则必须遵照标准的变更控制过程,把这个变更正式记入文档,把所有受这个变更影响的文档都做相应的修改。5.4变更控制(续)5.4.3软件变更不同情况5.4变更控制(续)1025.4.3软件变更的不同情况为了增加或者删掉某些功能、或者为了改变完成某个功能的方法而需要的变更。这类变更必须经过某种正式的变更评价过程,以估计变更需要的成本和它对软件系统其它部分的影响。如果变更的代价比较小且对软件系统其它部分没有影响,或影响很小,通常应批准这个变更。如果变更的代价比较高,或者影响比较大,则必须权衡利弊,以决定是否进行这种变更。如果同意这种变更,需要进一步确定由谁来支付变更所需要的费用。如果是用户要求的变更,则用户应支付这笔费用;否则,必须完成某种成本/效益分析,以确定是否值得做这种变更。5.4变更控制(续)5.4.3软件变更的不同情况5.4变更控制(续)1035.4.3软件变更的不同情况这种变更报告和审查制度,对变更控制来说起了一个安全保证作用。在一个SCI成为基线之前,可以对所有合理的项目和技术申请进行非正式的变更;一旦某个SCI经过正式的技术评审并得到批准,它就成了基线。以后如果需要对它变更,就必须得到项目负责人的批准,或者必须得到变更控制负责人的批准。5.4变更控制(续)5.4.3软件变更的不同情况5.4变更控制(续)104谢谢大家本讲义部分取材于北京航空航天大学可靠性工程研究所,特此致谢深圳旋极公司2001.8谢谢大家本讲义部分取材于北京航空航天大学可靠性工程研究所,特105当前软件质量的现状软件质量的基本概念软件质量保证软件的可靠性软件开发中的可靠性控制软件配置管理软件质量与可靠性当前软件质量的现状软件质量与可靠性1060当前软件质量的现状来自北京航空航天大学可靠性工程研究所的数据软件项目中途中止的占25%软件产品在交付时通常在产品中还残留15%的缺陷软件公司化在软件返工(修改)上的资源为30-44%软件失效往往比硬件失效高一个数量级0当前软件质量的现状来自北京航空航天大学可靠性工程研究所的107

中船总某军舰上计算机软件问题:中船总某军舰计算机CPU运行850小时故障120多次软件占70%MTBF≈10h致命故障12次软件占70%MTBF≈100h0当前软件质量的现状(续)0当前软件质量的现状(续)108主动控制技术(ACT)试验机我国第一架试验机由于软件故障而坠机在我国正在研制的若干型号的机型中,由软件引起的故障与由硬件引起的故障之比已达3:1。有些型号在试飞阶段,软件故障占故障总数的80%。0当前软件质量的现状(续)主动控制技术(ACT)试验机0当前软件质量的现状(续)1090当前软件质量的现状(续)NASA(美国航空航天局)的统计0当前软件质量的现状(续)NASA(美国航空航天局)的统计1101软件质量的基本概念软件质量的定义软件质量特性软件质量模型软件质量的度量和评价1软件质量的基本概念软件质量的定义1111.1软件质量的定义ANSI/IEEEStd729-1983的定义与软件产品满足规定的和隐含的需求的能力有关的特征或特性的全体M.J.Fisher的定义

所有描述计算机软件优秀程度的特性的组合1.1软件质量的定义ANSI/IEEEStd729-19112质量特性及其组合,是软件开发与维护中的重要考虑因素为满足软件的各项精确定义的功能、性能需求,符合文档化的开发标准,需要相应地给出或设计一些质量特性及其组合。如果这些质量特性及其组合都能在产品中得到满足,则这个软件产品质量就是高的。1.1软件质量的定义(续)质量特性及其组合,是软件开发与维护中的重要考虑因素1.1软件113软件需求是度量软件质量的基础不符合需求的软件就不具备质量。标准还定义了一组开发准则——开发准则是软件质量的保证软件质量还在不断的发展和完善软件质量是各种特性的复杂组合。它随着应用的不同而不同,随着用户提出的质量要求不同而不同。

1.1软件质量的定义(续)软件需求是度量软件质量的基础1.1软件质量的定义(续)1141.2软件质量特性软件质量特性,反映了软件的本质讨论一个软件的质量,问题最终要归结到定义软件的质量特性。定义一个软件的质量,就等价于为该软件定义一系列质量特性。人们通常把影响软件质量的特性用软件质量模型来描述。1.2软件质量特性软件质量特性,反映了软件的本质1151.3软件质量模型软件质量特性通常用分层模型来定义,它包括基本质量特性和二次特性基本质量特性可以由一些子质量特性定义和度量。二次特性在必要时又可由它的一些子质量特性定义和度量。著名的软件质量模型1976年Boehm质量模型1979年McCall质量模型1985年ISO质量模型1.3软件质量模型软件质量特性通常用分层模型来定义,它包括基1161.3.1Boehm质量模型1.3.1Boehm质量模型1171.3.2McCall质量模型1.3.2McCall质量模型1181.3.3

ISO的软件质量评价模型按照ISO/TC97/SC7/WG3/1985-1-30/N382,软件质量度量模型由三层组成软件质量需求评价准则(SQRC)软件质量设计评价准则(SQDC)软件质量度量评价准则(SQMC)高层和中层建立国际标准,低层可由各使用单位视实际情况制定1.3.3ISO的软件质量评价模型按照ISO/TC97/S1191.3.3

ISO的软件质量评价模型(续)1.3.3ISO的软件质量评价模型(续)1201.3.4ISO质量特性国际标准

(ISO/IEC9126-1991)质量特性:功能性可靠性可维护性效率可使用性可移植性1.3.4ISO质量特性国际标准

(ISO/I1211.3.4ISO质量特性国际标准(续)

(ISO/IEC9126-1991)推荐21个子特性:适合性准确性互用性依从性安全性成熟性容错性可恢复性可理解性易学习性操作性时间特性资源特性可分析性稳定性可变更性可测试性可安装性可替换性适应性一致性

1.3.4ISO质量特性国际标准(续)

(IS1221.3.4ISO质量特性国际标准(续)

(ISO/IEC9126-1991)质量特性的相互影响1.3.4ISO质量特性国际标准(续)

(IS1231.4

软件质量的度量和评价软件质量特性度量有两类:预测型验收型预测度量是利用定量或定性的方法,估算软件质量的评价值,以得到软件质量的比较精确的估算值。验收度量是在软件开发各阶段的检查点,对软件的要求质量进行确认性检查的具体评价值,它是对开发过程中的预测进行评价。1.4.1

软件质量度量的种类1.4软件质量的度量和评价软件质量特性度量有两类:1.4.124预测度量又分为:尺度度量二元度量尺度度量,是一种定量度量。它适用于一些能够直接度量的特性。如出错率二元度量,是一种定性度量。它适用于一些只能间接度量的特性,例如,可使用性、灵活性等等。1.4.2

预测度量预测度量又分为:1.4.2预测度量125尺度度量检查表1.4.2

预测度量(续)尺度度量检查表1.4.2预测度量(续)126二元度量检查表1.4.2

预测度量(续)二元度量检查表1.4.2预测度量(续)127通过对照检查项目,确定一种质量特性的有无。例如,在设计和编码阶段的复杂性度量,利用尺度度量方法来做。对模块复杂性的度量采用McCabe环路度量。对于二元度量,可针对检查表中每一项都应给以记分,指定信息存在时记“1”,否则记“0”。表中所有各项的分数相加,即得度量结果。1.4.3

预测度量的实施通过对照检查项目,确定一种质量特性的有无。1.4.3预测度1282

软件的质量保证质量保证的概念软件质量保证的主要任务质量保证的基本措施质量保证的实施软件的结构特性与评价标准2软件的质量保证质量保证的概念1292.1质量保证的概念什么是质量保证,它是为保证产品和服务充分满足消费者要求的质量而进行的有计划、有组织的活动。质量保证是面向消费者的活动,是为了使产品实现用户要求的功能,站在用户立场上来掌握产品质量的。软件的质量保证就是向用户提供满意的高质量的软件产品。2.1质量保证的概念什么是质量保证,它是为保证产品和服务充分130软件的质量保证活动也和一般的质量保证活动一样,是确保软件产品从诞生到消亡为止的所有阶段的质量的活动。即为了确定、达到和维护需要的软件质量而进行的所有有计划、有系统的管理活动。2.1质量保证的概念(续)软件的质量保证活动也和一般的质量保证活动一样,是确保软件产品1312.2软件质量保证的主要任务用户要求定义熟练掌握正确定义用户要求的技术熟练使用定义软件需求的支持工具掌握收集和积累有关用户业务领域的各种业务的资料和技术的技能。减少重复劳动和无效劳动既有软件是否可以复用新生产软件应具有复用性重视需求测试,减少因需求规格说明有误、设计有误而造成的返工建立互相交流、信息往来通畅、具横向交流特征的信息流通网2.2软件质量保证的主要任务用户要求定义132掌握开发新软件的方法采用先进的开发技术:如结构化技术、面向对象技术使用数据库技术或网络化技术使用新型开发工具或环境改进开发过程组织外部协作必须明确规定进度管理、质量管理、交接检查、维护体制等各方面的要求,建立跟踪检查的体制2.2软件质量保证的主要任务(续)掌握开发新软件的方法2.2软件质量保证的主要任务(续)133发挥每个开发者的能力开发者必须有学习各专业业务知识、生产技术和管理技术的能动性。制定技术培训计划、技术水平标准。提高软件开发的工程能力要想生产出高质量的软件产品必须有高水平的软件工程能力。在软件开发环境或软件工具箱的支持下,运用先进的开发技术、工具和管理方法开发软件的能力。

2.2软件质量保证的主要任务(续)发挥每个开发者的能力2.2软件质量保证的主要任务(续)134提高计划和管理质量的能力项目开发初期计划阶段的项目计划评价计划执行过程中及计划完成报告的评价将评价、评审工作在工程实施之前就列入整个开发工程的工程计划中提高软件开发项目管理的精确度2.2软件质量保证的主要任务(续)提高计划和管理质量的能力2.2软件质量保证的主要任务(续)1352.3.1确定软件等级,实行分级管理在需求分析阶段应根据软件失效后对系统安全性和性能的不同影响程度,将软件划分为若干个等级。一般,可根据软件的安全性、重要性将软件划分为关键软件、重要软件和一般软件。在软件研制过程中,应视软件的等级采取不同的管理措施。2.3质量保证的基本措施2.3.1确定软件等级,实行分级管理2.3质量保证的基本措1362.3.2给出关键、重要软件的可靠性指标在确定软件可靠性指标时应注意:a.采用使用部门能观察到且可验证的指标b.分配时按软件安全关键程度适当加权c.给出指标时应明确验收方法。常用的软件可靠性指标有:MTBF、MTTF可用性AMDT初期故障率2.3质量保证的基本措施(续)2.3.2给出关键、重要软件的可靠性指标2.3质量保证的基1372.3.3制定软件的可靠性、安全性设计准则a.

每个阶段的具体质量要求和判据;b.

需求分析、设计和编程阶段需遵守可靠性、安全性设计准则和相应的设计检查单;c.每阶段应进行的具体验证和评价活动类型、活动计划和责任者及其职责。

2.3质量保证的基本措施(续)2.3.3制定软件的可靠性、安全性设计准则2.3质量保证1382.3.4认真编制符合国军标规定的软件设计文档应及时、认真地根据GJB438A-96或其它相应标准的要求,对级别不同的软件编制相应当文档。在转阶段评审中,必须对相应的软件文档进行认真评审。2.3质量保证的基本措施(续)2.3.4认真编制符合国军标规定的软件设计文档2.3质量1392.3.5严格进行软件的阶段评审

软件研制单位应认真组织并严格进行软件的阶段评审;特别应认真组织好软件需求评审,软件详细设计评审,软件测试和验收评审。在评审前必须确定方式、内容、要求和评审组成员。在评审应对评审中的问题进行更改、跟踪归零。2.3质量保证的基本措施(续)2.3.5严格进行软件的阶段评审 2.3质量保证的基本措1402.3.6加强软件的配置管理应根据国军标有关规定对软件配置标识、配置控制、配置状况记录和配置审核进行管理。必须制定“软件配置管理计划”,并按计划实施规定的管理活动。应按照型号软件的研制进程对软件的版本进行标识并实施控制。软件研制单位应建立本单位的软件开发库,受控库和成品库,并制定各软件库的管理规程。已归档软件产品的更改必须严格履行审批手续,更改后的软件必须进行回归测试,并重新归档。2.3质量保证的基本措施(续)2.3.6加强软件的配置管理2.3质量保证的基本措施(续1412.3.7强化软件测试a)制定软件测试计划b)在软件研的同时进行测试c)规范软件的测试d)安全关键软件的第三方测试2.3质量保证的基本措施(续)2.3.7强化软件测试2.3质量保证的基本措施(续)1422.3.8建立闭环的软件故障报告、分析和纠正系统(SFRACAS)在系统分析和设计阶段开始,就应建立SFRACAS,在软件测试过程中,应按有关规定记录、整理、分析有关故障数据,实施闭环控制,有效地消除软件缺陷、故障,控制软件研制工作的质量。在软件各开发、测试部门及外场测试部门及外场试验,使用部门应建立问题报告制度,软件的更改必须认真填写“软件问题报告单”及“软件更改报告单”。对软件的更改记录和信息应纳入系统承制单位的信息闭环管理系统。2.3质量保证的基本措施(续)2.3.8建立闭环的软件故障报告、分析和纠正系统(SFRA1432.4质量保证活动的实施-TPDCATarget

设定质量目标。Plan

设定评测检查项目(质量评价准则)。制定实现质量目标的方法或手段。Do

制作高质量的规格说明和程序。在接受质量检查前先做自我检查。Check

质量检查,评价结果用质量图的形式表示Action:对评价发现的问题进行改进活动,如果实现并达到了质量目标就转入下一个工程阶段。这样重复“Plan”到“Action”的过程,直到整个开发项目完成。2.4质量保证活动的实施-TPDCATarget设定质144质量与可靠性课件1452.5软件的结构特性与评价标准逻辑数据层次

评价标准全部数据元素定义完毕所有层次的操作符定义完毕功能层次

评价标准全部功能元素定义完毕所有层次的操作符定义完毕逻辑数据与功能的对应关系

评价准则所有数据都与功能对应所有功能元素都与数据对应逻辑数据与功能的相互关系个数(局部)2.5软件的结构特性与评价标准逻辑数据层次评价标准146

物理数据层次

评价准则全部数据元素定义完毕物理数据之间的所有指针定义完毕上述指针都具有层次性模块层次评价准则所有模块定义完毕模块之间所有控制关系定义完毕上述关系都是标准过程调用形式各层次上的模块大小适当2.5软件的结构特性与评价标准(续)物理数据层次评价准则2.5软件的结构特性与评价标147物理数据与模块的对应关系评价准则

所有物理数据都与模块对应所有模块都与物理数据对应对应于一个物理数据的模块数(以一对一为好)功能与模块的对应关系评价准则所有功能都与模块对应对应模块的功能个数(以一对 一为好)2.5软件的结构特性与评价标准(续)物理数据与模块的对应关系评价准则2.5软件的结构特性与1483软件可靠性与可靠性工程软件生存期与软件寿命的关系软件可靠性定义测试中的可靠性分析SPQL评价软件可靠性工程软件可靠性的测试与验证3软件可靠性与可靠性工程软件生存期与软件寿命的关系1493.1软件生存期与软件寿命的关系软件寿命的基本概念一切有生命的东西都有“寿命”概念延伸:产品的寿命就是指该产品从出厂直到丧失使用价值的持续时间。从软件工程的角度来说,软件产品的寿命是指软件的整个生存期。从用户的角度来看,更关心的是软件在交付使用后的情况——MTBF:平均失效间隔时间

软件在使用期间能够正常工作的持续时间叫做软件的使用寿命。软件的使用寿命与使用环境有关。3.1软件生存期与软件寿命的关系软件寿命的基本概念150软件故障与失效软件发生失效(failure)标志着软件一次使用寿命的结束失效是由故障引起的:设计者的失误─致使系统中留下错误的设计(bug),使软件存有故障(fault),这些故障导致系统的错误执行─错误(error),从而导致系统无法达到预期的结果─失效(failure)。故障往往是物理地或静态地存在的,而失误、错误和失效都是系统的一种动态的转瞬即逝的现象发生过失效的软件通常仍然是可用的。只有当软件频繁失效,或者公认已经“过时”了的时侯,软件才被废弃,意味着当前这一版本软件寿命的终结。3.1软件生存期与软件寿命的关系(续)软件故障与失效3.1软件生存期与软件寿命的关系(续)1513.2软件可靠性定义软件可靠性软件在给定的时间间隔及规定的环境条件下,按设计要求,成功地运行程序,实现规定的功能的概率。环境条件指的是软件的使用环境。无论什么软件,如果不对它的使用环境加以限制,都是会失效的。这种失效的数据,不能用来度量软件的可靠性。规定的时间一般为软件的运行时间,

是一个随机变量3.2软件可靠性定义软件可靠性152规定的功能在考虑软件可靠性时,首先应当明确软件的功能是什么,哪些功能是主要的,哪些功能是次要的。一般从软件需求分析说明和设计说明中可以了解这些情况。由于功能不同,失效带来的损失就不一样。因此,还要明确哪些失效是致命的,哪些失效是非致命的,哪些又是容易修复的。此外,还要明确,怎样才算是完成了一个规定的功能。成功地运行程序指不仅程序能正确地运行,满足用户对它的功能要求,而且当程序一旦受到意外的伤害,或系统故障时,能尽快恢复,仍能正常地运行。3.2软件可靠性定义(续)规定的功能3.2软件可靠性定义(续)1533.3测试中的可靠性分析利用测试的统计数据,估算软件的可靠性推测错误的产生频度,即推测错误产生的时间间隔估算错误产生频度的一种方法是估算平均失效等待时间MTTF(MeanTimeToFailure)推测残留在程序中的错误数评价测试的精确度和覆盖率

3.3测试中的可靠性分析利用测试的统计数据,估算软件的可靠154SPQL:软件产品质量水平(SoftwareProductQualityLevel)SPQL用如下公式度量:

SPQL=Ac×Cv其中Ac(TestAccuracy)——测试的精确度,它反映了测试的质量;测试质量可以用测试的故障捕捉率和遗漏率来衡量Cv(TestCoverage)——测试的覆盖度,它反映了测试的数量。测试数量可以是执行的测试用例数、确认的程序路径数等等3.4SPQL评价SPQL:软件产品质量水平(SoftwareProduct155Ac的意义:表明在测试的过程中以多大的把握捕捉了软件中潜在的故障。Ac的测定:预先植入播种故障,然后通过测试,根据播种故障的捕捉率来推测原有故障的捕获率。

3.4.1测试精确度AcAc的意义:表明在测试的过程中以多大的把握捕捉了软件中潜在的156Cv的意义:表明在整

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论