软件功能点分析法
在软件项目管理中,第一个遇到的问题就是如何预估项目大小和工作量。目前国内大部分软件公司是凭经验来估算的。这里介绍一种更为科学的项目估算方法:功能点分析法(Function Point Analysis)
FPA 的结构和原理
功能点分析法中认为整个项目的规模由三部份构成:信息处理规模,技术复杂度,环境因素。
IFPUG功能点估算方法使用指南
以图形化界面事务处理项目为例:
##信息处理规模
指系统包含的所有于外部交流的界面(输入,输出,查询界面,控制信息等),处理的文件(数据文件,数据库表)及于外部的接口等。这些内容细分为:输入(External
Inputs),输出(External Outputs),查询(External
Inquiries),文件(Internal Logical Files)和接口(External Interface
Files)。
依据标准可以计算出系统(或模块)中所含每一种元素的数目,乘以加权值(Weight)其合计数即为信息处理的规模,称为
UAF(Unadjusted Function Points)
技术复杂度
指系统实现的复杂度,按照系统特徵分为 14 个方面:
数据通讯,分布式数据处理,性能,硬件负荷,事务频度,联机数据输入,界面复杂度,联机更新,内部处理复杂度,代码复用考虑,转换和安装,备份和恢复,多平台考虑,易用性。依据每个方面的打分,推导出调整系数
VAF(Value Adjustment Factor)。
推导公式为 VAF= 0.65 + 0.01*(F1 + F2 +...+ F14),Fi 为每个问题的分数
环境因素
指外部因素决定的系统开发效率。这个数据和开发采用的工具,是否有过类似开发经验,项目大小等有关。
该值的作用是将功能点转换为时间。对于一个有经验的
Team,对于中小型项目(<3000FPs),开发效率一般为 50 - 100
FPs/人月。
所以 FPs = UAF * VAF
为总的系统内在规模,考虑到环境因素后,可以得到整个项目所需的时间,即整体项目规模。
以上是针对图形化界面事务处理项目的 FPA
应用方法,对于不同的项目,信息处理规模,技术复杂度的计算会有所不同。而开发效率也会随
Team 不同而不同。
各公司可以基于 FPA 标准,根据自身实际情况,经过 1-2 个 Project
的调整,可以对之后的项目工作量做出比较正确的估计。
由 IFPUG 组织公布的技术标准可以在网上查到,有关 FPA
的发展情况和细节问题可以在 www.ifpug.org 上找到。