面向功能的度量
面向功能的度量
转自:http://www.zxbc.cn/html/rjgc/2019251939768.html
面向功能的软件度量是对软件和软件开发过程的间接度量。面向功能度量的注意力集中于程序的“功能性”和“实用性”,而不是对LOc计数。该度量是由Albrecht首先提出来的。他提出了一种叫做功能点方法的生产率度量法,该方法利用有关软件数据域的一些计数度量和软件复杂性估计的经验关系式,导出功能点FPs(Function Points)。
功能点通过填写图表格来计算。首先要确定五个数据域的特征,并在表格中相应位置给出计数。数据域的值以如下方式定义:
(1)用户输入数:每个用户输入应是面向不同应用的输入数据,对它们都要进行计数。输入数据应区别于查询数据,它们应分别汁数。
(2)用户输出数:各个用户输出是为用户提供的面向应用的输出信息,它们均应计数。在这里的“输出”是指报告、屏幕信息、错误信息等,在报告中的各个数据项不应再分别计数。
(3)用户查询数:查询是一种联机输入,它引发软件以联机方式产生某种即时响应。每一个不同的查询都要计数。
(4)文件数:每一个逻辑主文件都应计数。这里的逻辑主文件,是指逻辑上的一组数据,它们可以是一个大的数据库的一部分,也可以是一个单独的文件。
(5)外部接口数:对所有使用来将信息传送到另一个系统中的接口(即磁带、磁盘和可读写光盘上的数据文件)均应计数。
一旦收集到上述数据,就可以计算出与每一个计数相关的加权复杂性值。使用功能点方法的单位要自行拟定一些准则,用以确定一个特定项是简单的、平均的还是复杂的。尽管如此,复杂性的确定多少还是带点主观因素的。计算功能点,使用如下的关系式:
FP=总计数×(0.65+O.01×sum(Fi)) (13.1)
其中,总计数是所有加权复杂性值的和;Fi(i=1到14)是复杂性校正值,它们应通过逐一回答所提问题来确定。sum(Fi)是求和函数。上述等式中的常数和应用于数据域计数的加权因数可经验地确定。
一旦计算出功能点,就可以仿照LOC的方式度量软件的生产率、质量和其他属性:
生产率=FP/PM(人月)
质量=错误数/FP
成本=元/FP
文档=文档页数/FP
功能点度量的扩充称为特征点FPs(Feature Points)度量 。它适合于算法复杂性高的应用。而实时处理、过程控制、嵌入式软件应用的算法复杂性都偏高,因此适合特种点度量。
为了计算特征点,可对数据域值进行如上所述的计数和加权。此外,特征点度量还要对一个新的软件特征“算法”进行计数。可定义算法为“在一个特定计算机程序内所包含的一个有界的计算问题”。例如,矩阵求逆、二进位串转换为十进制数、处理一个中断等都是算法。
计算特征点可使用表格。对于每一个度量参数只使用一个权值,并且使用等式(13.1)来计算总的特征点值。
必须注意,特征点与功能点表示的是同一件事:由软件得到的“功能性,,或“实用性”。事实上,对于传统的工程计算或信息系统应用,两种度量会得出相同的FP值。在较复杂的实时系统中,特征点计数常常比只用功能点确定的计数高出20%到35%。
与LOC一样,对功能点(或特征点)度量也是有争议的。支持者认为FP与程序设计语言无关,对于使用传统语言和非过程语言的应用来说,它是比较理想的;而且它所依据的是在项目评估早期就可能知道的数据,因此作为一种估算方法,FP是比较有吸引力的。反对者认为这种方法在其计算中依赖的是主观因素而不是客观实际。数据域的数据事后很难收集,而且FP没有直接的物理意义,它只不过是一个数字。
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/wuhuiran/archive/2008/10/30/3179181.aspx