软件功能点数值的估算通常涉及以下几个步骤:
识别功能点计数项
根据软件需求识别五类计数项,包括外部输入数、外部输出数、文件数、外部接口和用户查询数等。
计算未调整功能点计数(UFC)
对识别出的功能点计数项进行统计,得出未调整功能点计数(UFC)。这是未经过技术复杂度因子调整的原始功能点数量。
评估技术复杂度因子(TCF)
根据系统的技术复杂度对UFC进行调整。技术复杂度因子(TCF)是对UFC的调整因子,反映了系统技术的复杂性。
计算功能点(FP)
使用公式FP = UFC * TCF计算功能点数值。这个公式将未调整功能点计数与调整因子相乘,得出最终的功能点数值。
考虑全局性因素
在估算整个项目的功能点时,还需要考虑一些全局性因素,如系统特性、用户交互复杂度等,这些因素可能会影响功能的总体复杂度和成本。
使用专家判断
功能点估算方法有时会结合专家判断,特别是当某些功能的复杂性难以通过客观指标量化时。专家会根据其经验和对系统的理解来调整功能点数值。
示例
假设我们要估算一个物流管理系统的功能点数值,我们可以按照以下步骤进行:
识别功能点计数项
订单管理、库存管理、运输管理、客户关系管理、财务报告等。
计算未调整功能点计数(UFC)
例如,订单管理模块可能有10个外部输入、5个外部输出、3个文件、2个外部接口和10个用户查询,总计20个功能点计数项。
评估技术复杂度因子(TCF)
根据系统的技术复杂度,假设TCF为1.2。
计算功能点(FP)
FP = 20 * 1.2 = 24。
考虑全局性因素
例如,系统需要支持多用户并发访问,这可能会增加一些额外的复杂度,因此可以适当调整TCF。
使用专家判断
如果某些功能模块特别复杂,可以请经验丰富的开发人员或系统分析师进行进一步的评估和调整。
通过以上步骤,我们可以得出一个较为准确的功能点数值,从而为项目估算提供依据。