软件工程产品度量ppt课件.ppt
第十六讲 产 品 度 量,产品度量,软件产品质量的生命周期及其度量软件产品度量用于对软件产品进行评价,并在此基础之上推进产品设计、产品制造和产品服务优化。软件产品的度量实质上是软件质量的度量,而软件的质量度量与其质量的周期密切相关。,软件质量,对明确陈述的功能和性能需求、明确记录的开发标准以及对所有专业化软件开发应具备的隐含特征的符合度软件需求是质量测量的基础特定标准定义了用以指导软件开发的准则有一组未被提及的隐式需求,为什么软件质量需要有度量?,有效产品质量管理改进用户满意度改进产品质量减少产品开发和售后服务支持费用没有质量度量,等于没有质量标准!,软件测试的质量需要有度量,有效实行测试质量分析和管理可及时检查测试进度和质量帮助发现测试漏洞比较测试质量变化趋势,风险分析帮助找出最佳实践,使用软件产品质量度量的挑战,无公认准确和科学的度量产品性质不同,很难有通用的度量最佳实践实际上是经验积累总结涉及不定因素和人为因素片面理解和使用可以造成负面影响和效果,制定软件质量度量时注意事项,跟踪度量的变化的一致性提供基础数据以便杜绝滥用数据讨论会或所有有关方面认可体现产品质量结果是否满足质量标准明确谁是使用者,软件产品质量度量模型,软件产品的度量主要针对作为软件开发成果的软件产品的质量而言,独立于其过程。软件的质量由一系列质量要素组成,每一个质量要素又由一些衡量标准组成,每个衡量标准又由一些量度标准加以定量刻划。质量度量贯穿于软件工程的全过程以及软件交付之后。在软件交付之前的度量主要包括程序复杂性、模块的有效性和总的程序规模在软件交付之后的度量则主要包括残存的缺陷数和系统的可维护性方面。一般情况下,可以将软件质量特性定义成分层模型。,勃姆(Barry W. Boehm)在软件风险管理(Software Risk Management)中第一次提出了软件质量度量的层次模型。麦考尔(McCall)等人将软件质量分解至能够度量的层次,提出FCM 3层模型:软件质量要素(factor)衡量标准(criteria)量度标准(metrics)包括11个标准,分为产品操作(product operation)、产品修正(product revision)和产品转移(product transition)。ISO 9126将软件质量总结为6大特性,每个特性包括一系列副特性,其软件质量模型包括3层:高层:软件质量需求评价准则(SQRC);中层:软件质量设计评价准则(SQDC);低层:软件质量度量评价准则(SQMC)。,McCall的质量因素,产品运行,产品修改,产品转移,可维护性灵活性可测试性,可移植性可复用性互操作性,正确性 可靠性 易用性 完整性 效率,软件质量度量FCM模型,McCall的质量因素(II),正确性:程序满足需求规格说明和完成用户任务目标的程度。可追踪性:从一个设计表示或实际程序追踪到需求的能力。完备性:所需功能完全实现的程度一致性:设计文档与系统实现的一致性。,McCall的质量因素(III),可靠性:程序以所要求的精度完成预期功能的程度。准确性:计算和控制的精度容错性:在各种异常条件下继续提供操作的能力 与正确性的区别正确性:它按我的需要工作吗? 可靠性:在任何时候它都能适当地响应吗?,McCall的质量因素(IV),完整性:对未授权人员访问软件或数据的可控程度。 易用性(易培训性):对程序学习、操作、准备输入和解释输出所需要的工作量 效率:程序完成其功能所需的资源 计算效率存储效率,McCall的质量因素(V),可维护性:定位和修复程序中的一个错误所需要的工作量简单性:理解程序的难易程度 简明性:程序源代码的紧凑与简洁性 检测性:系统能监视自身的运行,一旦发生错误,能明确地标识出产生错误的位置,McCall的质量因素(VI),灵活性(适应性):修改一个可正常运行的程序所需的工作量 模块化:程序部件的独立性 通用性:程序部件潜在应用范围的广泛性,即可重用性 软件系统独立性:程序与非标准的程序设计语言特征、操作系统特征以及其他环境限制无关的程度。 硬件独立性:软件同支持它运行的硬件系统不相关的程度。 与可维护性的区别可维护性:我能修复它吗? 灵活性:我能改变它吗?,McCall的质量因素(VII),可移植性:将软件从一个硬件和软件系统环境移植到另一个所需要的工作量 可复用性:软件的各个构件可以在另一个软件中使用的程度 互操作性:将一个系统连接到另一个系统所需要的工作量 通信通用性:使用标准接口、协议、规范的程序 数据通用性:在程序中使用标准的数据结构和类型,产品度量框架,测度(measure)产品或过程的某些属性的程度、数量、维数、容量或大小的量化指示测量(measurement): 确定测度的动作度量(metrics)是一个系统、构件或过程具有给定属性的量化测量程度指标:一个度量或多个度量的组合,提供了对软件过程、软件项目或产品本身的深入理解,产品度量框架(II),分析模型的度量交付功能系统规模规格说明质量设计模型的度量体系结构度量构件级度量接口设计度量面向对象设计度量,产品度量框架(III),源码的度量Halstead度量复杂性度量V(G)=10为宜长度的度量测试的度量语句与分支覆盖度量与缺陷相关的度量测试有效性过程中度量,产品度量框架,(1)Halstead复杂性度量法,基本思路是根据程序中可执行代码行的操作符和操作数的数量来计算程序的复杂性。操作符和操作数的量越大,程序结构就越复杂。,产品度量框架(IV),Halstead度量根据程序中运算符和操作数的总数来度量程序的复杂程度令N1为程序中运算符出现的总次数,N2为操作数出现的总次数,程序长度定义为:N=N1+N2程序中使用的不同运算符(含关键字)的个数为n1,不同操作数(含变量和常数)的个数为n2Halstead预测程序长度公式为:H=n1log2n1+n2log2n2Halstead预测错误个数的公式为:E=Nlog2(n1+n2)/3000,产品度量框架(V),程序Z=0;while X0 Z = Z + Y; X = X 1;End_while;print(Z);,操作数有:Z,0,X,Y,1 即n2=5运算符有:=, ;,while end_while,+,-,print,() 即n1=8预测程度长度为n1log2n1+n2log2n2= 8 * log28 + 5* log25 =35.6,产品度量框架(VI),产品度量框架(VII),