识别项目的类型
国际的IFPUG组织将软件项目分为三类,功能点估算法适用于任何一类项目
·新开发项目
·二次开发的项目
·功能增强的项目
识别项目的范围和边界
使用UML的“UseCase”用例图是以用户角度进行识别项目范围和边界的最好方法,因为在画用例图时就必须明确系统的边界。通过系统的边界我们可以知道哪些功能要计算功能点,哪些功能点是外部系统负责计算的。以下图为例:一个外贸订单系统只包含录入、修改、删除、查询和统计订单的功能,而汇率查询转换服务是不属于该系统的。
应用程序边界的识别规则大家一定要牢记,不能从技术角度去思考,必须从用户角度来定义;如果项目牵扯到多个系统,那么必须将这多个系统的边界全部描述清楚。
外贸订单系统用例图
FP功能点估算分类
FP功能点估算法将功能点分为以下5类:
1、 ILF:Internal Logical File内部逻辑文件
2、 EIF: External Interface File外部接口文件
3、 EI: External Input外部输入
4、 EO: External Output外部输出
5、 EQ: External Inquiry外部查询
其中ILF和EIF属于数据类型的功能点,EI、EO、EQ属于人机交互类型的功能点。
以外贸订单系统项目为例:
·录入订单、修改订单、删除订单是EI;
·查询订单是EO
·统计订单是EQ
·汇率查询转换系统为EIF
·订单和客户是ILF
识别功能点的重要原则
ILF、EIF要与EI、EO、EQ分开计算。对ILF和EIF复杂度的计算可以简单理解为对数据库复杂度的计算。对EI、EO、EQ复杂度的计算可以理解为对程序开发复杂度的计算。一般软件项目都是由数据和程序构成的,因此计算ILF、EIF和计算EI、EO、EQ之间没有任何关系。
内部逻辑文件与外部接口文件
ILF内部逻辑文件
内部逻辑文件是指一组以用户角度识别的,在应用程序边界内且被维护的逻辑相关数据或控制信息。ILF的主要目的是通过应用程序的一个或多个基本处理过程来维护数据。
EIF外部接口文件
外部接口文件是指一组在应用程序边界内被查询,但它是在其他应用程序中被维护的,以用户角度来识别的,逻辑上相关的数据。因此一个应用程序中的EIF必然是其他应用程序中的ILF。EIF的主要目的是为边界内的应用程序提供一个或多个通过基础操作过程来引用的一组数据或信息。
EIF所遵循的规则:
n 从用户角度出发识别的一组逻辑数据。
n 这组数据是在应用程序外部,并被应用程序引用的。
n 计算功能点的这个应用程序并不维护该EIF
n 这组数据是作为另一个应用程序中的ILF被维护的。
ILF和EIF复杂性计算
ILF和EIF的复杂性是取决于RET(Record element type)和DET(Data element type)的数量。DET是一个以用户角度识别的,非重复的有业务逻辑意义的字段。
DET计算的规则如下: