面向规模(LOC)的度量
面向规模的软件度量通过规范化质量和生产率测量的方法得到,这种测量是基于所生产软件的规模(Size)确定的。为了与其他项目中的同类度量相比较,选择代码行作为规范化,这样,就可以为每个项目产生一组简单的、面向规模的度量标准:
●每千行代码(KLOC)的错误数。
●每千行代码行(KLOC)的缺陷数。
●每千行代码行(KLOC)的成本。
●每千行代码行(KLOC)的文档页数。
●每人月错误数。
●每页文档的成本。
面向规模的软件度量,通常并不被认为是软件开发过程中最优的方法,因为有很多因素直接影响代码的行数。例如,代码行数依靠软件和硬件的选择,应用商业数据库管理系统就不用再编写有关数据库管理部分的代码。而用ADA语言就比用FORTRAN语言的代码行要多等。因此,在1979年Albercht提出面向功能点(FP)软件度量。
面向功能点(FP)的度量
面向功能点法是由Albrecht最先提出的,并且在1983年由Albrecht和Gaffney进行了改进。功能点可由以下4个参数计算出来:
● 外部输入和输出数
● 外部接口数
● 用户交互数
● 系统要用的文件数
每个参数都可以根据复杂性进行评估,一般它们的权理为3~15.功能点是通过完成如图1所示的功能点度量计算出来的。其中,FP计数等于数量与加权因子之积,加权因子根据功能点的复杂程度取不同的值。
功能点法是通过建立一个标准来确定某个特定的测量参数(简单、平均或复杂)的功能点数,但权重的确定多少带有一定的主观性。
一般,可以采用下面的方工计算功能点:
FP = 总计数值*[0.65 0.01*SUM(Fi)]
其中总计数值是上表中所得到的所有条目的总和。Fi(i=1,2,3,...14)是对以下14个问题回答的结果而得出的权重调整值(0~5)。等式中的常数和参数的加权因子是根据经验确定的。
序号 问题
1 系统是否需要可靠的备份和恢复
2 是否需要数据通信
3 是否有分布处理功能
4 系统是否很关键
5 系统是否在一个已有的、很实用的操作环境中运行
6 系统是否需要联机处理
7 联机数据项是否需要在多屏幕或多操作之间切换以完成操作
8 是否需要联机更新主文件
9 输入、输出及文件查询是否很复杂
10 内部处理是否复杂
11 代码是否需要设计成可复用的
12 设计中是否需要包括转换及安装
13 系统的设计是否支持不同组织的多次安装
14 应用的设计是否方便用户修改及使用
问题的答案及相应权重如下表所示
Fi的取值 |
|||||
0 |
1 |
2 |
3 |
4 |
5 |
没有影响 |
偶有影响 |
轻微影响 |
平均影响 |
较大影响 |
严重影响 |
一旦计算出功能点,就可以采用类似面向规模的方法来使用,以便规范软件生产率、质量及其他属性的测量:
● 每个功能点(FP)的错误数。
● 每个功能点(FP)的缺陷数。
● 每个功能点(FP)的成本。
● 每个功能点(FP)的文档页数。
● 每人月完成的功能点(FP)数。
面向功能点(FP)和面向规模(LOC)两种度量方法之间的关系为:LOC=AVC*功能点的数量,其中AVC是指该语言在实现一个功能点时所要用的平均代码行数。