三、功能点
上面介绍的是通过代码行的方式来度量缺陷,除了这种方式外,另外一种度量方式是通过功能点的方式来度量,这两种方式都是通过缺陷密度来表达系统出错的可能性。在近些年通过功能点来度量的方式越来越被人接受,可以从两个方面来度量:开发工程师的工作效率(如每人每年开发了多少功能点)和系统质量(如平均每个功能点所发现的缺陷数)。
一个功能是指一个可执行语句的集合,这些语句是用来执行某项工作任务的,其包括参数、本地变量和声明语句。使用功能点度量开发工程师工作效率时,只关注功能点的多少,而不需要关注代码行数。使用功能点度量缺陷,即关注每个功能点的缺陷分布情况,如果单位功能点缺陷率比较低,那么通常说明产品的质量比较高,即使这个时候KLOC 缺陷率比较高,但是如果一个功能点其实现的代码数很少,这样使用功能点去度量就可能会变得很困难。
功能度量最好是在IBM 公司开始使用,但由于当时的技术并不能很好地对功能进行准确的度量,所以使用功能进行度量时出现一个失误的地方。使用功能点解决了生产率和代码行数的问题,因为在统计代码行时,有很多不确定的因素,特别是不同的语言其统计的结果可能差异比较大。在我们定义一个应用时,应该从五个方面来加权评估:
(1)如果是外部输入(如交易类型功能),权重为4。
(2)如果是外部输出(如报告类型),权重为5。
(3)内部逻辑文件,权重为10。
(4)外部接口文件,权重为7。
(5)外部查询数,权重为4。
上面是平均加权的方式,还一种是低复杂度和高复杂度的加权,具体如下:
(1)如果是外部输入(如交易类型功能),低复杂度权重为3,高复杂度权重为6。
(2)如果是外部输出(如报告类型),低复杂度权重为4,高复杂度权重为7。
(3)内部逻辑文件,低复杂度权重为7,高复杂度权重为15。
(4)外部接口文件,低复杂度权重为5,高复杂度权重为10。
(5)外部查询数,低复杂度权重为3,高复杂度权重为6。
组件复杂度的确定也是很难的,在确定这些组件复杂度时,需要有一些标准的准则。例如,如果数据元素的类型超过20 种,涉及的文件类型超过2 个,这种情况复杂度为高;如果数据元素的类型少于5 种,涉及的文件类型超过2 个或3 个,这种情况复杂度为低。
功能点总数的公式如下:
1)数据通信;
2)函数分布;
3)性能;
4)使用配置;
5)交易率;
6)联机数据输入;
7)终端用户使用效率;
8)在线更新;
9)复杂的过程;
10)可重用性;
11)安装的易用性;
12)操作的易用性;
13)多站点访问;
14)改变的方便性。
这些特性的权值范围是0~5,通过下面的公式可以对特性的因子进行调整,具体的公式如下:
本文内容不用于商业目的,如涉及知识产权问题,请权利人联系51Testing小编(021-64471599-8017),我们将立即处理