快速功能点规模估算实现步骤
前一篇介绍了NESMA功能点分析法的3种估算方法。快速功能点分析是在NESMA基础上的改进优化,本章节主要介绍快速功能点规模估算步骤。如下图所示:
-
一、确定计数类型
根据需求或项目的类型确定计数类型,计数类型分3种,即新开发、延续开发及已有系统的计数。
- 对于新开发需求或项目,须对预计(或实际)投产的功能进行计数。
- 对于延续开发需求或项目,须对预(或实际)新增、修改及删除的功能均进行计数。
- 对于已有系统,须对实际的功能进行计数。
-
二、识别系统边界
根据系统边界的含义,在识别系统边界的时应注意以下3项:
- 从用户视角出发,不受系统实现影响。
- 主要是为了区分内部逻辑文件(ILF)和外部接口文件(EIF)。
- 事务功能应穿越识别的系统边界。
-
三、识别功能点计数项
-
1.功能点计数项分类
功能点计数项分数据功能和事务功能两类。数据功能包括内部逻辑文件(ILF)、外部接口文件(EIF),事务功能包括外部输入(EI)、外部输出(EO)、外部查询(EQ)。
数据功能是软件系统提供给用户的满足产品内部和外部数据需求的功能,即本系统管理或使用那些业务数据(业务对象),如“客户信息”、“账户交易记录”等。
内部逻辑文件或外部接口文件所指的“文件”不是传统数据处理意义上的文件,而是指一组客户可识别的、逻辑上相互关联的数据或者控制信息。因此,这些文件和物理上的数据集合(如数据库表)没有必然的对应关系。
事务功能是系统提供给用户的处理数据的功能,即本系统如何处理和使用那些业务数据(业务对象),如“转账”“修改黑名单生成规则”“查询交易记录”等。
事务功能又称为基本过程,是用户可识别的、业务上的一组原子操作,可能由多个处理逻辑构成。例如,“添加柜员信息”这个基本过程可能包含“信息校验”“修改确认”“修改结果反馈”等一系列处理逻辑。
-
2.识别逻辑文件
逻辑文件不是传统数据处理意义上的文件,也不是实现意义上的物理的数据集合,它与物理模型无关。逻辑文件是指一组用户可识别的、逻辑上相互关联的数据或者控制信息,对逻辑文件的操作由业务需求引起,用户可以理解并识别。
逻辑文件包括内部逻辑文件(ILF)、外部接口文件(EIF)两类。识别逻辑文件的主要步骤如下:
- 识别业务对象。业务对象应该是用户可以理解和识别的,业务对象包括业务数据或业务规则,如“企业黑名单”、“黑名单生成规则”等。而一些为了程序处理而维护的数据则属于编码数据,如国家/地区信息表。所有的编码数据均不识别为逻辑文件,与之相关的操作也不识别为基本过程。
- 业务对象识别常用经验:
如果2个实体信息有关联,但其中一个实体删除后,另一个实体不能删除,其对用户有独立的业务意义,则该实体为独立的逻辑文件,记为2个逻辑文件。
比如,员工信息包括员工基本信息、教育背景、工作经历等。基于数据库设计的三范式,我们会设计员工基本信息、教育背景、工作经历3张物理表。工号作为主键,3张表都通过工号进行关联。一个员工对应多条教育背景信息,一个员工对应多条工作经历。删除一条员工信息,同时要删除对应的教育背景和工作经历。所以,3张实体表应该被视为一个逻辑文件。
一般情况下,实体之间是典型的一对一关系,或一对多的关系,如果一个实体依赖于另一个实体而存在,则被识别为1个逻辑文件。如果实体之间为多对一的关系,可认为这2个实体之间是没有依赖关系的,则这2个实体就识别为2个逻辑文件。
- 确定逻辑文件数量。需要根据业务上的逻辑差异及从属关系,确定逻辑文件的数量。例如,对于合作方贷后管理中的“合作方额度冻结审批信息”,虽然“开发商额度冻结审批信息”“汽车经销商额度冻结审批信息”与“担保公司额度冻结审批信息”的信息有所差异,但其流程和用途基本一致,因此不识别为不同的逻辑文件;而对于客户信息平台,“个人客户信息”和“公司客户信息”虽然物理特征类似,但这两类信息有完全不同的业务用途:对于银行类系统,可识别为不同的逻辑文件。
- 确定是否是ILF,即确定该逻辑文件是否在本系统内进行维护。若是,则记为ILF;若在本系统中仅为引用,而在其他系统内进行维护,则为EIF.任何本系统中的EIF,都至少是其他某一个系统的ILF(或ILF的一部分)。
- 任何逻辑文件在系统边界之内仅被计数一次。
-
3.识别基本过程
事务性功能指提供给用户处理数据的功能,每一个交易功能都是一个完整的基本过程。一个基本过程应该是业务上的原子操作,并产生基本的业务价值。基本过程必然穿越系统边界。基本过程分为EI、EO 和EQ 的识别。
-
3.1 EI基本识别规则如下:
EI是处理来自系统边界之外的数据或控制信息的基本处理过程,其主要目的是维护一个或多个ILF 或者改变系统的行为。EI的基本识别规则如下:
- (1) 是否来自系统边界之外的输入数据或控制信息。
- (2) 如果穿过边界的数据不是改变系统行为的控制信息,那么至少应维护一个ILF.
- (3) 确保该EI没有被重复计数,即任何被分别计数的两个EI至少满足下面3个条件之一(否则,被视为同一个ED):
- a.涉及的ILF 或 EIF 不同。
- b.涉及的数据元素不同.
- c.处理逻辑不同。
- (4)对业务对象的增、删、改等操作通常属于EI。
-
3.2 EO基本识别规则。
EO 是向系统边界之外发送数据或控制信息的基本处理过程,其主要目的是向用户呈现经过处理的信息,而不仅仅是在应用中提取数据或控制信息。该处理逻辑必须包含至少一个数学公式或计算过程,或产生派生数据,或修改了逻辑文件,或改变了系统行为。EO的基本识别规则如下:
- (1) 将数据或控制信息发送出系统边界。
- (2) 处理逻辑包含至少一个数学公式或计算过程,或者产生了衍生数据,或者维护了至少一个ILF,或者改变了系统的行为。
- (3) 确保该EO 没有被重复计数,即任何被分别计数的两个EO至少满足下面3个条件之一(否则被视为同一EO):
- 涉及的ILF或EIF 不同。
- 涉及的数据元素不同。
- 处理逻辑不同。
- (4)对已有数据的统计分析、生成报表通常属于EO.
-
3.3 EQ基本识别规则。
EQ是向系统边界之外发送数据或控制信息的基本处理过程,其主要目的是向用户呈现未经加工的已有信息。其处理逻辑不可以包含数学公式或计算过程,不可以产生派生数据,不可以修改逻辑文件;也不可以改变系统行为,但可以对已有数据进行筛选、分组、排序或等值代换。EQ的基本识别规则如下:
- (1)将数据或控制信息发送出系统边界。
- (2)处理逻辑可以包含筛选、分组或排序。
- (3)处理逻辑不可以包含以下4种情况:
- 数学公式或计算过程。
- 产生衍生数据。
- 维护ILF.
- 改变系统行为。
- (4)确保该 EQ 没有被重复计数,即任何被分别计数的两个EQ至少满足下面三个条件之一(否则被视为同一EQ):
- 涉及的ILF或EIF 不同。
- 涉及的数据元素不同。
- 处理逻辑不同。
- (5)对业务数据的查询、已有信息的显示通常属于EQ。
-
四、计算未调整的功能点数
-
1. 预估功能点分析法
采用预估功能点进行计数,计算公式如下:
FP=35xILF+15xEIF
式中,
FP为未调整的功能点数,单位为功能点;
ILF 为内部逻辑文件的数量;
EIF 为外部接口文件的数量。
-
2. 估算功能点分析法
采用估算功能点进行计数,计算公式如下:
FP=10xILF+7xEIF+4xEI+5xEO+4xEQ
式中,
FP为未调整的功能点数,单位为功能点;
ILF 为内部逻辑文件的数量;
EIF 为外部接口文件的数量;
EI为外部输入的数量;
EO为外部输出的数量;
EQ为外部查询的数量。
-
五、计算调整后的功能点数
根据不同的规模测算阶段,需要考虑隐含需求及需求变更对规模的影响。因此,需要根据规模计数时机进行规模调整。调整后的功能点数(AFP),计算公式如下:
AFP=FPxCF
式中,
AFP为调整后的功能点数,单位为功能点;
FP为未调整的功能点数,单位为功能点:
CF为规模变更调整因子。
根据2023年中国软件行业基准数据报告,规模变更因子基准在不同的估算阶段有不同的参考值,具体如下:
估算阶段 | 规模调整因子取值 |
估算早期(如概算、预算阶段) | 1.39 |
估算中期(如投标、项目计划阶段 | 1.21 |
估算晚期(如需求分析阶段) | 1.10 |
项目交付后及运维阶段 | 1.00 |