软件项目管理 6.2.功能点估算法

【公众号 “项目管理研究所” 将会第一时间更新文章并[分享行业分析报告]】
归档于软件项目管理初级学习路线
第六章 软件项目成本计划
《初级学习路线合集 》


前言

大家好,这节我们学习软件项目管理---功能点估算法。

  1. 最早提出功能点估算法的是阿尔布雷克特,1979年在IBM工作时提出,称为Albrecht功能点;
  2. 也称为IFPUG(国际功能点用户组织)功能点。
  3. 适用于信息系统。

一、功能点估算

代码行估算法与项目的实现语言等技术相关。而功能点估算与实现的语言和技术没有关系,用系统的功能数量来测量项目规模,是通过评估,加权,量化得出功能点。

功能点公式:FP=UFC*TCF。其中UFC为未调整功能点计数,是未调整之前的数量。TCF是技术复杂度因子,是对UFC的调整因子。

二、未调整功能点计数(UFC)

UFC是从五个角度得出的。五个功能计数项:“外部输入”,“外部输出”,“外部查询”,“外部接口文件”,“内部逻辑文件”。

软件项目管理 6.2.功能点估算法

1.外部输入(External Inputs: EI):
给软件提供面向应用的数据的项(如屏幕、表单、对话框、控件,文件等);在这个过程中,输入数据穿越外部边界进入到系统内部。

例如:登录某个系统需要输入用户名和密码等信息。

软件项目管理 6.2.功能点估算法
外部输入计数的大小可以通过输入的文件类型,数据元素等个数来进行决定权重,从而决定输入计数。

2.外部输出(External Outputs EO):
向用户提供(经过处理的)面向应用的信息,例如,报表和出错信息等。
同理,计数大小通过输出的文件类型,数据元素等个数进行决定权重,从而决定输出的计数。

3.外部查询(External Inquiry EQ) :
外部查询是一个输入引出一个即时的简单输出。没有处理过程。同理,计数大小通过输出的文件类型,数据元素等个数进行决定权重,从而决定输出的计数。

例如输入的学号是0001,查出的结果是学生 张三,没有处理过程。
软件项目管理 6.2.功能点估算法

4.外部接口文件(External Interface Files EIF’s):
外部接口文件是用户可以识别的一组逻辑相关数据,这组数据只能被引用。用这些接口把信息传送给另一个系统。

接口文件的权重通过其中的文件技术类型和数据元素类型来进行决定,然后再决定计数。
软件项目管理 6.2.功能点估算法

5.内部逻辑文件(Internal Logical Files: ILF’S):
用户可以识别的一组逻辑相关的数据,而且完全存在于应用的边界之内,并且通过外部输入维护,是逻辑主文件的数目。

例如关系数据库中的一个表,或者系统中的一个文件等...他们的权重是通过其中的文件或者记录类型,数据元素类型个数来进行决定权重,然后再决定计数。

软件项目管理 6.2.功能点估算法

最后我们看一下五个功能计数项的计数权重,他们的权重基本上通过文件,技术类型或者数据元素类型的个数决定的,分三个等级,既高中低。

软件项目管理 6.2.功能点估算法
那么国际功能点用户组织(IFPUG)发布FP计数的规则:
<IFPUG功能点估算方法使用指南>

这是外部输入,输出,查询的定级表。
例如引用或者更新两个文件类型(FIR’S),并且有7个外部输入数据元素,将定级为中级,相关的级数既外部输入计数权重为4。
软件项目管理 6.2.功能点估算法

这是内部逻辑文件和外部接口文件的定级表,通过记录元素类型和数据元素类型个数来决定他的高中低级别。

软件项目管理 6.2.功能点估算法

这是五个功能计数项的复杂度等级:
软件项目管理 6.2.功能点估算法

进行UFC计算的时候要计算各个功能计数项的个数(注意对应的计数权重),然后进行相加。

三、技术复杂度因子(TCF)

UFC只是功能点估算的一部分,为了确定功能点,还需要考虑技术实现的难度,他是从14个角度来看项目的复杂性。

软件项目管理 6.2.功能点估算法

软件项目管理 6.2.功能点估算法

这14个技术复杂度因子(注意:技术复杂度因子的取值范围)相加后乘以0.01再加上0.65得出TCF。

TCF最大值为1.35,最小值为0.65,相当于UFC的计数调整区间是正负35%。如果UFC等于100,则可调动的区间是65——135。

四、功能点估算方法例子

这是某外贸订单系统的用例图

软件项目管理 6.2.功能点估算法
我们可以得出以下信息,然后根据文件类型,数据元素类型确定了级别既权重,最后计算了UFC等于45。

软件项目管理 6.2.功能点估算法
然后这项目14个技术复杂度因子,每个因子都有平均的影响,所以为3.既最后技术复杂度因子为 TCF=0.65+0.01143=1.07 。

软件项目管理 6.2.功能点估算法

五、其他功能点估算方法

Mark II 功能点方法主要应用在英国,是对阿尔布雷克特方法的一个改进。

阿尔布雷克特主要适用于信息系统,他不适合于实时系统或者嵌入式系统,因此COSMIC-FFP功能点方法正好满足这个条件。

软件项目管理 6.2.功能点估算法

我们知道代码行估算法与实现的语言相关,功能点则不同,那么这个表展示了功能点对应的不同语言代码行数,那么他是通过经验数据统计得出的。

软件项目管理 6.2.功能点估算法

总结

总之 功能点估算是从需求功能出发来估算,这节主要介绍阿尔布雷克特功能点方法,他适用于信息系统,如果开发的是实时系统或者嵌入式系统可以采用COSMIC-FFP功能点方法。

到这里,第六章 第二节 功能点估算法就讲解完毕了!下一节介绍用例点估算法~

如果您觉得这篇文章有帮助到您的的话不妨点赞支持一下哟~~😉

后续将持续更新【软件项目管理初级学习路线】的全知识点,大家感兴趣的多多关注博主哟~
————————————————

发表评论

相关文章