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


前言

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

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

一、功能点估算

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

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

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

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

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

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


外部输入计数的大小可以通过输入的文件类型,数据元素等个数来进行决定权重,从而决定输入计数。

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

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

例如输入的学号是0001,查出的结果是学生 张三,没有处理过程。

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

接口文件的权重通过其中的文件技术类型和数据元素类型来进行决定,然后再决定计数。

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

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

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


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

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

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

这是五个功能计数项的复杂度等级:

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

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

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

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

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

四、功能点估算方法例子

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


我们可以得出以下信息,然后根据文件类型,数据元素类型确定了级别既权重,最后计算了UFC等于45。


然后这项目14个技术复杂度因子,每个因子都有平均的影响,所以为3.既最后技术复杂度因子为 TCF=0.65+0.01_14_3=1.07 。

五、其他功能点估算方法

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

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

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

总结

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

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

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

软件项目管理 6.2.功能点估算法相关推荐

  1. ei eo 功能类型_[转载]CMMI之功能点估算法:EI、EQ和EO

    EI.EO.EQ EI是处理来自于应用程序边界外部的一组数据的输入,它的主要目的是维护一个或多个ILF,以及/或者更改系统的行为. EO是输送数据到应用程序边界外部的过程.它的主要目的是通过逻辑处理过 ...

  2. ei eo eq什么意思_CMMI之功能点估算法:EI、EQ和EO

    EI.EO.EQ EI是处理来自于应用程序边界外部的一组数据的输入,它的主要目的是维护一个或多个ILF,以及/或者更改系统的行为. EO是输送数据到应用程序边界外部的过程.它的主要目的是通过逻辑处理过 ...

  3. CMMI之功能点估算法:EI 、EQ、EO

    CMMI是什么意思? 加速企业提升开发管理水平,各类软件行业招投标加分门槛证件. EI.EO.EQ? EI是处理来自于应用程序边界外部的一组数据的输入,它的主要目的是维护一个或多个ILF,以及/或者更 ...

  4. 软件项目管理学习(四)

    上一篇介绍了软件项目的需求分析和任务分解,即软件项目的范围计划,那么对于一个软件项目来说,我们还需要知道它需要多少时间多少成本,如何得到这些数据就是这次要解决的问题,即项目的成本计划 在项目未完成之前 ...

  5. 软件项目规模估算的3种方法---Loc估算法、FP估算法、PERT估算法

    软件项目规模估算的方法 Loc估算法 FP估算法 PERT估算法   软件规模是软件工作量的主要影响因素,常用的软件规模度量方法有三种,分别是Loc估算法.FP估算法.PERT估算法. Loc估算法 ...

  6. 软件项目管理第4版课后习题[附解析]第六章

    软件项目管理第4版课后习题[附解析]系列文章目录 第一章 第二章 第三章 第四章 第五章 第六章 第七章 第八章 第九章 第十章 第十一章 第十二章 第十三章 第十四章 第十五章 第十六章 期末复习题 ...

  7. 软件项目管理考试大纲

    软件项目管理复习大纲 (大纲由杜凯老师会议中提到的主要考点为路线,本人查阅资料和PPT倾心制作) 四道大题 单选1*10 判断1*10 简答5*4 综合应用分析4个小题 60分 考到列举几种方法相关的 ...

  8. 软件项目管理 6.7.参数估算法

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

  9. 软件项目管理:成本估算法,PERT历时估算法,决策树分析法,挣值分析法

    1,成本估计法 1.1,专家估算法 很简单,就是一群专家说几个数字,然后按照  的公式计算成本. :乐观估计 :正常估计 :悲观估计 题目:项目经理正在进行一个图书馆信息查询系统的项目估算,他采用De ...

最新文章

  1. 机器学习中的优化方法小结
  2. 基于python的图书管理系统测试步骤_Django admin实现图书管理系统菜鸟级教程完整实例...
  3. 【报告分享】2022中国人工智能人才培养报告.pdf(附下载链接)
  4. 使用CSS实现网格+渐变背景色的Web页面背景
  5. Office for Mac升级提醒如何去掉?关闭Mac的Microsoft AutoUpdate弹框提示
  6. Effective C++ -----条款18:让接口容易被正确使用,不易被误用
  7. Docker从理论到实践(九)------使用Dockerfile创建镜像
  8. 关于出版《ARKit原生开发入门精粹》(2021-03-24更新)
  9. 管理感悟:一种招聘考试的想法
  10. 杭州云栖大会“弹性计算用户实践专场”等你来
  11. 常见的肾囊肿症状有哪些?
  12. 【Pandas】一文入门Pandas处理csv文件数据集(神经网络/机器学习算法数据预处理)
  13. 等你来战 | 第五届“强网”拟态防御国际精英挑战赛报名开启!
  14. 【ubuntu使用排坑】fsckd-cancel-msg:Press Ctrl+C to cancel all filesystem checks
  15. 在这里,你终究会真正地失败
  16. 【python】终于解决了cv2.VideoWriter生成视频后视频文件始终为1KB且无法播放的问题
  17. H3C防火墙的登录及管理
  18. 直击平昌! 2天40位大咖的平昌区块链论坛精华都在这了!
  19. finally用法包含哪些
  20. 在启动EasyDarwin前端时遇到的几个问题

热门文章

  1. 什么是cdn和cdns
  2. python星号平行四边形_python学习:python的星号(*)和双星号(**)用法
  3. java判断时间是否在时间区间里(适用格式HH:mm)
  4. TAQS.IM MicroToner v1.0.1 WiN 东方音阶转换器插件
  5. java163邮箱服务器地址,JavaEmail发送网易163邮箱和QQ邮箱
  6. MySql插入语句时报错,错误代码1062
  7. C++第六次作业(函数)
  8. 程序员数学(19)–一次函数
  9. android音乐播放器博客,Android版‘音乐一点通’音乐播放器详情
  10. 苹果的又一个坑:InHouse打包后程序不能启动