1、第第4 4章章 软件过程和项目度量软件过程和项目度量 第第4 4章章 软件过程和项目度量软件过程和项目度量 4.1 4.1 测度、度量和指标测度、度量和指标4.2 4.2 过程和项目领域中的度量过程和项目领域中的度量4.3 4.3 软件测度软件测度4.4 4.4 调和不同的度量方法调和不同的度量方法4.5 4.5 软件质量度量软件质量度量4.6 4.6 在软件过程中集成度量在软件过程中集成度量 4.2 4.2 过程和项目领域中的度量过程和项目领域中的度量过程过程客户特征客户特征商业条件商业条件产品产品技术技术人员人员开发开发环境环境图图 软件质量和组织有效性的决定因素软件质量和组织有效性的决定
2、因素4.2.1 4.2.1 过程度量和软件过程改善过程度量和软件过程改善软件度量软件度量礼仪礼仪:软件度量软件度量礼仪礼仪:1.1.根据来源分类所有的错误和缺陷根据来源分类所有的错误和缺陷(如,规格如,规格说明中的错误,逻辑错误,与标准不符的错说明中的错误,逻辑错误,与标准不符的错误等误等)。2.2.记录修改每个错误和缺陷的成本。记录修改每个错误和缺陷的成本。3.3.统计每一类错误和缺陷的数目,并按降序统计每一类错误和缺陷的数目,并按降序排列。排列。故障分析采用方式:故障分析采用方式:故障分析采用方式:故障分析采用方式:4.4.计算每一类错误和缺陷的总成本。计算每一类错误和缺陷的总成本。5.5
3、.分析结果数据,找出造成组织最高成本分析结果数据,找出造成组织最高成本的错误和缺陷类型。的错误和缺陷类型。6.6.制定修正过程的计划,目的是消除制定修正过程的计划,目的是消除(或降或降低其出现的频率低其出现的频率)成本最高的错误和缺陷成本最高的错误和缺陷类型。类型。4.2.2 4.2.2 项目度量项目度量4.3 4.3 软件测度软件测度4.3 4.3 软件测度软件测度4.3 4.3 软件测度软件测度4.3.1 面向规模的度量面向规模的度量为了产生可以与其他项目中同类度量相比较的度量,我们选择代码行为了产生可以与其他项目中同类度量相比较的度量,我们选择代码行作为规范化值作为规范化值 面向规模的软
4、件度量是通过规范化质量和/或生产率的测量而得到的4.3.2 4.3.2 面向功能的度量面向功能的度量功能点度量的功能点度量的5 5个参数个参数:用户输入数用户输入数用户输出数用户输出数用户查询数用户查询数文件数文件数外部接口数外部接口数FP=FP=总计数值总计数值0.650.650.010.01FFi iFiFi(i=1(i=1到到14)14)是基于对图是基于对图4-64-6中问题的回答中问题的回答而得到的而得到的“复杂度调整值复杂度调整值”(0(0到到5)5)。等式。等式中的常数和信息域值的加权因子是根据经中的常数和信息域值的加权因子是根据经验确定的。验确定的。我们采用下面的方式计算功能点:
5、我们采用下面的方式计算功能点:F Fi i:1.1.系统需要可靠的备份和复原吗?系统需要可靠的备份和复原吗?2.2.需要数据通信吗?需要数据通信吗?3.3.有分布处理功能吗?有分布处理功能吗?4.4.性能很关键吗?性能很关键吗?5.5.系统是否在一个已有的、很实用的操作系统是否在一个已有的、很实用的操作环境中运行?环境中运行?F Fi i:6.6.系统需要联机数据项吗?系统需要联机数据项吗?7.7.联机数据项是否需要在多屏幕或多操作联机数据项是否需要在多屏幕或多操作之间切换以完成输入?之间切换以完成输入?8.8.需要联机更新主文件吗?需要联机更新主文件吗?9.9.输入、输出、文件或查询很复杂吗
6、?输入、输出、文件或查询很复杂吗?10.10.内部处理复杂吗?内部处理复杂吗?F Fi i:11.11.代码需要被设计成是可复用的吗?代码需要被设计成是可复用的吗?12.12.设计中需要包括转换及安装吗?设计中需要包括转换及安装吗?13.13.系统的设计支持不同组织的多次安装吗?系统的设计支持不同组织的多次安装吗?14.14.应用的设计方便用户修改和使用吗?应用的设计方便用户修改和使用吗?4.3.3 扩展的功能点度量扩展的功能点度量 3D3D功能点指标功能点指标=I+O+Q+F+E+T+RI+O+Q+F+E+T+R其中I、O、Q、F、E、T及R分别代表前面讨论的元素的复杂度加权值:输入、输出、
7、查询、内部数据结构、外部文件、变换及变迁 每一个复杂度加权值采用下面的方法每一个复杂度加权值采用下面的方法计算:计算:复杂度加权值复杂度加权值=N=NililW Wilil+N+NiaiaW Wiaia+N+NihihW Wihih 其中Nil、Nia和Nih表示元素i(如输出)在每一个复杂度级别上(低、平均、高)发生的次数;Wil、Wia和Wih则表示相应的权值LOC LOC 代码行代码行 FP-功能点功能点 代码行和功能点度量之间的关系依赖于实现软件所采用的程序代码行和功能点度量之间的关系依赖于实现软件所采用的程序设计语言及设计的质量设计语言及设计的质量4.5.14.5.1概述影响质量的因素概述影响质量的因素4.7 4.7 管理变化管理变化:统计过程控制统计过程控制4.8 4.8 小型组织的度量小型组织的度量4.9 4.9 建立软件度量计划建立软件度量计划 4.10 4.10 小结小结测量使得管理者和开发者能够改善软件过程。测量使得管理者和开发者能够改善软件过程。过程度量使得一个组织能够从战略级洞悉一个过程度量使得一个组织能够从战略级洞悉一个软件过程的功效。项目度量是战术的,使得软件过程的功效。项目度量是战术的,使得项目管理者能够以实时的方式改进项目的工项目管理者能够以实时的方式改进项目的工作流程及技术方法。作流程及技术方法。