功能点估算_修改版
- 格式:ppt
- 大小:1.04 MB
- 文档页数:17
软件项⽬功能点(FP)估算指南⽂件编号:KT/PM-PP-0X-V0.1应⽤软件项⽬功能点(FP)规模估算⽅法修改记录⽬录1前⾔ (3)1.1⽬的 (3)1.2适⽤范围 (3)1.3术语和缩略语 (3)2功能点定义 (3)2.1信息域特性 (3)2.1.1定义 (3)2.1.1.1外部输⼊EI (3)2.1.1.2外部输出EO (3)2.1.1.3外部查询EQ (3)2.1.1.4内部逻辑⽂件ILF (4)2.1.1.5外部接⼝EIF (4)2.1.2复杂度计算 (4)2.1.2.1事务类特性复杂度估算 (4)2.1.2.2数据存储类特性复杂度估算 (5)2.2基本系统特征 (6)2.2.1定义 (6)2.2.2复杂度计算 (6)3估算功能点的步骤 (7)3.1计算UFP (7)3.2计算TCF (7)3.3计算功能点数FP (7)4输出 (7)1前⾔1.1⽬的功能性度量⽅法是⼀种独⽴于编程语⾔的软件规模度量⽅式,使⽤这种⽅法可在早期根据明确功能需求来对最终产品的规模进⾏估算。
在对软件开发环境校准以后,功能性度量的结果可以为评估开发⼯作量和软件产品的成本提供很好的指标。
1.2适⽤范围应⽤软件项⽬⽣命周期中,从需求分析开始直⾄系统测试结束均可使⽤本⽅法进⾏软件规模估算与度量。
1.3术语和缩略语EI: External Input外部输⼊EO: External Output外部输出EQ: External Queries外部查询ILF: Internal Logical Files内部逻辑⽂件EIF: External Interface Files外部接⼝⽂件UFP: Unadjusted Function Points未调整功能点TCF: Technical Complex Factor技术复杂度因⼦2功能点定义功能点技术依据对软件信息域特性和基本系统特征的评估结果来估算软件规模。
根据软件信息域特性可计算出未调整功能点(UFP),根据基本系统特征可计算出软件复杂性因⼦(TCF),最后⽤公式FP=UFP×TCF得出功能点规模。
功能点估算方法1概述 (1)1.1编写目的 (1)1.2适用范围 (1)1.3术语定义 (1)1.4功能点定义与分类 (2)2功能点估算方法 (2)2.1估算流程 (2)2.1.1项目前期 (3)2.1.2需求明确 (4)2.1.3需求变更 (4)2.2调整前功能点计算(UFC) (5)2.2.1复杂度矩阵(项目前期) (5)2.2.2复杂度矩阵(需求明确、需求变更).................. .62.3调整系数 (7)2.4调整后功能点计算(FP) (10)3实例说明 (10)3.1项目前期 (10)3.2需求明确 (13)3.3需求变更 (19)1概述1.1编写目的为规范软件项目规模的度量方法,结合国际先进的估算方法及公司业务运营模式,制定基于软件功能的度量估算方法,为度量项目规模和项目工作量提供指导依据。
1.2适用范本方法适用于公司的研发类项目,项目应覆盖软件开发全过程(包括项目准备阶段、需求阶段、设计阶段、编码与测试、交付部署、运行维护各个阶段工作,1.3术语定义1.4功能点定义与分类功能点(Function Points)是响应客户、其他应用请求或自行触发而进行处理并输出结果的一个最小功能单元。
功能估算过程中,将软件的功能分为以下4类:1)接口:是指在其他系统中维护但本系统需要调用的数据。
包括:调用外部接口和提供外部系统调用的接口。
2)数据处理:是指来自于系统外部的数据输入、控制信息或事务数据输入,并对输入数据进行逻辑处理。
包括:新增、修改、删除、流程流转和发布。
3)统计:是指对数据经过组合、计算、统计分析后得出的数据集合,并由程序内部输出到外部。
包括:定时统计和实时统计。
4)查询:是一个输入输出的组合过程,向应用程序边界外发送数据基本处理的过程。
包括:单表查询和多表联合查询。
2功能点估算方法2.1估算流程功能点估算方法,是从软件项目的功能需求角度来评估项目规模,功能点估算流程如下图所示。
文件编号:KT/PM-PP-0X-V0.1应用软件项目功能点(FP)规模估算方法修改记录目录1前言 (3)1.1目的 (3)1.2适用范围 (3)1.3术语和缩略语 (3)2功能点定义 (3)2.1信息域特性 (3)2.1.1定义 (3)2.1.1.1外部输入EI (3)2.1.1.2外部输出EO (3)2.1.1.3外部查询EQ (3)2.1.1.4内部逻辑文件ILF (4)2.1.1.5外部接口EIF (4)2.1.2复杂度计算 (4)2.1.2.1事务类特性复杂度估算 (4)2.1.2.2数据存储类特性复杂度估算 (5)2.2基本系统特征 (6)2.2.1定义 (6)2.2.2复杂度计算 (6)3估算功能点的步骤 (7)3.1计算UFP (7)3.2计算TCF (7)3.3计算功能点数FP (7)4输出 (7)1前言1.1目的功能性度量方法是一种独立于编程语言的软件规模度量方式,使用这种方法可在早期根据明确功能需求来对最终产品的规模进行估算。
在对软件开发环境校准以后,功能性度量的结果可以为评估开发工作量和软件产品的成本提供很好的指标。
1.2适用范围应用软件项目生命周期中,从需求分析开始直至系统测试结束均可使用本方法进行软件规模估算与度量。
1.3术语和缩略语EI: External Input外部输入EO: External Output外部输出EQ: External Queries外部查询ILF: Internal Logical Files内部逻辑文件EIF: External Interface Files外部接口文件UFP: Unadjusted Function Points未调整功能点TCF: Technical Complex Factor技术复杂度因子2功能点定义功能点技术依据对软件信息域特性和基本系统特征的评估结果来估算软件规模。
根据软件信息域特性可计算出未调整功能点(UFP),根据基本系统特征可计算出软件复杂性因子(TCF),最后用公式FP=UFP×TCF得出功能点规模。
功能点估算方法我折腾了好久功能点估算方法,总算找到点门道。
说实话功能点估算这事,我一开始也是瞎摸索。
我试过很多方法,最开始就是凭感觉,觉得这功能好像挺简单,就给个很少的估算值,那肯定是不对的。
这就好比你去市场买菜,不看菜的分量,不看价格,就随便给个钱数,摊主肯定不会同意啊。
然后我学着用历史数据来估算。
比如说之前做过类似的功能,就参考上次花费的时间或者工作量。
可是这里面也有问题,有时候看似相同的功能,实际上里面有很多隐藏的细节差异。
就像俩栋房子乍一看一样,但是里面的装修、结构强度啥的都不同,那要改建耗费的资源肯定不能简单类比。
有一次我没注意这些差异,按照之前的数值估算,结果最终花费的工作量远超预期。
后来啊,我就开始把功能细分成小的模块。
这功能要是个大蛋糕,那我就把它切成一块一块小蛋糕。
先估算小模块的工作量,再汇总起来。
这时候确定每个小模块的复杂度很关键。
复杂模块和简单模块肯定不能同等对待,复杂的可能要花费好几倍的精力在上面。
比如开发一个登录功能,常规的用户名密码登录就是比较简单模块,如果还要加上指纹识别、面部识别这些额外功能,那这个登录模块整体就复杂很多了。
还有不确定因素的考虑很重要。
像是可能需要等别的团队提供接口,这个时间就不确定。
这时候我的方法就是稍作估算再额外增加些余量。
但这余量该加多少我还不是特别确定,就是凭经验和当前项目的整体风险情况看着办。
有时候感觉风险大,就多给点余量,要是风险小,就少放点。
这个我还在不断摸索之中。
功能点估算一定要有耐心,多分析,多对比,千万不能偷懒,不然很容易估算错误给项目带来很大麻烦呢。
软件项⽬中的功能点法估算-实例
需求:实现⼀个订单的录⼊,更新,删除和查询功能.订单信息是指⼀个⽤户订购的公司产品的情况.其中订单头包含了具体的类型,订购时间,发运地址,客户名称等信息.订单明细包含了订购的具体产品的数量的情况.
假设:
1.⽤户表和产品数据表已经建⽴,本次订单功能开发仅仅是引⽤和取这些数据.
2.暂不考虑其它特殊业务逻辑和权限
功能界⾯情况:
STEP1:计算出EI,EO和EQ事务功能
举例:对于订单保存功能,项⽬⾃我约定对于组合框DET算2,对于GRID的DET算3.其余界⾯控件DET都算1,所以可以数出DET数⽬为15.再来考虑FTR数⽬,这⾥需要操作订单数据⽂件,客户数据⽂件和产品数据⽂件FTR数应该算3.
STEP2:计算出ILF和EIF事务功能
1.这⾥订单⽂件只算⼀个DET,但后台数据表会涉及到两个数据表.由于订单头和订单明细有关联关系,所以这⾥RET取
2.
2.客户⽂件和产品⽂件虽然不是外部系统⽂件,但本次开发的功能并不需要再去设计该数据⽂件和数据表,所以这⾥把其作为EIF来处理.STEP3:根据对应表计算各个信息域复杂度的情况.
最终的估算情况如下:
最终的未调整的功能点数⽬为:61
调整因⼦在这⾥不再举例说明了,如项⽬调整因⼦为1.08,则最终功能点数为:
AFP = 61*1.08 = 66.
还有些没有细化考虑的,如具体的DET数量的计算规则等,还请指正.。