1、何为软件功能点
软件功能点是站在业务角度对软件规模的一种度量,功能点的多少代表软件规模的大小,这里说的功能点是标准的功能点,按照标准的估算方法,每个人对特定需求估算出的功能点数是一致的。

功能点方法最早是在1970年代IBM提出,并陆续成为许多国家估算软件规模的国家标准,我国是在2000以后把功能点方法引入国内,2018年工信部发布基于功能点方法的软件造价标准《GB/T 36964-2018软件工程 软件开发成本度量规范》。
2、如何进行功能点估算?
功能点方法认为系统维护了哪些信息、如何维护的这些信息及处理的复杂程度决定了系统价值。系统维护的信息又称为数据功能,并把数据功能分为内部逻辑文件(ILF)和外部接口文件(EIF);如何维护的这些信息称为事务功能,又把事物功能分为外部输入(EI)、外部输出(EO)、外部查询(EQ)。
这两类数据功能和三类事务功能我们称为计数项,每类计数项根据复杂度不同分别代表了不同的功能点数。通过功能点方法做规模估算就是要根据软件需求识别这五类计数项,并根据每类计数项的权重计算功能点数,计算的结果就是我们要估算的软件规模。
例如:我们要开发一个物流管理系统,以下是客户提出的部分需求。
功能点估算
D1订单管理
管理所有的订单信息,包括订单编号、货物名称、发货方信息、收货方信息、订单价格、订单保价等,可以添加新订单、管理员可以修改订单记录、管理员可以删除订单记录、可以查询订单列表、可以查询订单明细、可以打印订单、可以按周期统计订单信息,货物状态改变后,以短信的方式通知收货方和发货方。
D2解析
首先我们识别数据功能,看系统维护了哪些数据:
>>维护有订单信息,是在系统内部为的,识别为ILF;
>>维护有短信通信信息,是在短信平台维护的,识别为EIF;
>>发货信息、收货信息、货物名称等是订单的具体信息,不单独识别。
D3识别事务功能
对订单信息的事务操作有:增、删、改、查(列表)、查(明细)、统计报表、打印;
Ø 维护数据的操作(EI)有:增、删、改
Ø 带计算的查询操作(EO)有:统计报表
Ø 不带计算的查询操作(EQ)有:查(列表)、查(明细)、打印
对短信信息的事务操作有:生成短信、发送短信;
Ø 维护数据的操作(EI)有:生成短信
Ø 向外界传递信息的操作(EQ)有:发送短信
D4 确定复杂度
最后根据规则分别确定其复杂度,每类复杂度有固定的功能点权重:

DET:简单理解为涉及的字段数量,如数据功能包括的字段数量;事务功能操作的字段数量;
RET:是对数据功能字段的归类,如把订单信息分为订单基本信息和订单运输信息,RET为2;
FTR:事务功能操作涉及到的数据文件的个数;
D5 估算结果
我们对这部分需求做功能点估算的结果如下(简单起见我们以下都按中等复杂度计算):

功能点方法的优势是什么?
功能点方法是面向业务视角的软件规模估算方法,与软件的实现方式(如:开发语言、数据库、架构等)无关,功能点估算工程师只需要了解业务需求即可估算。
>>功能点方法是一种标准方法,不同的估算工程师估算的结果偏差极小。
>>功能点估算方法可以应用于软件开发的各个阶段。
>>功能点方法已经作为国标进行推广,使用范围和行业认可度更高。

CoCode平台,就是基于这种功能点估算方法,对平台上开发的软件,进行软件规模的估算。同时平台专职金牌项目规模估算师,运用此方法对项目进行估算,为您的项目提供客观、科学的项目规模数据,报价更精准。
另外CoCode软件成本造价工具,根据用户需求,使用COSMIC和IFPUG项目规模估算法,自动估算项目规模大小,估算项目报价。目前CoCode发布了四大开发工具:Co-Project智能项目管理工具、需求分析工具、评审分析工具、故事点估算工具。目前限时免费,欢迎大家使用。
