ch10-201109 软件质量管理与质量保证_第1页
ch10-201109 软件质量管理与质量保证_第2页
ch10-201109 软件质量管理与质量保证_第3页
ch10-201109 软件质量管理与质量保证_第4页
ch10-201109 软件质量管理与质量保证_第5页
已阅读5页,还剩105页未读 继续免费阅读

下载本文档

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

文档简介

1、软件质量管理与质量保证,1 软件质量概述 1.1 软件质量定义 ANSI标准对软件质量的定义: “软件质量是软件产品或服务的特性和 特性的整体” IEEE对软件质量的定义: 软件产品具备满足给定需求的特性及特征的总体的能力 软件拥有所期望的各种属性组合的程度 用户认为软件满足他们综合期望的程度 软件组合特性可以满足用户预期需求的程度,GB/T 12504-90 软件质量 software quality 软件质量是指软件产品中能满足给定需求的各种特性的总和。这些特性称做质量特性,它包括功能度、可靠性、易使用性、时间经济性、资源经济性、可维护性和可移植性等。 质量保证 quality assur

2、ance 质量保证是指为使软件产品符合规定需求所进行的一系列有计划的必要工作。,从实际应用角度,软件质量(software quality)定义 (1)与明确确定的功能和性能需求的一致性 (2)与明确成文的开发标准的一致性 (3)与所有专业开发的软件所期望的隐含的特性的一致性 上述定义突出了三点: (1)需求是质量度量的基础,缺少与需求的一致性就无质量可言; (2)专门的标准定义了一系列的开发准则,它指导软件工程化的开发方式; (3)通常,对许多隐含需求不采用直接提出的方法(如良好的可维护性的要求)而忽视满足软件隐含的需求,那末,这样的软件质量也是不可信的。,1.2 软件质量的质量特性,McC

3、all质量模型:提出软件质量特性包含的质量特性 可使用性(Usability) 正确性(Correctness) 可靠性(Reliability) 效率(Efficiency) 完整性、安全性(Integrity, Security) 灵活性(Flexibility) 可测试性(Restability) 可维护性(Maintainability) 可移植性(Portability) 复用性(Reuseability) 互操作性(Interperability),McCall的三层质量度量模型,McCall质量度量模型框架,特性,评价准则,评价准则,评价准则,度量,度量,度量,面向管理观点 的产

4、品质量,决定产品质量 的软件属性,定量化地度 量软件属性,ISO建议的软件质量评价模型 标准分为三级: 高层:质量需求评价准则(SQRC) 中层:质量设计评价准则(SQDC) 低层:质量度量评价准则(SQMC),ISO建议的软件质量评价模型,正 确 性,可 跟 踪 性,完 备 性,准 确 性,容 错 性,简 洁 性,模 块 性,通 用 性,扩 充 性,可 容 性,效 率,安 全 性,可维护性,适 应 性,互 连 性,SQDC(中层),SQRC(高层),SQMC(低层),可 用 性,一 致 性,使 用 单 位 自 行 制 定,8.1.3国际标准和国家标准规定的质量特性 ISO/IEC 9126-

5、1991 Information technology software product evaluation quality characteristics and guidelines for their use 我国1996年将其等同采用: GB/T16260-1996 软件产品评价质量特性及其使用指南,8.1.4 产品质量与过程质量,产品质量,开发技术,成本、 时间、进度,过程质量,人员素质,影响产品质量的4个方面,8.2 软件质量保证,质量保证也是一个过程,已列入国际标准“ ISO/IEC 12207信息技术-软件生存期过程”中。,8.2.1 质量保证的主要功能,质量方针的制定和展开

6、 质量保证方针的质量保证标准的制定 质量保证体系的建立和管理 各阶段的质量评审,8.2.2 质量保证的实施 软件质量的度量 过程度量 产品度量 软件质量评价: 软件复杂性度量 静态度量 软件产品规模 软件产品程序控制结构的度量 数据结构的度量 开发度量,Halstead的软件复杂度度量方法,根据程序中可执行代码行的操作符和 操作数的数量来计算程序的复杂性 n1 :程序中出现的不同操作符数目 n2 :程序中出现的不同操作数数目 N1 :程序中操作符出现的总数 N2 :程序中操作数出现的总数,Halstead使用原始度量定义的算式,(1)程序长度 N= n1log2 n1+ n2log2 n2 (

7、2)程序容量 V= Nlog2 (n1+ n2) (3)语言级别 L= (2n2)/(n1n2) (4)程序工作量 E= V / L (5)程序编写时间 T= E / S S:Stroud数 (6)程序潜在错误的数量 B= Nlog2 (n1+ n2) / 3000,Halstead认为程序中可能存在的错误与程序容量成正比,例:一程序对75个数据库项共访问1300 次,对150个操作符使用1200次,潜在错 误数为: B = (1300+1200)log2 (75+150) / 3000 = 6.5(即67个错误),Halstead复杂性度量方法是一种较科学的方法,但存在不足和问题: (1)未

8、忽略模块特性 (2)忽略了非执行语句 (3)代码和数据的二义性 (4)未考虑数据类型的差异 (5)未注意调用深度 (6)未区别不同类型的运算符,McCabe复杂性度量(环路度量),McCabe认为程序复杂性很大程度取决于程序控制流的复杂性,以程序图的环路数作为该程序复杂性的度量值 对于具有强连通图的环路数: V(G)=e-n+2 e:边数 n:结点数,McCabe复杂性度量示例,a,c,b,e,f,d,1,2,3,7,6,8,4,5,9,R1,R2,R3,R4,R5,V(G)=9-6+2 =5,V(G)其它计算方法: (1)计算图中所有有界区域和无界区域数R 图中共有5个区域(R1到R5),所

9、以 V(G)=5 (2)用判定语句总数+1 (判定个数=分支数-1) 图中可按4个判定计算,V(G)=4+1=5,8.2.3 技术评审,软件评审是一个“过滤器”, 用于“净化”软件工程各项活动,质量控制技术,质量控制活动分类,开发方法学,配置管理,验证技术,评 审,正确性验证,性能调试,组件测试,集成测试,系统测试,原子事务,模块冗余性,检 错,质量控制,避免错误,容 错,调 试,测 试,8.3 软件可靠性,硬件系统故障率,0,t,Z(t),软件系统故障率,0,t,Z(t),8.3.1 基本概念,软件可靠性定义 在给定时间间隔内和特定的环境下,软件按规格说明成功运行的概率。,软件可靠性定义的要

10、素,(1)环境条件 规定软件的使用环境 (输入数据要求和环境) (2)规定时间 时间t是随机变量。 (3)规定的功能 (4)成功运行,软件可靠性的主要指标,借用硬件可靠性的定量度量方法来度量软件的可靠性: MTBF:平均故障间隔时间 MTTF:平均故障时间,t1,t2, ., tn:失效时间,MTTF,n,i=1,n,1,t,i,平均无故障时间 Mean Time Between Failure 是指相邻两次故障之间的平均工作时间,也称为平均故障间隔。,mean time to failure,平均失效前时间 设备在规定的环境下,正常生产到发生下一次故障的平均时间,8.4 软件容错技术,提高软

11、件质量和可靠性的技术: 避开错误技术 容错技术:对无法避开的差错,使其 影响减至最小的技术。,8.4.1 什么是容错软件?,定义1:规定功能的软件,在一定程度上对自 身错误的作用具有屏蔽能力的软件; 定义2:规定功能的软件,在一定程度上能从 错误状态自动恢复到正常状态的软件; 定义3:规定功能的软件,在因错误而发生错 误时,仍能在一定程度上完成预期的 功能的软件;,8.4.2 容错的一般方法,实现容错计算的方法: 错误检测算法 错误恢复算法 容错资源 软件冗余备份 实现容错计算的主要手段是冗余,主体: 常规软件所需资源,附加体:容错资源,容错软件,8.4.3 容错的一般方法,冗余技术分类: 1

12、.结构冗余 2.信息冗余 3.时间冗余,8.4.3 容错的一般方法,冗余技术分类: 1.结构冗余 (1)静态冗余:3模冗余、多模冗余,U,M1,M2,M3,V,u2,u1,u3,I,3模(TMR)表决系统的结构,表决器,U=(u1u2) (u2u3) =(u1u3),1.结构冗余,(2)动态冗余:多重模块待机储备,相继运行,M1,M2,M3,主模块,备用,I,待机储备系统结构,开关,Mn,.,备用,备用,1.结构冗余,(3)混合冗余 H(N,K),M1,M2,Mk,I,H(N,K)系统结构,开关,Mn,.,Mk+1,.,V,转 换 开 关,2.信息冗余 以检测或纠正信息在运算或传输中的错误为目

13、的而外加的一部分信息。 误差校正码(冗余码) :奇偶码、定重码、循环码、,3.时间冗余 以重复执行指令(指令复执)或程序(程序复算)来消除瞬时错误带来的影响。 常用的程序复算方法:程序滚回技术,出错,t0,t1,t2,t3,ti-1,ti,ti+1,i-1,i,程序滚回示意图,1,2,3,时刻 t0,t1,t2, .对应于程序中预先设置好的恢复点,软件的容错系统结构,1.多版本结构 把同一功能的不同版本的程序(多为子系统或模块级)并行联结到系统中,构成冗余并行模型.,版本1,版本 2,版本 3,.,表决,同一功能,多版本程序示意图,2. 恢复块结构,要求做容错的块(基本块),提供: 备份块(独

14、立设计的相应冗余备份) 附加的错误检验 恢复措施,恢复块,Ensure 接受测试 By 基本块 Else By备份块1 Else By备份块n Else 错误,恢复块的工作方式,保存现场,队空,从恢复块的备份块 队列中取一个模块,激活此模块,执行此模块,恢复现场,接受测试T,有问题 显示错误及位置,继续执行后续工作,通过,不通过,8.5 质量管理、质量认证与质量审核,质量管理的类型: (1)质量检验型管理 (2)全面质量管理 (3)质量认证,软件质量保证体系的研究和主要技术,目前国际上软件过程质量管理最主要的三个典型代表: CMM /PSP/TSP ISO9000系列 ISO/IEC15504

15、,过程与软件质量管理 随着软件技术和软件应用的发展,以过程为中心的软件开发、生产与质量管理是现代软件产业的时代特征。 质量形成于过程,高可信、高质量的软件必须依赖对软件过程的管理。,过程与软件质量管理 ISO9000 2000版将过程定义为“一组将输入转化为输出的相互关联或相互作用的活动” 软件过程分为: 软件工程过程:软件开发和生产的过程, 如:需求分析、设计、编码、 测试等过程; 软件管理过程:对软件开发和生产的过程进 行管理的过程, 如:项目策划过程、跟踪监控过 程、质量保证过程 软件支持过程:对软件开发和生产的过程进 行支持的过程, 如:评审过程、培训过程、 质量过程。,技术改进与过程

16、改进的关系 技术改进必须与过程改进同时并举,低技术,高技术,过程 成熟,过程 不成熟,低风险途径,高风险 途径,原始态,理想态,可能无结果途径,软件工程的五个发展方向,软件过程的 管理模式,CMM:软件过程管理与改进 CMM是软件工程过程学科中的一个管理与改进软件过程的模式,也是一种衡量软件开发能力和成熟度的标准。,CMM /PSP/TSP技术流派 CMM(软件能力成熟度模型:Capability Maturity Model For Software)是由美国卡内基梅隆大学的软件工程研究所(SEI:Software Engineering Institute)受美国国防部评估软件供应商能力的

17、要求,1986年开始研究制定,并在美国,随后在全世界推广实施的一种软件评估标准,主要用于软件开发过程和软件开发能力的评估和改进。CMM标准共分五个等级,由低到高分别为: 初始级、可重复级、已定义级、定量管理级和优化级。,1998年SEI启动了CMMI (CMM Integration) CMMI通过提供统一的过程改进框架,消除了不同 模型之间的不一致和重复性,可望成为今后软件过 程改进领域比较稳定的一个实用模型。 目前SEI正在进行二个方面的扩充: 将质量管理的理念和思想向人力资源管理方面扩展(PSP/TSP/P-CMM); 将过程技术与产品线技术融合; 如2000年推出的软件产品线PLP(P

18、roducts Line Practice)和COTS(Commercial Off The Shelf),ISO 9000标准系列,1987年ISO公布ISO9000质量管理和质量保证标准系列。 至1997年底,约100个国家、地区推行ISO9000质量认证活动;,ISO 9000族列标准现有20个标准,分为五类: (1) 质量术语标准:ISO8402-1994 (2)质量保证标准 (3)质量管理标准 (4)质量管理和质量保证标准的选用和实施指南 (5)支持性技术标准,ISO 9000主体可分为两组: 用于“需方对供方要求质量保证”的标准: 9001 9003 用于 “供方建立质量保证体系”

19、的标准: 9004 9001、 9002、 9003的区别 其对象的工序范围不同: 9001范围最广,包括从设计到售后服务; 9002是9001 的子集; 9003是9002 的子集。,ISO/IEC15504 1998年SPICE(Software Process Improvement and Capability determination)项目组织发表用于确定自我能力改造和进行软件供应商能力的国际标准ISO/IEC15504. 该标准覆盖了过程评估、过程改进和过程能力确认等指南和模型。 目前,有关组织正在就CMMI和15504标准的兼容性问题进行探讨,很有可能CMMI会最终和ISO/I

20、EC 15504标准兼容,并同时支持和兼容CMM。,CMM模型及其实践,在CMM模型及其实践中,企业的过程能力被作为一项关键因素予以考虑。所谓过程能力,是指把企业从事软件开发和生产的过程本身透明化、规范化和运行的强制化。这样一来,就可以把软件开发及生产过程中成功或失败的经验教训变成今后可以借鉴和吸取的营养,大大加快软件生产的成熟程度提高。,在软件开发过程中, 一些关键的过程域(KPA)可以被识别出来,成为某些CMM模型方法中的衡量基准。利用过去软件工程发展的成果,侧重这些关键过程域的实施,将会有效地建立一个过程,加快软件企业成熟度的提升。,CMM一共有5级,18个关键过程域(KPA),52个目

21、标,300多个关键实践。据美国卡内基.梅隆大学SEI统计,至2001年6月底,CMM的认证情况如下表所示。,过程成熟度框架,要区分不成熟和成熟软件组织,需要构造一个软件过程成熟度框架, 它描述一条从无序到有序的软件过程的 进化途径,框架是支持持续改进的基础。,软件过程成熟度框架包括四个概念: 软件过程 软件过程能力 软件过程性能 软件过程成熟度:CMM分为五级,软件过程成熟度的五个等级,0 1 2 3 4 5,软件过程能力,成熟度等级,优化级(5),管理级(4),不断改进的过程,定义级(3),重复级(2),初始级(1),可预测的过程,标准的一致的过程,有纪律的过程,5个成熟度等级在开发过程中变

22、化的显著特点,五级成熟度的特性,等级1 初始级,CMM1,杰出的主管和优秀的队伍,项目成功,CMM1,一般的主管和队伍,项目成功难以预测,等级2 重复级,项目经验,定义准则 和跟踪,新的类 似项目,再成功,五级成熟度的特性,等级3 定义级,CMM重复,定义软件过程,可视和可控,等级4管理级,软件过程能力,量化,改进与预测,等级5优化级,已有的技术,等级24中的改进,已有的技术,等级5中的优化,新的技术,CMM的内部结构与定义,能力成熟度模型的结构,过程能力,成熟度等级,关键过程域,包含,共同特点,被规划成,关键实践(KP),包含,指示,目标,完成,规范化,阐述,活动,描述,关键过程域 (Key

23、 process area, KPA),优化级(5) 过程更改管理 技术改革管理 缺陷预防,管理级(4) 软件质量管理 定量过程管理,每一个关键过程域指出了改进过程能力的主要过程,定义级(3) 同行评审 组间协调 软件产品工程 集成软件管理 培训大纲 组织过程定义 组织过程集点,重复级(2) 软件配置管理 软件质量保证 软件子合同管理 软件项目跟踪和监督 软件项目策划 需求管理,初始级(1),CMM成熟度等级的评估,评估步骤: 1.项目关键实践(被执行活动)的性能评分,2.评定关键过程域所达到的目标,3. 项目的成熟度等级评定,4.有多个项目的等级来评定组织(软件商) 的成熟度等级,重复级的关

24、键实践,需求管理: 执行约定 执行能力 被执行活动 测量和分析 检查,软件项目计划: ,软件项目跟踪和监督: ,管理级的关键实践,组织过程定义 组织标准软件过程,集成软件管理 项目定义软件过程,定量分析项目 定义软件过程性能,控制,数据,软件过程 性能在定义 的范围内,定量过程管理,改进,定义过程管理,软件质量管理,软件质量管理,定量过程管理,软件产品管理,集成软件管理,管理级,定义级,实现定量目标:软件产品,定量分析:项目定义 软件过程,实践:项目定义 软件过程,建立:项目定义 软件过程,软件过程评估和软件能力评价 软件过程评估:集中关注一个组织所需 改进之处及其轻重缓急; 软件能力评价:集

25、中关注识别一个特定 项目再进度要求和预算 限制内构造出高质量软 件所面临的风险。,软件过程评估和软件能力评价的差别,是在开放、合作的环 境中进行的; 目的在于暴露问题和 帮助经理和工程师改 进他们组织的软件过 程;,软件过程评估,软件能力评价,是在更为面向审计 的环境中进行的, 评价的目的与金钱 密切相关,评估评价组的推荐意见将影响挑选承制方或投放资金。,统一软件开发过程RUP,RUP(Rational Unified Process)是Rational 公司1998年发布的通用的软件开发过程框架,RUP是一种软件工程过程; 统一了各种开发方法; 使用统一建模语言UML,RUP和CMM相辅相成

26、; 软件企业使用RUP很容易达到CMM3级的要求; RUP可以作为CMM3级所要求的机构标准软件 过程;,RUP的特点,用例驱动; 架构为核心; 增量迭代的开发过程;,软件质量,是贯穿软件生存期的一个极为重要的问题。是软件开发过程中所使用的各种开发技术和验证方法的最终体现。因此,在软件生存期中要特别重视质量的保证,以生成高质量的软件产品。,软件质量保证,ANSI/IEEE Std 729-1983定义软件质量为: “与软件产品满足规定的和隐含的需求的能力有关的特征或特性的全体”。 M. J. Fisher定义软件质量为: “所有描述计算机软件优秀程度的特性的组合”。 也就是说,为满足软件的各项

27、精确定义的功能、性能需求,符合文档化的开发标准,需要相应地给出或设计一些质量特性及其组合,作为在软件开发与维护中的重要考虑因素。如果这些质量特性及其组合都能在产品中得到满足,则这个软件产品质量就是高的。,软件质量的概念,软件质量的概念,软件质量反映了以下三方面的问题: (1) 软件需求是度量软件质量的基础。不符合需求的软件就不具备质量。 (2) 在各种标准中定义了一些开发准则,用来指导软件人员用工程化的方法来开发软件。如果不遵守这些开发准则,软件质量就得不到保证。 (3) 往往会有一些隐含的需求没有明确地提出来。例如,软件应具备良好的可维护性。如果软件只满足那些精确定义了的需求而没有满足这些隐

28、含的需求,软件质量也不能保证。,软件质量特性,软件质量特性,反映了软件的本质。讨论一个软件的质量,问题最终要归结到定义软件的质量特性。而定义一个软件的质量,就等价于为该软件定义一系列质量特性。 人们通常用软件质量模型来描述影响软件质量的特性。已有多种有关软件质量的模型。它们共同的特点是把软件质量特性定义成分层模型。在这种分层的模型中,最基本的叫做基本质量特性,它可以由一些子质量特性定义和度量。二次特性在必要时又可由它的一些子质量特性定义和度量。,互连性(Interoperability) 可移植性(Portability) 复用性(Reusability),McCall软件质量模型,McCal

29、l质量度量模型框架,ISO的软件质量评价模型,按照ISO/TC97/SC7/WG3/1985-1-30/N382,软件质量度量模型由三层组成 高层(top level) 软件质量需求评价准则(SQRC) 中层(mid level) 软件质量设计评价准则(SQDC) 低层(low level) 软件质量度量评价准则(SQMC),软件质量特性之间的竞争,在软件的质量特性与质量特性之间、质量特性与质量子特性之间存在着有利的影响和不利的影响。,质量特性间的有利和不利影响,质量控制,“质量控制”是为了保证每一件工作产品都满足对它的需求而应用于整个开发周期中的一系列审查,复审和测试。质量控制在创建工作产品

30、的过程中包括一个反馈循环。度量和反馈相结合,使得我们能够在得到的工作产品不能满足其规约时调整开发过程。这种方法将质量控制视为整个制造过程的一部分。,质量保证,“质量保证”由管理层的审计和报告功能构成。质量保证的目标是为管理层提供为获知产品质量信息所需的数据,从而获得产品质量是否符合预定目标的认识和信心。当然如果质量保证所提供的数据发现了问题,则管理层负责解决这一问题,并为解决质量问题分配所需的资源。,质量的成本,质量成本包括所有由质量工作或者进行与质量有关的活动所导致的成本。 质量成本可以被划分为与预防、鉴定及失败相关的成本。,质量的成本,“预防成本”包括 质量计划。 正式技术复审。 测试设备

31、。 培训。 “鉴定成本”包括为深入了解“首次通过” 各个过程时产品的状态而开展的那些活动。鉴定成本的例子如下: 过程内和过程间审查。 设备校准和维护。 测试。,质量的成本,“失败成本”是指如果在将产品交付给客户之前已经消除了缺陷时就不会存在的成本。失败成本可以进一步划分为内部失败成本和外部失败成本。“内部失败成本”是指在产品交付之前发现错误而引发的成本。内部失败成本包括: 返工。 修复。 失败模式分析。 “外部失败成本”是指与产品交付给客户之后所发现的缺陷相关的成本。外部失败成本的例子如下: 解决客户的抱怨。 退换产品。 求助电话支持。 保修工作。,软件质量保证,在今天,这一定义的含义是在一个

32、组织中有多个机构负有保证软件质量的责任包括软件工程师、项目管理者、客户、销售人员和SQA小组的成员。 SQA小组充当客户在公司内部的代表。这就是说,SQA小组的成员必须以客户的观点看待软件。软件是否充分满足各项质量因素?软件开发是否依照预先设定的标准进行?作为SQA活动的一部分的技术规程是否恰当的发挥了作用?SQA小组的工作将回答上述的及其他的问题,以确保软件质量得到维护。,SQA活动,软件质量保证由各种任务构成,这些任务分别与两种不同的参与者相关做技术工作的软件工程师和负责质量保证的计划、监督、记录、分析及报告工作的SQA小组。,SQA活动,为项目准备SQA计划; 参与开发该项目的软件过程描

33、述软件工程小组为要进行的工作选择一个过程; 复审各项软件工程活动、对其是否符合定义好的软件过程进行核实SQA小组识别、记录和跟踪与过程的偏差,并对是否已经改正进行核实。 审计指定的软件工作产品、对其是否符合定义好的软件过程中的相应部分进行核实SQA小组对选出的产品进行复审;识别、记录和跟踪出现的偏差、对是否已经改正进行核实、定期将工作结果向项目管理者报告。 确保软件工作及工作产品中的偏差已被记录在案,并根据预定规程进行处理偏差可能出现在项目计划、过程描述、采用的标准或技术工作产品中。 记录所有不符合的部分,并报告给高级管理者不符合的部分将受到跟踪直至问题得到解决。 除进行上述活动之外,SQA小

34、组还需要协调变化的控制和管理,并帮助和分析软件度量信息。,软件复审,软件复审是软件工程过程中的“过滤器”。复审被用于软件开发过程中的多个不同的点上,起到发现错误(进而引发排错活动)的作用。 复审是一种借助一组人的差异性来达到目的的方法: 1. 指出一个人或小组生产的产品所需进行的改进。 2. 确定产品中不需要或者不希望改进的部分。 3. 得到与没有进行复审相比更加一致、或者至少更可预测的技术工作的质量,从而使得技术工作更易于管理。,正式技术复审,正式技术复审(FTR)是一种由软件工程师进行的软件质量保证活动。FTR的目标是(1)在软件的任何一种表示形式中发现功能、逻辑或实现的错误;(2)证实经

35、过复审的软件的确满足需求;(3)保证软件的表示符合预定义的标准;(4)得到以一种一致的方式开发的软件;(5)使项目更易于管理。由于FTR的进行使大量人员对软件系统中原本并不熟悉的部分更为了解,因此,FTR还起到了提高项目连续性和培训后备人员的作用。,正式技术复审,FTR实际上是一类复审方式,包括“走查”(Walkthrough)、“审查”(Inspection)、“轮查”(Round-robin Review)以及其他软件小组的技术评估。每次FTR都以会议形式进行,只有经过适当的计划、控制和参与,FTR才能获得成功。,1复审会议,不论选择何种FTR形式,每个复审会议都应该遵守下面的约束: 复审

36、会议(通常)应该在3到5个人之间进行。 应该进行提前准备,但是每人占用工作时间应该少于2小时。 复审会议时间应该不超过2小时。,2复审报告和记录保存,在FTR期间, 一名复审者(记录员)主动记录所有被提出的问题:在复审会议结束时,对这些问题进行小结,并生成一份,“复审问题列表”此外,还要完成一份简单的“复审总结报告”。复审总结报告将回答以下问题: (1) 复审什么? (2) 由谁复审? (3) 发现了什么,结论是什么?,3复审指南,复审产品,而不是复审生产者。 (2) 制定日程,并且遵守日程。 (3) 限制争论和辩驳。 (4) 对各个问题都发表见解,但是不要试图解决所有记录的问题。 (5) 作

37、书面笔记。,3复审指南,(6) 限制参与者人数,并坚持事先做准备。 (7) 为每个可能要复审的工作产品建立一个检查表。 (8) 为FTR分配资源和时间。 (9) 对所有复审者进行有意义的培训。 (10) 复审以前所作的复审。,统计质量保证,统计质量保证反映了一种在产业界不断增长的趋势: 质量的量化。对于软件而言,统计质量保证包括以下步骤: 1收集和分类软件缺陷信息。 2尝试对每个缺陷的形成原因(例如,不符合规约、设计错误、违背标准、与客户通信不力等)进行追溯。 3使用Pareto规则(80的缺陷的20成因有可能可以追溯到),将这20(少数重要的)分离出来。 4一旦标出少数重要的原因,就叮以开始

38、纠正引起缺陷的问题。 这一相对简单的概念代表的是为创建适合的软件工程过程的一个重要步骤。 在该过程中将进行修改,以改进那些引入错误的过程要素。,ANS/IEEE Std. 730-1984和983-1986软件质量保证计划,缺陷排除效率 缺陷排除效率(DRE)在项目级和过程级都能提供有益的质量度量。本质上,DRE是对质量保证及控制活动的过滤能力的一个测量,这些活动贯穿于整个过程框架活动。 当把一个项目作为一个整体来考虑时,DRE按如下方式定义: DRE=E/(E+D) 其中:E=软件交付给最终用户之前所发现的错误数 D=软件交付之后所发现的缺陷数 最理想的DRE值是1,即软件中没有发现缺陷。,

39、DRE也能够用来在项目中评估一个小组发现错误的能力,在这些错误传递到下一个框架活动或软件工程任务之前。 在这种情况下,我们定义DRE为: DREi=Ei/(Ei+Ei+1) 其中Ei=在软件工程活动i中所发现的错误数 Ei+1=在软件工程活动i+1中所发现的错误数,这些错误来源于软件工程活动i中未能发现的错误。 一个软件项目组(或单个软件工程师)的质量目标是使DRE接近1。即,错误应该在传递到下一个活动之前被过滤掉。,第八章 软件质量管理与质量保证,8.1 软件质量概述 8.1.1 软件质量定义 ANSI标准对软件质量的定义: “软件质量是软件产品或服务的特性和 特性的整体” IEEE对软件质

40、量的定义: 软件产品具备满足给定需求的特性及特征的总体的能力 软件拥有所期望的各种属性组合的程度 用户认为软件满足他们综合期望的程度 软件组合特性可以满足用户预期需求的程度,8.5 软件质量定义,ANSI标准对软件质量的定义: “软件质量是软件产品或服务的特性和 特性的整体” IEEE对软件质量的定义: 软件产品具备满足给定需求的特性及特征的总体的能力 软件拥有所期望的各种属性组合的程度 用户认为软件满足他们综合期望的程度 软件组合特性可以满足用户预期需求的程度,第八章 软件维护、软件质量、软件文档与软件产权保护,从实际应用角度,软件质量(software quality)定义 (1)与明确确

41、定的功能和性能需求的一致性 (2)与明确成文的开发标准的一致性 (3)与所有专业开发的软件所期望的隐含的特性的一致性 上述定义突出了三点: (1)需求是质量度量的基础,缺少与需求的一致性就无质量可言; (2)专门的标准定义了一系列的开发准则,它指导软件工程化的开发方式; (3)通常,对许多隐含需求不采用直接提出的方法(如良好的可维护性的要求)而忽视满足软件隐含的需求,那末,这样的软件质量也是不可信的。,8.6 软件质量因素 影响软件质量的因素分两大类: (1) 可以直接度量的因素。 (2)只能间接度量的因素。如可用性或可维护性. 1976年,Boehm等人提出了定量的评价软件质量的概念,并给出

42、了30个质量度量公式,来确定评价软件质量,首次提出了软件质量度量的层次模型。 1978年,Walters和Mccall提出了从软件质量要素准则到度量的三个层次软件质量度量模型。,McCall的三层质量度量模型,McCall质量度量模型框架,特性,评价准则,评价准则,评价准则,度量,度量,度量,面向管理观点 的产品质量,决定产品质量 的软件属性,定量化地度 量软件属性,McCall质量模型:提出软件质量包含的特性,软件质量特性为11个: 可使用性(Usability) 正确性(Correctness) 可靠性(Reliability) 效率(Efficiency) 完整性、安全性(Integri

43、ty, Security) 灵活性(Flexibility) 可测试性(Restability) 可维护性(Maintainability) 可移植性(Portability) 复用性(Reuseability) 互操作性(Interperability),第八章 软件维护、软件质量、软件文档与软件产权保护,G.murine根据上述等人的工作,提出了软件质量度量(SQM)技术,定量的评价软件(美国波音,日本的NEC在软件开发中都采用了该技术)。 国际标准组织(ISO)1985年提出了有关SQM的工作报告; Boehm 提出的软件质量度量模型。,第八章 软件维护、软件质量、软件文档与软件产权保护,主要用途 中间构造 基本构造,软件质量度量模型图,第八章 软件维护、软件质量、软件文档与软件产权保护,软件质量主要从三方面来评价 (1)软件可使用性 ; (2)软件可维护性; (3)软件可移植性 从模型可知,把软件质量的概念分解若干层次,对于最底层的软件质量概念引入数量化的概念,则得到软件质量的整体评价. Boehm等人关于软件质量特性完整定义如下: (1)可使用性:程序可靠的、高效率的、考虑到人的因素的程度; (2)可维护性:当需求改变时,程序修改和完善的难以程度; (3)可移植性:程序在其

温馨提示

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

评论

0/150

提交评论