基于功能点估算项目规模FPA,以及估算软件开发成本[更新]odoouse

用来估计功能的复杂度,从而为功能估算出合适的FP数

估算方法

IFPUG估算流程概览【ISO规范】

NESMA估算流程

估算流程概览【国内行业规范-NESMA】

规模估算

估算流程概览【国内行业规范-IFPUG】

调整因素

国内ifpug标准

国内NESMA方法

计算案例:

工作量估算

工期计算

软件开发价格计算

结论

FPA估算的项目规模,是指软件开发的项目规模,包含了需求分析、设计、编码、测试等活动,但不包含项目管理,软件维护等支持性且因项目要求的不同而差异加大的活动。

用户需求分为功能性用户需求和非功能性用户需求,IFPUG和NESMA用来估算功能性用户需求的规模;而SNAP用来估算非功能性用户需求的规模

国内的行业标准,有使用IFPUG方法的,也有是NESMA方法的;需要注意二者的差异和联系

估算软件开发成本的总体思路是:

1,先估算出规模,估算法方法可以选用其中一个

A,NESMA快速估算,项目早期,需求不明朗,文档不全

B,NESMA估算,项目中期,需求清晰,文档较全

C,NESMA详细估算,项目完全,需求完成,文档完备

D,IFPUG估算

2,然后使用方程工作量=规模/生产率,计算得出工作量

3,基于工作量计算开发成本

功能的度量单位,用于度量软件规模;不等同于功能,或者用户需求;一般场景下所说的功能点,是指功能【功能亮点、或者功能突出点】

AFunctionPoint(FP)isaunitofmeasurementtoexpresstheamountofbusinessfunctionality,aninformationsystem(asaproduct)providestoauser.FPsmeasuresoftwaresize.Theyarewidelyacceptedasanindustrystandardforfunctionalsizing.

国标/行业标准所描述的功能点估算规范,既有IFPUG,也有NESMA,2者在流程和规则上,大部分是相同的;主要差异是

被度量软件与用户或者其他系统之间的界限

ControlInformationisdatathatinfluencesanelementaryprocessbyspecifyingwhat,whenorhowdataistobeprocessed.

对用户来说是一个有意义的、最小的活动单元,是自包含的,并且使应用程序的业务处于一致状态

ElementaryProcessisthesmallestunitoffunctionaluserrequirementthat基本处理是用户功能需求的最小单元

Processinglogicisdefinedasanyoftherequirementsspecificallyrequestedbytheusertocompleteanelementaryprocesssuchasvalidations,algorithmsorcalculationsandreadingormaintainingadatafunction.

功能分为2大类,5种类型

识别交易功能时,要按基本处理elementaryprocess的原则进行识别

在进行计数实践的时候,按照估算的时机,或者文档的完备性,可以分为3种估算方法

Indicative方法和Estimated方法,均是是详细功能点估算方法的简化。

Estimated方法就是按中等复杂度进行估算

使用NESMAEstimated方法估算未调整的功能点数时,可以基于复用程度、修改类型进行对各功能的功能点数进行调整,调整系数为复用程度系数*修改类型系数

复用程度

系数

1/3

2/3

1

修改类型

新增

修改

0.8

删除

0.2

功能要素复杂度计算表

功能点数与复杂度之间的对应关系

功能点数

功能

复杂度

ILF

EIF

EI

EO

EQ

7

5

3

4

10

15

6

在规模估算时,根据项目阶段,使用不同的NESMA方法

按功能点计算出工作量后,再根据下面的14项系统基本特征评分得出调整系数,然后进行调整

14项系统基本特征

上面14项目每个项目的分值从0到5分

计算公式是:∑14项因子*0.01+0.65,即14项目加总后*0.01+0.65

在估算功能点后,根据计数时机,按规模调整系数进行规模调整,从而确定未调整的功能点

计数时机

早期

1.39

中期

1.22

完成

1.0

估算出未调整的功能点后,再根据软件因素,和开发因素,一共5项调整因素计算得出的调整系数,然后进行调整

计算公式是:∏5项因子,5项得分相乘

因素

得分范围

应用类型

1.0~2.0

质量特性

0.9~1.1

完整性级别

1.0~1.3

开发语言

0.6~1.5

开发团队背景

0.8~1.2

【质量特性有4个维度,总体上应该是8个调整因素】

描述

调整因子

业务处理

办公自动化系统、日常管理及业务处理用软件等

应用集成

企业服务总线、应用集成等

1.2

科技

科学计算、仿真、基于复杂算法的统计分析等

多媒体

多媒体数据处理;地理信息系统;教育和娱乐应用等

1.3

智能信息

自然语言处理、人工智能、专家系统等

1.7

系统

操作系统、数据库系统、集成开发环境、自动化开发/设计工具等

通信控制

通信协议、仿真、交换机软件、全球定位系统等

1.9

流程控制

生产管理、仪器控制、机器人控制、实时控制、嵌入式软件等

2.0

判断标准

分布式处理

没有明示对分布式处理的需求事项

-1

通过网络进行客户端/服务器及网络基础应用分布处理和传输

0

通过特别的设计保证在多个服务器及处理器上同时相互执行应用中的处理功能

性能

没有明示对性能的特别需求事项或仅需提供基本性能

为满足性能需求事项,要求设计阶段开始进行性能分析,或在设计、开发阶段使用分析工具

可靠性

没有明示对可靠性的特别需求事项或仅需提供基本的可靠性

发生故障时带来较多不便或经济损失

发生故障时造成重大经济损失或有生命危害

多重站点

在相同的硬件或软件环境下运行

在设计阶段需要考虑不同站点的相似硬件或软件环境下运行需求

在设计阶段需要考虑不同站点的不同硬件或软件环境下运行需求

质量因子计算公式

质量系数=1+0.025*以上调整因子之和

没有明确的完整性级别或等级为C/D

完整性级别为A/B同时为达成完整性级别要求采取了特殊的设计及实现方式

1.1

完整性级别为A同时为达成完整性级别要求在软件开发全生命周期均采取了特定、明确的措施

C及其他同级别语言/平台

1.5

JAVA、C++、C#及其他同级别语言/平台

PowerBuilder、ASP及其他同级别语言/平台

0.6

为本行业开发过类似的软件

例如,使用NESMA估算功能点法,估算出功能点为345.87,经规模调整后为480.75,基准生产率为7.10人时/功能点,那么工作量=480.75功能点*7.10人时/功能点=3,413.325人时【480.75*7.10=3,413.325人时】=3,413.325/8=426.6656人天

【规模调整因子是根据估算时机确定的,上例是以早期1.39取值的】

例如,调整因子得分如下

1.00

1.08

1.30

0.60

调整系数为1*1.08*1.3*.6*1=0.8424

所以调整后的工作量=426.6656人天*0.8424=359.4231人天

【基准生产率可以查行业数据,一般取中位数】

工期=1.277*(工作量/176)^0.404

【此公式中工作量的单位是人时,工期的单位是月】

例如,工作量为359.4231人天,转换为人时为3,413.325人时,计算得出工期为1.227*(3,413.325/176)^0.404=4.065即工期为4.065月

进一步估算团队规模:359.4231人天=359.4231/22=16.3374人月,16.3374人月/4.065月=【16.3374/4.065】4.019人

软件开发价格=开发工作量*开发费用/人月

其中:

开发工作量=估算工作量*风险系数*复用系数

开发费用/人月=【工资+国家规定的福利+奖金以及奖励+办公成本+人力资源成本+设备/基础设施+税金和利润】*管理系数*优质系数

国家规定的福利=工资*0.476

奖金以及奖励=工资*1/5

办公成本=工资*1/3

人力资源成本=工资*1/5

设备/基础设施=工资*0.15

税金和利润=工资*1/3

管理系数取值于1~1.2

优质系数按ISO9000质量或者CMMI认证确定,分别取值1.05,1.1,1.2,1.3

一般综合下来,按平均月薪*3.23作为开发费用/人月

人月开发费用,也可以采取行业基准数据,例如2019年软件开发行业基准人月单价2.8767万元/人月,不包含直接非人力成本

继续上例359.4231人天换算为人月,为359.4231/21.75=16.5252人月,软件开发价格为47.538万【16.5252*2.8767=47.538】

如果采用月平均工资*3.23,例如月平均工资为1.5W,则软件开发价格为80.0646万【16.5252*1.5*3.23=80.0646】

注意,FPA方法是按瀑布模式运作项目的,如果是采用敏捷模式,工作量上应该要少很多。。。

对于系统集成项目

前面部分所述的是软件开发部分,软件开发之后,还需要进行实施、运维支持,也存在相应的费用。

THE END
1.软件业用新创造价值“人工智能领域技术进步不仅带动企业相关业务收入的增长,还带动芯片设计等业态快速发展。前三季度,集成电路设计收入同比增长13.1%,为增长最快的细分领域。随着智能化、云化成为软件产业的确定趋势,预计我国信息技术服务收入将继续稳定增长,占全行业收入的比重将进一步提升。”韩健说。 https://mp.weixin.qq.com/s?__biz=MzIwMDgwNjgyNw==&mid=2247512583&idx=3&sn=ffeedad088c514d359d87f7d2a17f4c7&chksm=97efa9b0b87877cc888d2576a3144677400a7feed16db71ff44bfa90ec2f635fa998c0517c8c&scene=27
2.软件产品生产属于什么行业零代码企业数字化知识站软件产品生产属于什么行业 软件产品生产属于信息技术(IT)行业、软件开发行业、科技行业。信息技术行业涵盖了所有与计算机系统、软件、网络、数据处理相关的业务和服务。软件开发行业专注于为不同应用领域和用户需求开发各种软件产品。科技行业是一个更广泛的范畴,涵盖了所有与技术创新和应用相关的领域。信息技术行业是目前https://www.jiandaoyun.com/blog/article/374139/
3.软件开发属于什么行业?网友(匿名用户)职场问答推荐阅读 34从it软件开发行业出来,找个什么工作好? 电商运营 0回答 有做软件开发行业的吗? 聊城大学 2回答 有软件开发行业的吗 西安邮电学院 2回答 软件开发和测试这个行业怎么样? 对这个不是跟了解 展开问题描述 运维支持 8回答 有没有可以兼职的工作?软件开发行业。 1回答 https://zq-mobile.zhaopin.com/zpdOutputQuestionDetail/6987978/
4.八维学校都有什么专业八维物联网工程专业,以培养.NET高级工程师、项目经理、产品经理为主要目标。所学技术主要是.NET,被称为软件开发行业的“全能王。所以毕业生完全可以胜任嵌入式软件工程师、Java开发工程师、硬件工程师等工作。 专业师资力量雄厚,尤其是项目经理团队,100%来自名企并且具有十年以上的工作经验。成立三年多时间以来,培养了https://www.bwie.com/news/429.html
5.应用软件开发属于什么行业大类?在这个数字化的时代,你我都是信息海洋中的一叶扁舟,而将我们的小舟带入新纪元的,正是应用软件开发的浩瀚力量。这一行业,就像是现代魔法师的集会地,他们用代码编织现实,用界面连接世界,用功能改变生活。那么,你知道吗,应用软件开发到底属于什么行业大类? http://www.apppark.cn/t-52165.html
6.致力于全行业软件开发服务(app小程序平台)提供各行业软件开发定制解决方案,包含:app开发、小程序开发、平台、信息系统集成等服务。英航科技15年技术积累、200+软件研发人员、7*24小时售后服务为您保驾护航。VIP专线:400-669-8659https://www.whdlxx.cn/
7.互联网行业术语它的出现是由于软件行业日益清晰地认识到:为了按时交付软件产品和服务,开发和运维工作必须紧密合作。 容器(Container) 容器顾名思义。就好比是一个装东西的器m , 是应用服务器中位于组件和平台之间的接随着瘦客户端系统的发展而诞生,在开发瘦客户端系统时,开发人员要花费大量的精力去关注线程安全、事务网络、资源等等https://blog.csdn.net/echizao1839/article/details/106859234
8.了解中国全部行业和岗位,这一篇就够了!猿生活嵌入式软件开发工程师:将软硬件完美结合 电子技术研发工程师:电子新技术的开拓者 电子工程师:迈向“电子强国”的技术保障 通信技术工程师:通信时代的宠儿 移动通信工程师:让地球变得更小 3G软件工程师:忽如一夜春风来,3G之花遍地开 手机应用开发工程师:手机行业的领军人 https://ac.nowcoder.com/discuss/438486?channel=-1&source_id=discuss_terminal_discuss_sim_nctrack
9.软件开发是属于什么行业软件开发是属于什么行业 软件开发属于IT行业。软件系统开发,信息系统开发、应用软件系统开发等等,这类是以编写代码进行开发。软件系统是指由系统软件、支撑软件和应用软件组成的计算机软件系统,它是计算机系统中由软件组成的部分。操作系统是管理软硬件资源、控制程序执行,改善人机界面,合理组织计算机工作流程和为用户使用https://36kr.com/p/1508280912137992