软件质量模型与度量.ppt
GB/T16260系列标准软件质量模型与度量介绍,目 次概述2 软件质量度量的基本概念质量模型度量表的阅读和使用说明质量度量5.1 内部度量5.2 外部度量5.3 使用质量度量本标准实施的一些考虑应用实例国际标准未来的发展动态小结,概述1.1 软件质量标准的目的与意义-软件质量的重要性-软件质量的控制-软件质量标准的引出,1.2 GB/T16260 的修订背景及编制原则-关于GB/T16260-1996 GB/T16260-1996等同采用ISO/IEC9126:1991-关于ISO/IEC9126系列新标准-关于ISO/IEC14598系列标准,1.3 GB/16260新版 与ISO/IEC 9126的对应关系 GB/16260.1 等同采用ISO/IEC 9126.1:2001 GB/16260.2 等同采用ISO/IEC TR 9126.2:2003 GB/16260.3 等同采用ISO/IEC TR 9126.3:2003 GB/16260.4 等同采用ISO/IEC TR 9126.4:2004,1.4 GB/16260新版 的特点GB/16260.1规定了两种质量模型 其中外部质量模型共6个特性27个子特性内部质量模型共6个特性27个子特性 使用质量模型共4个特性-GB/16260.2给出了软件外部质量度量方法(112个度量元)-GB/16260.3给出了软件内部质量度量方法(70个度量元)-GB/16260.4给出了软件使用质量度量方法(15个度量元)-关于重复的内容,2 软件质量度量的基本概念属性 实体的可以测量的物理或理论上的性质。内部属性 实体的可测量的性质,它可能纯粹由实体本身导出.外部属性 实体的可测量的性质,它仅可由实体与环境的关系导出.质量 实体特性的总和,表示实体满足明确或隐含要求的能力。质量模型 一组特性及特性之间的关系,它提供规定质量需求和评价质量的基础。,内部质量 产品属性的总和,决定了产品在特定条件下使用时,满足明确和隐含要求的能力。外部质量 产品在特定条件下使用时,满足明确或隐含要求的程度。使用质量 特定用户使用的产品满足其要求,以在特定的使用周境下达到有效性、生产率、安全性和满意度等特定目标的程度。,过程质量 GB/T 8566-2001中定义的任一生存周期过程的质量。内部度量 内部度量通过分析中间的或可交付的软件产品的静态性质来测量内部属性或指出外部属性,其目的是为了确保获得所需的外部质量和使用质量。,外部度量 外部度量是通过测试、操作和观察可执行的软件或系统,测量软件产品作为其一部分的系统的行为来进行。使用质量度量 基于用户观点的软件产品用于指定的环境和使用周境时的质量,它测量用户系统在特定环境中能达到其目标的程度,而不是测量软件自身的性质。,软件质量的标度 标度从观察得到的状态到一个数值范围的映射,每 一种标度都能处理某一度量的观察结果。一组有序的连续值或离散值,或一组与属性 映射的类别(ISO/IEC 15939)设Q N为一个正规的度量体系:若从Q到N上的度量之间的合适值转换的集合是N 上的一一映射的集合,则称该度量体系的标度类型 为标称标度。若从Q到N上的度量之间的合适值转换的集合是N 上的单调递增函数的集合,则称该度量体系的标度 类型为顺序标度。,若从Q到N上的度量之间的合适值转换的集合是N 上的形如M=aM+b(a0)的线性函数的集合,则称该度量体系的标度类型为间隔标度。若从Q到N上的度量之间的合适值转换的集合是N 上的形如M=aM(a0)的线性函数的集合,则称该度量体系的标度类型为比率标度。若从Q到N上的度量之间的合适值转换是M=M,则称该度量体系的标度类型为绝对标度。,软件产品质量生存周期模型,3 质量模型内部和外部质量模型,功能性 当软件在指定条件下使用时,软件产品提供满足明确和隐含要求的功能的能力。适合性 软件产品为指定的任务和用户目标提供一组合适的功能的能力。准确性 软件产品提供具有所需精度的正确或相符的结果或效果的能力。,互操作性 软件产品与一个或更多的规定系统进行交互的能力。安全保密性 软件产品保护信息和数据的能力,以使未授权的人员或系统不能阅读或修改这些信息和数据,而不拒绝授权人员或系统对它们的访问。功能性的依从性 软件产品遵循与功能性相关的标准、约定或法规以及类 似规定的能力。,可靠性 在指定条件下使用时,软件产品维持规定的性能级别的能力。成熟性 软件产品为避免由软件内部的故障而导致失效的能力。容错性 在软件出现故障或者违反其指定接口的情况下,软件产品维持规定的性能级别的能力。,易恢复性 在失效发生的情况下,软件产品重建规定的性能级别并恢复受直接影响的数据的能力。可靠性的依从性 软件产品遵循与可靠性相关的标准、约定或法规的能力。易用性 在指定条件下使用时,软件产品被理解、学习、使用和吸引用户的能力。,易理解性 软件产品使用户能理解软件是否合适以及如何能将软件用于特定的任务和使用条件的能力。易学性 软件产品使用户能学会其应用的能力。易操作性 软件产品使用户能操作和控制它的能力。吸引性 软件产品吸引用户的能力。,易用性的依从性 软件产品遵循与易用性相关的标准、约定、风格指南或法规的能力。效率 在规定条件下,相对于所用资源的数量,软件产品可提供适当性能的能力。时间特性 在规定条件下,软件产品执行其功能时,提供适当的响应和处理时间以及吞吐率的能力。,资源利用性 在规定条件下,软件产品执行其功能时,使用合适数量和类别的资源的能力。效率依从性 软件产品遵循与效率相关的标准或约定的能力。维护性软件产品可被修改的能力。修改可能包括修正、改进或软件对环境、需求和功能规格说明变化的适应。,易分析性 软件产品诊断软件中的缺陷或失效原因或识别待修改部分 的能力。易改变性 软件产品使指定的修改可以被实现的能力。稳定性 软件产品避免由于软件修改而造成意外结果的能力。易测试性 软件产品使已修改软件能被确认的能力。,维护性的依从性 软件产品遵循与维护性相关的标准或约定的能力。可移植性软件产品从一种环境迁移到另外一种环境的能力。适应性 软件产品毋需采用额外的活动或手段就可适应不同指定环境的能力。易安装性 软件产品在指定环境中被安装的能力。,共存性 软件产品在公共环境中同与其分享公共资源的其他独立 软件共存的能力。易替换性 软件产品在同样环境下,替代另一个相同用途的指定软件产品的能力。可移植性的依从性 软件产品遵循与可移植性相关的标准或约定的能力。,使用质量用的质量模型,有效性 软件产品在指定的使用周境下,使用户能正确和完全地达到规定目标的能力。生产率 软件产品在指定的使用周境下,使用户为达到有效性而消耗适当数量的资源的能力。,安全性 软件产品在指定使用周境下,达到对人类、业务、软件、财产或环境造成损害的可接受的风险级别的能力。满意度 软件产品在指定的使用周境下,使用户满意的能力。,4 度量表的阅读和使用说明度量名称对每一个度量元予以相应的名称。度量目的 以提问的形式说明该项度量的目的是什么。应用的方法 实施该项度量所使用的方法、技术或规则。,测量、公式和数据元素计算 给出测量公式,并解释所使用的数据元素的意义。注:在某些情况下一个度量对应多个公式。测量值解释给出取值范围和最佳值。,度量标度类型 度量中使用的标度类型。包括:标称标度、顺序标度、间隔标度、比率标度和绝对标度。注:本标准中主要使用的是绝对标度和比率标度测度类型 所用的类型,如:规模类型(功能规模、源代码规模)、时间类型(经时时间、用户时间)、计数类型(变化数、失效数)。,测量输入 测量中使用的资料、数据来源。在GB/T 8566-2001中的应用 标识出应用该度量的软件生存周期过程 目标用户 标识测量结果的用户使用者。,5 质量度量 5.1 内部度量适合性内部度量表度量1度量名:功能的充分性 度量的目的:功能是否足够?采用的方法:对适合于执行特定任务的已实现的功能计数,然后算出它与全部实现的功能数之比。可以测量全部或部分设计规格说明;完成的模块/完成的部分软件产品与评价的功能数相比;测量,公式以及数据元素的计算:X=1-A/B,A=评价过程中发现有问题的功能数,B=被检测的功能数测量值的解释:0.0X1.0,越接近于1.0,越充分度量标度类型:绝对标度测量类型:X=计数/计数,A=计数,B=计数测量输入:需求规格说明、设计文档、源代码、评审报告GB/T8566中的应用:确认、联合评审目标用户:需方、开发者,度量2度量名:功能实现的完整性 度量的目的:功能实现的完整程度如何?采用的方法:对评价中检测到遗漏的功能进行计数,并与需求规格说明中已描述的功能数相比较。测量,公式以及数据元素的计算:X=1-A/B,A=评价中检测到遗漏的功能数,B=在需求规格说明中已描述的功能数测量值的解释:0.0X1.0,越接近于1.0,越完整度量标度类型:绝对标度测量类型:X=计数/计数,A=计数,B=计数测量输入:需求规格说明、设计文档、源代码、评审报告GB/T8566中的应用:确认、联合评审目标用户:需方、开发者,度量3度量名:功能实现的覆盖率 度量的目的:正确实现功能的程度如何?采用的方法:对不能正确实现或遗漏的功能进行计数,并与需求规格说明中已描述的功能数相比较。测量,公式以及数据元素的计算:X=1-A/B,A=检测到的不能正确实现或遗漏的功能数,B=需求规格说明中已描述的功能数测量值的解释:0.0X1.0,越接近于1.0,越正确度量标度类型:绝对标度测量类型:X=计数/计数,A=计数,B=计数测量输入:需求规格说明、设计文档、源代码、评审报告GB/T8566中的应用:确认、联合评审目标用户:需方、开发者,度量4度量名:功能规格说明的稳定性(易变性)度量的目的:在生存周期开发中功能规格说明的稳定性如何?采用的方法:对在开发周期阶段中更改(增、改、删)的功能进行计数,并与需求规格说明中已描述的功能数相比较。测量,公式以及数据元素的计算:X=1-A/B,A=在生存周期开发阶段更改的功能数,B=在需求规格说明中已描述的功能数测量值的解释:0.0X1.0,越接近于1.0,越稳定度量标度类型:绝对标度测量类型:X=计数/计数,A=计数,B=计数测量输入:需求规格说明、评审报告GB/T8566中的应用:确认、质量保证、合格性测试、问题解决、运作目标用户:开发者、维护者,5.2 外部度量适合性外部度量表(一)度量1度量名:功能的充分性 度量的目的:评价功能的充分程度如何?采用的方法:与评价的功能数相比,适于执行规定的任务的功能数测量,公式以及数据元素的计算:X=1-A/B,A=评价过程中发现有问题的功能数,B=被评价的功能数测量值的解释:0.0X1.0,越接近于1.0,越充分度量标度类型:绝对标度测量类型:X=计数/计数,A=计数,B=计数测量输入:需求规格说明、评价报告GB/T8566中的应用:确认、质量保证、合格性测试目标用户:开发者、SQA,适合性外部度量表(二)度量2度量名:功能实现的完整性 度量的目的:按照需求规格说明,功能实现的完整程度如何?采用的方法:按照需求规格说明对系统做功能性测试(黑盒测试),计算出在测试中缺失的功能数目,并将其与需求规格说明中描述的功能数进行比较。测量,公式以及数据元素的计算:X=1-A/B,A=评测过程发现的遗漏功能数,B=在需求规格说明描述的功能数测量值的解释:0.0X1.0,越接近于1.0,越完整度量标度类型:绝对标度测量类型:X=计数/计数,A=计数,B=计数测量输入:需求规格说明、评价报告GB/T8566中的应用:确认、质量保证、合格性测试目标用户:开发者、SQA,适合性外部度量表(三)度量3度量名:功能实现的覆盖率度量的目的:功能实现的正确程度如何?采用的方法:按照需求规格说明对系统做功能性测试(黑盒测试),计算出不能正确实现或检测到的缺失的功能数,并将其与需求规格说明中描述的功能数比较。测量,公式以及数据元素的计算:X=1-A/B,A=在评价中检测到的不能正确实现或缺失的功能数,B=需求规格说明中描述的功能数测量值的解释:0.0X1.0,越接近于1.0,越好度量标度类型:绝对标度测量类型:X=计数/计数,A=计数,B=计数测量输入:需求规格说明、评价报告GB/T8566中的应用:确认、质量保证、合格性测试目标用户:开发者、SQA,适合性外部度量表(四)度量4度量名:功能规格说明的稳定性度量的目的:在进入运行之后,功能规格说明的稳定性如何?采用的方法:系统投入运行后,对必须修改的功能计数,并将其与需求规格说明中的功能总数进行比较。测量,公式以及数据元素的计算:X=1-A/B,A=从系统投入运行开始到运行后修改的功能数,B=在需求规格说明中描述的功能总数测量值的解释:0.0X1.0,越接近于1.0,越稳定度量标度类型:绝对标度测量类型:X=计数/计数,A=计数,B=计数测量输入:需求规格说明、评价报告GB/T8566中的应用:问题解决过程、运作过程目标用户:维护者、SQA,成熟性外部度量表度量1度量名:估计潜在的故障密度 度量的目的:将来可能出现的故障问题有多少?采用的方法:对在一定的试验周期内检测到的故障数进行计数,并用可靠性增长估计模型来预测未来潜在的故障数。测量,公式以及数据元素的计算:X=ABS(A1-A2)/B,(X:估计残留的潜在故障密度),ABS()=绝对值,A1=在软件产品中预测的潜在故障总数,A2=实际已检测到的故障总数,B=产品的规模 测量值的解释:0.0X,取决于测试阶段,在以后的阶段中X值越小越好。度量标度类型:绝对标度测量类型:X=计数/计数,A1=计数,A2=计数,B=计数测量输入:测试报告、运行报告、问题报告GB/T8566中的应用:软件集成、合格性测试、运作、确认、质量保证过程目标用户:开发者、测试者、SQA、用户,成熟性外部度量表度量2度量名:针对测试用例的失效密度 度量的目的:在一定的试验周期内检测出多少失效?采用的方法:对检测到的失效个数和执行测试用例的个数进行计数。测量,公式以及数据元素的计算:X=A1/A2,A1=检测到的失效个数,A2=执行测试用例的个数 测量值的解释:0.0X,取决于测试阶段,在以后的阶段中X值越小越好。度量标度类型:绝对标度测量类型:X=计数/计数,A1=计数,A2=计数测量输入:测试报告、运行报告、问题报告GB/T8566中的应用:软件集成、合格性测试、运作、质量保证过程目标用户:开发者、测试者、SQA,成熟性外部度量表度量3度量名:故障密度 度量的目的:在一定的试验周期内检测出多少故障?采用的方法:对检测到的故障个数进行计数并计算密度。测量,公式以及数据元素的计算:X=A/B,A=检测到的故障数目,B=产品的规模 测量值的解释:0.0X,取决于测试阶段,在以后的阶段中X值越小越好。度量标度类型:绝对标度测量类型:X=计数/计数,A=计数,B=计数测量输入:测试报告、运行报告、问题报告GB/T8566中的应用:软件集成、合格性测试、运作、质量保证过程目标用户:开发者、测试者、SQA,5.3 使用质量度量使用质量的度量表(一)有效性度量 有效性度量评估的是指定的使用环境中执行相应的任务时,是否能够精确和完全地达到特定的目标。此度量只考虑已经完成了哪些目标,而不考虑如何达到目标。度量1度量名:任务有效性度量目标:已正确完成的任务目标的比例是多少?采用的方法:用户测试测量,公式以及数据元素的计算:M11Ai1 Ai任务输出中遗漏或不正确的部件的比例值测量值的解释:0.0 M1 1.0,越接近于1.0,越好测量输入:运行(测试)报告,用户监视记录GB/T8566中的应用:确认、运作、合格性测试目标用户:用户、界面设计者,使用质量的度量表(二)有效性度量度量2度量名:任务完成量度量目标:任务已完成部分的比例是多少?采用的方法:用户测试测量,公式以及数据元素的计算:XA/B A完成任务数,B总任务数测量值的解释:0.0 X 1.0,越接近于1.0,越好度量标度类型:比率标度测度类型:A=计数,B=计数,X=计数/计数测量输入:运行(测试)报告,用户监控记录GB/T8566中的应用:确认、运作、合格性测试目标用户:用户、界面设计者,使用质量的度量表(三)有效性度量度量3度量名:出错频率度量目标:出错频率是多少?采用的方法:用户测试测量,公式以及数据元素的计算:XA/T A用户导致的出错数,T任务数量或时间测量值的解释:0.0 X,越趋近于0.0,越好度量标度类型:绝对标度测度类型:A=计数测量输入:运行(测试)报告,用户监视记录GB/T8566中的应用:确认、运作、合格性测试目标用户:用户、界面设计者注:这度量仅适用于错误具有等同权重或定义了权值的情况下做出的比较。,使用质量度量(四),满意度度量度量名:满意度标度 度量的目的:用户满意程度?采用的方法:用户测试测量,公式以及数据元素的计算:X=A/B A=通过调查问卷得到的心理测试标度 B=总体平均数 测量值的解释:0.0X,越大越好。度量标度类型:比率标度测量类型:X=计数,A=计数,B=计数测量输入:运行(测试)报告、用户监视记录GB/T8566中的应用:确认、合格性测试、运作目标用户:用户人机界面设计者,使用质量度量(四),满意度度量度量名:满意度问卷 度量的目的:用户对具体的软件特征的满意程度?采用的方法:用户测试测量,公式以及数据元素的计算:X=Ai/n A=对问题的响应 n=响应数 测量值的解释:与前面得到的值相比较或与平均值比较。度量标度类型:顺序标度测量类型:X=计数,A=计数测量输入:运行(测试)报告、用户监视记录GB/T8566中的应用:确认、合格性测试、运作目标用户:用户、人机界面设计者、开发者,使用质量度量(四),满意度度量度量名:选用度 度量的目的:选择使用该系统的潜在用户的比例是多少?采用的方法:使用观察测量,公式以及数据元素的计算:X=A/B A=使用特定软件功能、应用及系统的次数 B=打算使用它们的次数测量值的解释:0.0X1.0,越接近于1.0越好。度量标度类型:比率标度测量类型:X=计数/计数,A=计数,B=计数测量输入:运行(测试)报告、用户监视记录GB/T8566中的应用:确认、合格性测试、运作目标用户:用户、人机界面设计者、开发者,本标准实施的一些考虑 软件度量的目的 认知:认知和理解过程、产品、资源和环境,建立比 较基线;评估:比较同步跟踪软件项目的状态,管理进展;及 时发现项目实施与计划的偏差,评估质量目标的实现 情况,以及技术和过程的改进对产品和过程的影响;预测:是建立在适当资源下,达到成本、进度和质量 目标的计划的基础。也可根据度量的实证,预测项目 发展的趋势,估计分析风险,做出设计/成本权衡;改进:帮助识别问题根源,判断可以改进的机会,交 流改进的目标和理由,调整资源分配等。,软件度量的对象 过程:与软件相关的一些活动。这些活动都有一个时 间因素;产品:指在软件开发过程中产生的各种中间产品、最 终产品、发布的资料和文档、现货软件等;资源:指在开发过程中输入给过程的东西。,软件度量的使用者 供方(开发者)质量保证人员 需方 用户 第三方测评机构,质量模型的确定 本标准的质量模型是面向所有软件的,因此它的质量属性面面俱到。但是对于一个具体的软件产品或软件项目来说,标准中规定的质量特性、子特性、度量元不一定都要涉及,也就是说要根据软件产品本身的特点、领域、规模等因素来选择标准中的质量特性、子特性建立自己的质量模型,其中包括度量元的确定。关于度量元的确定可以从标准中选取也可以根据实际情况补充若干度量元(因为标准中的度量元不是完备的),但体系最好与标准一致,即要有名称、度量目的、公式、指标、标度类型等内容。,质量元选择原则 由于GB/T16260的应用处于初级阶段,数据和经验的积累几乎为零,因此度量元选择原则是:a)选择充分体现该领域软件特征的度量元;b)可操作性好、度量项数据易获得且其获取的代价较小;c)少而精、规模适中;d)子特性、度量元尽量不相关;e)标准符合性要突出。,测量值“归一化”处理 由于软件产品的最终度量结果以加权和的方式进行计算,因此为了便于计算,要将所有的度量元的取值范围尽量控制在0.0到0.1之间、且确保取值趋于1.0越好,因此测量值取值范围不在0.0到1.0之间的度量元要做“归一化”处理。,产品最终测量值的优劣评价等级建议0.91.0 为优0.80.89 为良0.60.79 为合格0.59以下为不合格,软件构件质量模型(新增加的特性和子特性),某些质量特性互有影响,其中:表示有利影响,表示不利影响。,评价指标(评价准则)的确定 针对具体软件产品或软件项目实施度量评价时,要确定评价指标。也就是说衡量一个软件产品或中间产品的好坏,质量特性、子特性及度量元的合格与否要给出准绳,给出每个特性、子特性的权重。这样一些数据就需要长期积累、总结,也包括专家的评估确定。,软件度量的误区目的不明,事后发现度量的内容与管理无关;使用度量去评价个人;开发人员拒绝执行,认为会否认其工作业绩;度量过多,要求广泛收集数据,程序繁琐,不堪重负;认为度量结果报告无法引导管理活动;管理部门看到可能发生的问题或无成功的结果,而放弃 支持度量工作;过分强调LOC单个因素的度量。,提高软件质量的途径 提高软件产品的质量主要有二个途径(仅在质量度量的观点下),一个是寻求改进软件开发过程质量的方法,以CMM提出的软件成熟度模型和GB/T8566给出的软件生存周期过程为主要代表,从规范软件过程出发,持续改进软件过程,来保证软件产品开发的质量;另一个是对开发完成的产品(包括中间产品)进行测试、度量和评价,用以验证所开发的软件产品符合规定的要求。,质量途径(不同度量之间的关系),软件成本、进度、质量三要素,过程,技术,人,产品评价和产品质量的关系,应用实例(某网络通信服务软件)质量特性模型及其评价等级,评价方法综合评价软件包括两个因子:软件质量特性和软件的纯内部质量特性,即:综合特性=1软件质量特性+2纯内部质量特性(1)其中:1和2是两个综合特性因子的加权系数,根据专家评分确定1=0.8,2=0.2。质量特性评价根据公式(2)评价软件各质量特性:,(2),软件综合评价表,雷达图,网络通信服务软件的平均评分为83.5,等级为良,8 国际标准未来的发展动态SQuaRE的要素 a)引入了新的SQuaRE标准的体系结构;b)引入了新的通用参考模型;c)引入了各个部分专门的详细指南;d)引入了质量度量部分内部测量要素;e)引入了质量需求的标准;f)合并和修订了评价过程;g)引入了构成示例中的实际使用指南;h)与ISO/IEC 15939内容方面进行了调整与协调。,SQuaRE的组织结构如下图:,25043:评价者用的过程,ISO/IEC9126、ISO/IEC14598与SQuaRE系列标准的关系见下图,25000系列标准目录,25000 软件质量要求与评价(SQuaRE)指南25001 规划与管理25010 质量模型25012 数据质量25020 测量参考模型25021 质量测量元素25022 内部质量测量,25023 外部质量测量25024 使用质量测量25030 质量需求25040 评价参考模型与指南25041 评价模块25042 开发方用的评价过程25043 需方用的评价过程25044 评价方用的评价过程,25051 COTS软件产品的质量要求和测试说明25062 易用性测试报告的公共工业格式,SQuaRE通用参考模型,小结 GB/T16260的主要目的是使软件的需方(交办方)、供方(开发者)和用户能够认识到软件质量特性的重要性,针对具体产品、项目提出适当的质量模型,并能有效地开展质量度量。作为需方在项目论证时或在签订合同时,就能提出一些质量要求,并且尽量做到合理。作为供方(开发者)在项目论证或需求分析时,既要分析质量要求的合理性,又要分析如何满足需方或用户的质量要求,同时要考虑满足需方或用户潜在的隐含的质量要求。一旦质量需求确定后,就应对这些质量需求分析配置:即明确哪些过程、哪些活动、哪些阶段要控制、把握哪些质量需求。特别是要关注过程本身的质量。适时开展内部度量或外部度量。以使软件产品最终满足用户或需方的质量要求。,作为用户或需方既要关注使用质量,也要关注外部质量及内部质量。因为这些质量要求既有连带关系,又有制约关系。针对一个软件产品或软件项目,不可能所有的质量特性要求都提得很高。在我国,软件的需方、供方、开发者和最终用户,为了一个共同的目标,就是提高我国现代化水平,要互相理解、互相沟通,及时反馈相关信息,不断完善和提高软件的质量,提高我国软件工程化水平。,谢谢,