1、第4章 软件过程和项目度量,软 件 工 程,第4章 软件过程和项目度量,4.1 测度、度量和指标 4.2 过程和项目领域中的度量 4.3 软件测度 4.4 调和不同的度量方法 4.5 软件质量度量 4.6 在软件过程中集成度量,4.1 测量、度量和指标,当获取到单个的数据点(如在一个模块的复审中发现的错误数)时,就建立了一个测量 测量的发生是收集一个或多个数据点的结果(如调研若干个模块的复审,以收集每一次复审所发现的错误数的测量)。,4.1 测量、度量和指标,软件度量在某种程度上与单个的测量相关(如每一次复审所发现的错误的平均数,或复审中每人/小时所发现的错误的平均数) 指标是一个度量或度量的
2、组合,它对软件过程、软件项目或产品本身提供了更深入的了解,4.2 过程和项目领域中的度量,项目指标使得软件项目管理者能够: (1)评估正在进行的项目的状态 (2)跟踪潜在的风险 (3)在问题造成不良影响之前发现问题 (4)调整工作流程或任务 (5)评估项目组控制软件工程工作产品的质量的能力,过程,客户特征,商业条件,产品,技术,人员,开发环境,图 软件质量和组织有效性的决定因素,4.2.1 过程度量和软件过程改善,过程是改善软件质量和组织性能的控制因素之一不同类型的过程数据分为“私有的和公用的” 如私有的度量数据有:缺陷率(个人的)、缺陷率(模块的)、开发中发现的错误,解释度量数据时使用通用的
3、观念,并考虑组织的感受性 对收集测量和度量的个人及小组提供定期的反馈 不要使用度量去评价个人 与开发者和小组一起设定清晰的目标及达到这些目标的度量,软件度量礼仪:,不要用度量去威胁个人或小组。 指出某个问题的度量数据不应该被看成是“否定的”含义。这些数据仅仅是过程改进的指标。 不要被某个与其他重要度量不符合的度量迷惑。,软件度量礼仪:,1.根据来源分类所有的错误和缺陷(如,规格说明中的错误,逻辑错误,与标准不符的错误等)。 2.记录修改每个错误和缺陷的成本。 3.统计每一类错误和缺陷的数目,并按降序排列。,故障分析采用方式:,故障分析采用方式:,4.计算每一类错误和缺陷的总成本。 5.分析结果
4、数据,找出造成组织最高成本的错误和缺陷类型。 6.制定修正过程的计划,目的是消除(或降低其出现的频率)成本最高的错误和缺陷类型。,4.2.2 项目度量,项目度量的目的是双重的: 首先,这些度量能够指导进行一些必要的调整以避免延迟,并减少潜在问题及风险,从而使得开发时间减到最少 其次,项目度量可在项目进行的基础上评估产品质量,并且可在必要时修改技术方法以改进质量。,软件项目度量的另一个模型:,输入完成工作所需的资源的测量 输出软件工程过程中产生的交付物或工作产品的测量 结果表明交付物的有效性的测量,测度在现实世界中可分为两类: 直接测量 间接测量,4.3 软件测度,4.3 软件测度,过程的直接测
5、量: 花费的成本 工作量,产生的代码行 执行速度 内存大小 某段时间内报告的缺陷,4.3 软件测度,产品的直接测量:,产品的间接测量:功能 质量 复杂性 有效性 可靠性 可维护性,4.3.1 面向规模的度量,为了产生可以与其他项目中同类度量相比较的度量,我们选择代码行作为规范化值,面向规模的软件度量是通过规范化质量和/或生产率的测量而得到的,4.3.2 面向功能的度量,功能点度量的5个参数: 用户输入数 用户输出数 用户查询数 文件数 外部接口数,FP=总计数值0.650.01Fi Fi(i=1到14)是基于对图4-6中问题的回答而得到的“复杂度调整值”(0到5)。等式中的常数和信息域值的加权
6、因子是根据经验确定的。,我们采用下面的方式计算功能点:,Fi:,1.系统需要可靠的备份和复原吗? 2.需要数据通信吗? 3.有分布处理功能吗? 4.性能很关键吗? 5.系统是否在一个已有的、很实用的操作环境中运行?,Fi:,6.系统需要联机数据项吗? 7.联机数据项是否需要在多屏幕或多操作之间切换以完成输入? 8.需要联机更新主文件吗? 9.输入、输出、文件或查询很复杂吗? 10.内部处理复杂吗?,Fi:,11.代码需要被设计成是可复用的吗? 12.设计中需要包括转换及安装吗? 13.系统的设计支持不同组织的多次安装吗? 14.应用的设计方便用户修改和使用吗?,4.3.3 扩展的功能点度量,3
7、D功能点指标=I+O+Q+F+E+T+R,其中I、O、Q、F、E、T及R分别代表前面讨论的元素的复杂度加权值:输入、输出、查询、内部数据结构、外部文件、变换及变迁,每一个复杂度加权值采用下面的方法计算:,复杂度加权值=NilWil+NiaWia+NihWih其中Nil、Nia和Nih表示元素i(如输出)在每一个复杂度级别上(低、平均、高)发生的次数;Wil、Wia和Wih则表示相应的权值,4.4 调和不同的度量方法,LOC 代码行 FP - 功能点,代码行和功能点度量之间的关系依赖于实现软件所采用的程序 设计语言及设计的质量,4.5 软件质量度量,软件工程的最高目标就是产生高质量的系统、应用软
8、件或产品 一个系统、应用软件或产品的质量依赖于问题需求的描述、解决方案的建模设计、可执行程序的编码的产生、以及为发现错误而运行软件的测试,4.5.1概述影响质量的因素,质量因素从三个不同的视点来评估软件:,(1)产品的操作 (2)产品的修改 (3)产品的转换,4.5.2 测量质量,正确性 可维护性 完整性 可用性,缺陷排除效率(DRE) DRE=E/(ED) 其中:E=软件交付给最终用户之前所发现的错误数D=软件交付之后所发现的缺陷数,4.5.3 缺陷排除效率,支持软件度量的论点 建立基线 度量收集、计算和评估,4.6 在软件过程中集成度量,4.7 管理变化:统计过程控制 4.8 小型组织的度量 4.9 建立软件度量计划,4.10 小结,测量使得管理者和开发者能够改善软件过程。 过程度量使得一个组织能够从战略级洞悉一个软件过程的功效。项目度量是战术的,使得项目管理者能够以实时的方式改进项目的工作流程及技术方法。,