项目在立项阶段需要对项目可能产生的开发费用进行评估。软件工作量评估方法很多,如代码行法、类比法、WBS、故事点、用例点、NESMA、FPA、cosmic、COCOMOⅡ等。
公司使用功能点估算法对软件开发费用进行评估:
定制软件开发服务费用=功能点数×软件开发生产率基准/人月折算系数×软件开发基准人月费率+直接非人力成本

功能的类型
软件由数据和程序构成的,任何一个软件所包含的功能可分为两大类型:
1)对最终用户不可见的数据功能(Data Function)
2)对最终用户可见的交互功能(Transaction Function)
数据功能
估算数据功能的复杂度就是估算ILF、EIF的复杂度,也可以简单理解为对数据库复杂度的计算。功能确定后,即可估算ILF和EIF的个数。
内部逻辑文件(ILF):在应用程序内部的,用户可识别的、可维护的内部逻辑数据和控制信息。通常包括数据库表、临时文件、顺序文件等。外部接口文件(EIF):在应用程序边界内被查询,但在其他应用程序中被维护的、用户可识别的、逻辑上相关的数据。例如两个应用程序为了交换数据而使用的接口文件。交互功能
估算交互功能的复杂度就是估算EI、EO、EQ的复杂度,也可以简单理解为对程序开发复杂度的计算。和用户之间的接口确定后,即可估算EI、EQ、EO的个数。
外部输入(EI):对用户的输入进行处理的过程。用户通过增/删/改等典型外部输入操作来更改和维护ILF。外部输出(EO):向外部发送数据的过程。对数据进行处理,会更改ILF,会改变应用程序。外部查询(EQ):输入和输出的组合过程。根据用户提出的查询请求,从EIF或ILF取出数据输出到程序外部。不对数据进行处理,不更改ILF,不会对应用程序做出改变。注意:EI、EO、EQ都必须是一个“基本处理(elementary process)”,即必须是对用户来说有意义的最小的功能活动单元,并且该功能不会使系统处于一个不一致的状态。
1)理论依据:
2)使用案例:
3)概率区分