您好,欢迎访问三七文档
软件质量概念软件质量模型软件质量保证软件可靠性软件配置管理软件质量概念软件质量的定义软件质量特性软件质量模型软件质量的度量和评价软件质量的定义ANSI/IEEEStd729-1983定义软件质量为“与软件产品满足规定的和隐含的需求的能力有关的特征或特性的全体”。M.J.Fisher定义软件质量为“所有描述计算机软件优秀程度的特性的组合”。质量特性及其组合,是软件开发与维护中的重要考虑因素为满足软件的各项精确定义的功能、性能需求,符合文档化的开发标准,需要相应地给出或设计一些质量特性及其组合。如果这些质量特性及其组合都能在产品中得到满足,则这个软件产品就是高质量的。软件质量特性软件质量特性,反映了软件的本质。讨论一个软件的质量,问题最终要归结到定义软件的质量特性。人们通常把影响软件质量的特性用软件质量模型来描述。软件质量模型软件质量特性定义成分层模型,主要的软件质量模型有:1976年Boehm质量模型1979年McCall质量模型1985年ISO质量模型Boehm质量模型McCall质量模型ISO的软件质量评价模型按照ISO/TC97/SC7/WG3/1985-1-30/N382,软件质量度量模型由三层组成软件质量需求评价准则(SQRC)软件质量设计评价准则(SQDC)软件质量度量评价准则(SQMC)高层和中层建立国际标准,低层可由各使用单位视实际情况制定1991年ISO质量特性国际标准(ISO/IEC9126)质量特性:功能性、可靠性、可维护性、效率、可使用性、可移植性推荐21个子特性:适合性准确性互用性依从性安全性成熟性容错性可恢复性可理解性易学习性操作性时间特性资源特性可分析性稳定性可变更性可测试性可安装性可替换性适应性一致性软件质量的度量和评价软件质量特性度量有两类:预测型和验收型。预测度量是利用定量或定性的方法,估算软件质量的评价值,以得到软件质量的比较精确的估算值。验收度量是在软件开发各阶段的检查点,对软件的要求质量进行确认性检查的具体评价值,它是对开发过程中的预测进行评价。预测度量有两种。第一种叫做尺度度量,这是一种定量度量。它适用于一些能够直接度量的特性,例如,出错率定义为:错误数/KLOC/单位时间。第二种叫做二元度量,这是一种定性度量。它适用于一些只能间接度量的特性,例如,可使用性、灵活性等等。软件的质量保证质量保证的概念软件质量保证措施软件质量保证体系质量保证的实施软件的质量设计质量保证的概念质量保证是为保证产品和服务充分满足消费者要求的质量而进行的有计划、有组织的活动。质量保证是面向消费者的活动,是为了使产品实现用户要求的功能,站在用户立场上来掌握产品质量的。软件的质量保证就是向用户及社会提供满意的高质量的产品。质量保证措施审查在软件生命周期每个阶段结束之前,对该阶段产生的软件配置进行严格的技术审查。复查和管理复审复查是检查已有材料,以确定特定阶段是否能开始或继续;管理复审是从管理角度对开发工作进行审查测试程序正确性证明软件质量保证体系为了顺利开展质量保证活动,事先明确部门间的质量保证业务,确立部门间的联合与协作的机构,这个机构就是质量保证体系。质量保证的实施软件质量保证的实施需要从纵向和横向两个方面展开。要求所有与软件生存期有关的人员都要参加(纵向)要求对产品形成的全过程进行质量管理(横向)质量保证活动的实施步骤:Target:以用户要求和开发方针为依据,对质量需求准则、质量设计准则的各质量特性设定质量目标。Plan:设定适合于被开发软件的评测检查项目(质量评价准则)。研讨实现质量目标的方法或手段。Do:开发活动,制作高质量的规格说明和程序。Check:以Plan阶段设定的质量评价准则进行评价。计算结果用质量图的形式表示出来。比较评价结果的质量得分和质量目标,看其是否合格。Action:对评价发现的问题进行改进活动,如果实现并达到了质量目标就转入下一个工程阶段。这样重复“Plan”到“Action”的过程,直到整个开发项目完成。软件的质量设计质量特性转换为软件的内部结构在软件定义阶段,必须定义对软件的质量需求。即确定软件的质量特性及必需的评价准则,并定量地设定其必须达到的质量水平在以后软件开发的每一阶段结束时,要算出评价的分数,然后与目标值加以对照,以评估在这一阶段开发的软件质量是否达到要求。为了实现规定的质量特性,就需要把这些质量特性转换为软件的内部结构的特性。例如,软件质量需求中的“性能”,可以转换成软件内部结构中的构成元素,即每一个程序模块和物理数据各自应具有的性能特性。软件可靠性在讨论软件可靠性中常用的定义软件可靠性定义测试中的可靠性分析在软件工程中常用的定义故障(fault):软件的内在缺陷。这些缺陷可在生存期各个阶段被引入。错误(error):故障在一定的环境条件下的暴露,导致系统在运行中出现了不正常、不正确、不按规范执行的状态,称为软件出错。失效(failure):对错误不做任何修正和恢复,导致系统的输出不满足用户要求,称为软件的一次失效。三者间的关系可以理解为:设计者的失误─导致系统中留有错误的设计──缺陷或“故障”(fault)故障导致系统的错误执行──错误(error)由于错误导致系统的错误输出──失效(failure)软件可靠性的定义软件可靠性是软件在给定的时间间隔及给定的环境条件下,按设计要求,成功地运行程序的概率。环境条件─指的是软件的使用环境。无论是什么软件,如果不对它的使用环境加以限制,都是会失效的。这种失效的数据,不能用来度量软件的可靠性。规定的时间在定义中,一般采用“运行时间”t作为时间的尺度。应当把运行时间t当作随机变量来考虑。规定的功能在考虑软件可靠性时,首先应当明确软件的功能是什么,哪些功能是主要的,哪些功能是次要的。一般从软件需求分析说明书和设计说明书中可以了解这些情况。成功地运行程序是指不仅程序能正确地运行,满足用户对它的功能要求,而且当程序一旦受到意外的伤害,或系统故障时,能尽快恢复,仍能正常地运行。软件可用性软件可用性是软件在给定的时间点及给定的环境条件下,按设计要求,成功地运行程序的概率。稳态可用性Ass=Tup/(Tup+Tdown)平均无故障时间MTTF若引入平均无故障时间MTTF(MeanTimeToFailure)平均维修时间MTTR(MeanTimeToRepair)则Ass=MTTF/(MTTF+MTTTR)测试中的可靠性分析在软件开发的过程中,利用测试的统计数据,估算软件的可靠性,以控制软件的质量是至关重要的。推测错误的产生频度,即推测错误产生的时间间隔推测残留在程序中的错误数推测错误的产生频度估算错误产生频度的一种方法是估算平均无故障时间MTTF(MeanTimeToFailure)MTTF估算公式(Shooman模型)MTTF=IKEEtTTC(())设Et:测试前的故障总数It:程序长度Ec(τ):在0—τ时间内改正的故障数则经过τ时间测试后,残余的故障数为Et-Ec单位长度的故障数:(Et-Ec(τ))/It因为MTTF与单位长度的故障数成反比,所以有:MTTF=IKEEtTTC(())估算软件中故障总数ET植入故障法估算程序中原有故障总数ET分别测试法估算程序中原有故障总数ET设Ns是在测试前人为地向程序中植入的故障数,ns是经过一段时间测试后发现的播种故障数目,n是在测试中又发现的程序原有故障数。设测试用例发现植入故障和原有故障的能力相同,则程序中原有故障总数N(=ET)估算值为NNnnss植入故障法Hyman分别测试法由两个测试员同时互相独立地测试同一程序的两个副本,用t表示测试时间,记t=0时,程序中原有故障总数是B0;t=t1时,测试员甲发现的故障总数是B1;测试员乙发现的故障总数是B2;其中两人发现的相同故障数目是bc;两人发现的不同故障数目是bi。则有BBBbc012例:甲、乙两个测试员同测一个长度为24000条指令的程序,经过一段时间测试后,甲发现了20个错误,使MTTF达到10个小时,同时,乙发现了24个错误,其中6个甲和乙同时发现了,以后甲继续测试此程序,求:1.刚开始测试时,程序隐藏多少个错误2.为使MTTF=60,还需改正多少个错误解:1.N/B0=B1/bc其中:B0=24,B1=20,bc=6所以:N=B0*B1/bc=20*24/6=802.10=1/(k(80-20)/It)60=1/(K(80-X)/It)即10/60=(80-X)/60X=70还需改正的错误数=70-20=50软件配置管理在软件开发过程中,变更是不可避免的,若没有进行变更控制,则加剧了项目中软件人员之间的混乱。配置管理是协调软件开发使得混乱减到最小的技术。配置管理是在软件整个生命周期内管理变化一组活动。这组活动用来:(1)标识变更;(2)控制变更;(3)确保变更正确地实现;(4)向其他有关的人报告变更。软件配置在软件工程过程中产生的所有信息项(文档、报告、程序、表格、数据)构成了软件配置。随着软件工程过程的进展,软件配置项(SCI)数目快速增加。基线(Baseline)基线是软件生存期中各开发阶段末尾的特定点,又称里程碑。基线的作用是把各阶段工作的划分更加明确化,以便于检验和肯定阶段成果。软件开发各阶段的基线
本文标题:软件质量管理
链接地址:https://www.777doc.com/doc-5397700 .html