您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 质量控制/管理 > Ch6 软件质量度量
Zhu.Kerry@gmail.com作者软件质量保证和管理-Ch.6软件质量度量Zhu.Kerry@gmail.com第6章软件质量度量6.1测量基础6.2软件度量6.3软件质量度量方法6.4软件产品的质量度量6.5软件过程质量度量6.6软件质量度量的执行Zhu.Kerry@gmail.com6.1质量基础3个基本概念测量(Measurement)是对产品过程的某个属性的范围、数量、维度、容量或大小提供一个定量的指示;度量(Metric)是对软件产品进行范围广泛的测度,它给出一个系统、构件或过程的某个给定属性的度的定量测量;指标(Indicator)是一个度量或一组度量的组合,采用易于理解的形式,对软件过程、项目或产品质量提供更全面、深入的评价和了解,以利于过程和质量的分析Zhu.Kerry@gmail.com6.1质量基础6.1.1测量原理6.1.2测量标准6.1.3测量过程和原则Zhu.Kerry@gmail.com6.1.1测量原理测量原理示意图Zhu.Kerry@gmail.com6.1.1测量原理-度量尺度分类尺度(Nomnalscale)某个指标被分成一系列的类别。如产品质量属性有:功能性、适用性、性能、安全性、可靠性、可维护性等。序列尺度(Ordinalscale分类的序列,即在分类的基础上,再加以排序。如用1、2、3、4、5表示用户的满意度,1满意度最低,5满意度最高。也可以用某中线为基准的相对百分比来表示程度。间隔尺度(Intervalscale)通过数值来表示两个邻近测量点之间的差异,但没有绝对的“零”值。比值尺度(RatioScale)和间隔尺度相似,但有绝对的“零”值存在。Zhu.Kerry@gmail.com6.1.2测量标准有效性和可靠性是测量标准中最重要的指标。有效性指的是测量的结果正是反映了被测试对象的实际状况和程度、或合乎事务的发展、变化的规律——我们所需要的测量。可靠性指的是使用同样的测量方法对同样的事物进行多次测量,得到值的一致性。多次测量的值越接近,可靠性就越高;反之则可靠性越低。可靠但不有效有效但不可靠可靠且有效Zhu.Kerry@gmail.com6.1.3测量过程和原则识别目标和度量描述定义度量过程搜集数据数据分析与反馈过程改进测量过程Zhu.Kerry@gmail.com6.1.3测量过程和原则基本的测量原则:测量应该基于该应用领域正确的理论之上,并在测量的定义中确定测度的目标;每一个技术测量的定义应该具有一致性和客观性、无二义性;测量在经验和直觉上也应该有说服力;测量的方法力求简单、可计算性;测量应该被剪裁以最适应特定的产品和过程,而且任何时候应尽可能使得收集和分析自动化;应该用正确的统计技术来建立内部产品属性和外部待测量特征的关系;测量结果应该是可靠的,不会因为一些技术问题导致测量结果很大的偏离。测量应该建立反馈机制Zhu.Kerry@gmail.com6.2软件度量6.2.1软件开发生命周期的度量活动6.2.2软件的项目度量6.2.3软件产品的规模度量6.2.4代码行度量方法6.2.5功能点分析法6.2.6面向对象软件的对象点方法Zhu.Kerry@gmail.com6.2.1软件开发生命周期的度量活动软件产品度量:主要用来描述软件产品的特征,用于产品评估和决策。产品度量包括软件规模大小、产品复杂度、设计特征、性能以及质量水平。本书主要讨论产品的质量度量,测量产品的各个质量指标并最终对产品整体质量做出合理的评估。软件项目度量:用来描述项目的特性和执行状态,如项目计划的有效性、项目资源使用效率、成本效益、项目风险、进度和生产力等。目的是评估项目开发过程的质量、预测项目进度、工作量等,辅助管理者进行质量控制和项目控制。软件过程度量:用于软件开发、维护过程的优化和改进,如开发过程中的缺陷移除效率、测试阶段中的缺陷到达模式以及缺陷修复过程的效率等。对于软件过程本身的度量,目的是形成适合软件组织应有的各种模型,作为对项目、产品的度量基础;以及对软件开发过程进行持续改进,提高软件生产力。Zhu.Kerry@gmail.com6.2.1软件开发生命周期的度量活动软件开发生命周期中的测量活动Zhu.Kerry@gmail.com1.规模度量(sizemeasurement):以代码行数、功能点数、对象点或特征点等来衡量。软件规模度量是工作量度量、进度度量的基础,用于估算软件项目工作量、编制成本预算、策划项目进度的基础。2.复杂度度量(complexitymeasurement):确定程序控制流或软件系统结构的复杂程度指标。复杂度度量用于估计或预测软件产品的可测试性、可靠性和可维护性,以便选择最优化、最可靠的程序设计方法,来确定测试策略、维护策略等。3.缺陷度量(defectmeasurement):帮助确定产品缺陷分布的情况、缺陷变化的状态等,从而帮助分析修复缺陷所需的工作量、设计和编程中存在哪些弱点、预测产品发布时间、预测产品的遗留缺陷等。4.工作量度量(workloadmeasurement):任务分解并结合人力资源水平来度量,合理地分配研发资源和人力,获得最高的效率比。工作量度量是在软件规模度量和生产率度量的基础上进行。5.进度度量(schedulemeasurement):通过任务分解、工作量度量、有效资源分配等做出计划,然后将实际结果和计划值进行对比来度量。6.风险度量(riskmeasurement):一般通过两个参数“风险发生的概率”和“风险发生后所带来的损失”来评估风险。7.其他的项目度量,如需求稳定性或需求稳定因子(RSI,RequirementStabilityIndex)、资源利用效率(ResourceUtilization)、文档复审水平(Reviewlevel)、问题解决能力(Issue-resolvingability)、代码动态增长等。6.2.2软件的项目度量Zhu.Kerry@gmail.com6.2.3软件产品的规模度量1.德尔菲法德尔菲法(Delphitechnique)是一种专家评估技术,适用于在没有或没有足够的历史数据情况下,来评定软件采用不同的技术、新技术所带来的差异,但专家的水平及对项目的理解程度是工作中的关键点。2.COCOMO模型造性成本模型(COCOMO:constructivecostmodel)是一种精确、易于使用的基于模型的成本估算方法。它有分为基本COCOMO模型,中间COCOMO模型和详细COCOMO模型3.代码行度量方法4.功能点分析法5.面向对象软件的对象点方法Zhu.Kerry@gmail.com6.3软件质量度量方法6.3.1软件质量度量的分类6.3.2软件质量度量模型6.3.3基于时间的缺陷到达模式6.3.4PTR累积模型6.3.5Rayleigh模型Zhu.Kerry@gmail.com6.3.1软件质量度量的分类6.2.1已经介绍了相关内容这里是否就不用介绍了?Zhu.Kerry@gmail.com微软公司的缺陷到达模式6.3.3基于时间的缺陷到达模式缺陷数量05101520253035403-13-83-153-223-294-5缺陷达到模式的理想趋势图在测试阶段初期,缺陷率增长很快。在达到峰值后,就随时间以较慢的速率下降,降低到最低点——零点Zhu.Kerry@gmail.com6.3.3基于时间的缺陷到达模式不同的缺陷统计方法:1)一定时间内的总缺陷数;2)一定时间内的严重程度前两个等级的缺陷数之和;3)一定时间内的新引进的缺陷及回归的缺陷之和;4)一定时间内的新引进的缺陷及回归的缺陷,而且严重程度在前两个等级的缺陷之和。Zhu.Kerry@gmail.com6.3.3PTR累积模型PTR累积模型Zhu.Kerry@gmail.com6.3.5Rayleigh模型软件项目过程的Rayleigh模型形状Zhu.Kerry@gmail.com6.4软件产品的质量度量6.4.1软件复杂性的度量6.4.2软件缺陷度量6.4.3顾客满意度度量Zhu.Kerry@gmail.com6.4.1软件复杂性的度量McCabe环形计算复杂度复杂度计算公式为:M=V(G)=e–n+2p其中:V(G)路径图的环形数目e=边的数目n=节点数目p=图中没有连接部分的数目Zhu.Kerry@gmail.com6.4.1软件复杂性的度量语法构造方法基本思路是根据程序中可执行代码行的操作符和操作数的数量来计算程序的复杂性。操作符和操作数的量越大,程序结构就越复杂。语法构造方法可以揭示程序中单独的语法构造和缺陷率之间的关系:缺陷率=0.15+0.23DOWHILE+0.22SELECT+0.07IF-THEN-ELSEZhu.Kerry@gmail.com6.4.1软件复杂性的度量结构度量方法Henry给出的复杂性定义:Cp=(扇入×扇出)2其中:扇入–调用外部模块的模块数扇出–被外部模块调用的次数Card/Glass给出的度量模型:Ct=St+Dt其中:St–结构(模块间)复杂性Dt–数据(模块间)复杂性Zhu.Kerry@gmail.com6.4.2软件缺陷度量缺陷密度——软件缺陷在规模上的分布如:每KLOC或每个功能点(或类似功能点的度量——对象点、数据点、特征点等)的缺陷数缺陷率——缺陷在时间上的分布如:对应用软件的角度来说,90%以上的缺陷是在发布后两年内被发现出来。整体缺陷清除率在软件开发过程中发现的所有缺陷数/发现的总缺陷数阶段性缺陷清除率%产品中潜伏的缺陷数开发阶段清除的缺陷数100Zhu.Kerry@gmail.com6.4.3顾客满意度度量顾客满意度要素顾客满意度要素的内容技术解决方案质量、可靠性、有效性、易用性、价格、安装、新技术支持与维护灵活性、易达性、产品知识市场营销解决方案、接触点、信息管理购买流程、请求手续、保证期限、注意事项交付准时、准确、交付后过程企业形象技术领导、财务稳定性、执行印象软件组织的顾客满意度要素及其内容Zhu.Kerry@gmail.com6.4.3顾客满意度度量顾客满意度要素顾客满意度度量内容软件产品功能性、可靠性、易用性、效率性、可维护性、可移植性开发文档文档的构成、质量、外观、图表以及索引、用语项目进度以及交期交期的根据、进度迟延情况下的应对、进展报告技术水平项目组的技术水平、项目组的提案能力、项目组的问题解决能力沟通能力事件记录、格式确认、问题解答运用维护支持、问题发生时的应对速度、问题解决能力软件项目的顾客满意度要素及其内容Zhu.Kerry@gmail.com6.5软件过程质量度量6.5.1软件需求过程的质量度量6.5.2软件过程生产率的度量6.5.3测试阶段的过程质量度量6.5.4维护阶段的过程质量度量Zhu.Kerry@gmail.com6.5.1软件需求过程的质量度量需求一致性度量Q1=nui/nrnui是所有复审者都有相同解释的需求数目nr是需求说明书中需求的个数,包含功能和非功能需求需求完整性度量Q2=nu/(ni×ns)nu是唯一功能需求的数目ni是由需求规格定义或包含的输入的个数ns是被表示的状态的个数。需求确认程度度量Q3=nc/(nc+nnv)nc是已经确认为正确的需求的个数nnv是尚未被确认的需求的个数Zhu.Kerry@gmail.com6.5.1软件需求过程的质量度量需求稳定性度量需求稳定性度量是通过需求稳定因子RSI来表示:RSI=(所有确定的需求数-累计的需求变化请求数)/所有确定的需求数所有确定的需求数=初始需求请求列表数+接受的需求变化请求数Zhu.Kerry@gmail.com6.5.2软件过程生产率的度量软件生产率的三维关系Zhu.Kerry@gmail.com6.5.2软件过程生产率的度量度量量代码行功能点类测试用例度量单位人时(man-hour)人日(man-day)人月(man-month)人年(man-year)Zhu.Kerry@gmail.com6.
本文标题:Ch6 软件质量度量
链接地址:https://www.777doc.com/doc-4168716 .html