龙空技术网

定制软件怎么定价

八爪鱼先生的研墨社 934

前言:

而今各位老铁们对“功能点方法计算软件规模”大致比较关怀,大家都想要了解一些“功能点方法计算软件规模”的相关资讯。那么小编也在网摘上搜集了一些有关“功能点方法计算软件规模””的相关资讯,希望兄弟们能喜欢,朋友们一起来了解一下吧!

一、引言

定制软件开发的服务费怎么算?项目概算或者说产品定价是多少就是多少?如果换另一个角度问,领导给了个任务,评估一下项目中定制软件开发服务成本或项目利润,这时候就尴尬了。这期,咱们聊一聊软件行业中,定制软件开发服务预算成本的评估方法。

二、软件开发成本组成

根据《GB/T36964—2018 软件工程 软件开发成本度量规范》,软件开发构成分为以下几种。

其中,人力成本主要为投入的项目成员,包括直接费用:参与该项目开发过程的所有开发或支持人员,如项目经理、需求分析人员、设计人员、开发人员、测试人员、部署人员、用户文档编写人员,质量保证人员和配置管理人员等;间接费用:参与项目的专家费、外劳费等。

非人力成本包括直接费用,如办公费、差旅费、培训费、业务费、采购费等项目的配套费用;间接费用,如场地租赁、水电物业、推广宣传、知识产权专利等围绕项目所产生的费用。

这里主要讨论的是软件开发所产生的直接人力成本。

二、软件开发的度量方法

定制软件开发服务费可按照工作量估算法和功能点估算法进行估算。

三、工作量估算法

在行业上普遍应用工作量估算法进行估算,即组织一批经验丰富的专家、开发团队,评估每个功能点投入的工作量(人/月),,计算开发成本。

软件开发成本 = 工作量(人/月)*综合单价(根据人社部门发布的本地软件和信息技术服务业工资水平)*复用度调整系数。

工作量估算法是通过估算软件项目各细分可识别模块所耗费的资源进行费用估算,资源数包含人力和时间,一般用人天、人月的形式来衡量。系统按子系统、模块进行细化分层,一般系统分两层,复杂系统应分三层或更多。测算表如下:

其中,复用度调整系数,对功能复用情况进行分析,识别出可复用的功能及可复用的程度,并根据复用程度对规模进行量化调整。在预算阶段,新建项目的复用度调整系数默认取值为1(复用度低),根据实际情况进行调整;在已有软件系统或功能模块基础上进行优化完善或调整改造的,复用度调整系数默认取值为2/3(复用度中),根据实际情况进行调整。

此类评估为工作量估算法由于定价权大部分出自乙方,相对甲方而言,掺杂主观性。在过去做过很多软件咨询项目中,多多少少有客户对评估预算都有一定的争议。

四、功能点估算法

那如何客观的、科学、摆事实的评估软件开发服务成本呢?

功能点估算法,一个国内不大众化的(算法复杂)、但又具有国际范的、各行业标准推崇的软件开发估算方法。

现在回答前面的问题:在甲方面前,能够客观、科学、摆事实是什么,是数据。而功能点方法,是从用户视角(即业务价值)度量软件的大小,其核心思想是系统维护的“数据”及处理的复杂程度决定系统价值。从下面的讨论的算法和度量方式,也可以看出其围绕“数据”进行软件度量。

目前,应用的比较广泛的是国际功能点用户组(IFPUG)发布的标准功能点法和荷兰软件度量协会(NESMA)发布的快速功能点法。下面,文章围绕《GB/T36964—2018 软件工程 软件开发成本度量规范》、国际标准《ISO/IEC20926:2009 软件与系统工程 软件测量 IFPUG 功能规模测量方法2009》、行业标准《SJ/T11619—2016 软件工程 功能规模测量NESMA 方法》、某省《省级政务信息化服务预算编制规范和标准》、《电子政务工程造价指导书》进行说明。

其具体计算方式为:

定制软件开发服务费用=经复用调整后功能点数×软件开发生产率基准/人月折算系数×软件开发基准人月费率+直接非人力成本

其梳理成定制软件开发服务费测算表格为:

现在对上述公式的计算方式进行拆解

4.1未调整功能点- UFP

我们先来理解一下功能点里面的概念。

ILF:内部逻辑文件的数量,单位是“个”:说人话是,在系统内部产生并维护的一组数据,可以是数据项、数据库表。可以理解ILF为计算内部数据功能的数量。

EIF:外部逻辑文件的数量,单位是“个”:即外部接口文件,在第三方外部系统产生并维护,拟开发系统进行接入与使用的一组数据,可以是数据项、数据表、文件等。可以理解EIF为计算外部数据功能的数量

EQ:外部查询的数量,单位是“个”:用户或第三方系统的外部查询操作,对内部数据的简单输出,例如查询、排列、筛选等。

EI:外部输入的数量,单位是“个”:用户或第三方系统的外部输入操作,如增/删/改、启动服务、阈值设置等

EO:外部输出的数量,单位是“个”:针对某业务数据的复杂报表/统计分析等(含计算),如报表统计、趋势分析等。

他们之间的关系如下:

这里额外提一下未调整功能点UFP结合到国内本土信息软件项目推进情况,可分为快速功能点估算法与详细功能点估算法。

快速功能点估算法用于项目前期的可行性分析、确立项目范围与标的、增加合同谈判的依据、增加项目立项的依据、项目计划与跟踪的基础以及人员绩效考核等场境。

对应到上述测算表格,其只要梳理内部逻辑文件ILF和外部逻辑ELF的数量之和即可,UFP计算公式如下:

UFP=35×ILF+15×ELF。

其中35、15参数可以理解为,ILF数据功能包括有3个EI(对应添加、修改、删除)、1个EO(不少于1个统计操作)和1个EQ(查询),总和为5,按行业情况取低复杂度值,即5*7=35;EIF数据功能包括1个EO、1个EQ、1个EO,总和为15,按行业情况取低复杂度值,即3*5=15。

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

详细功能点估算法主要用于正式项目开发过程,评估项目开发的成本。其有效性和准确性取决于软件开发原始材料,如需求说明书、系统规格说明书或者软件需求说明书等。

对应上述测算表格,不但需要梳理ILF和ELF,还要梳理EQ、EI、EO等外部操作数量,UFP计算公式如下:

UFP=10×ILF+7×ELF+4×El+5×EO+4×EQ

在咨询工作中,接触的都是项目比较前期的工作,更多使用快速功能点估算法,详细功能点不做细分讨论。

4.2 调整因子取定

按照《电子政务工程造价指导书》指导,计算完未调整功能点UFP还不够,还需要通过复用情况、复杂情况调整功能点数,即上述UFP综合与各调整因子的乘积。

调整因子取定包括有

(一)类别调整因子取定

计算公式如下:

软件类别调整因子(SWF)=规模调整因子(SF)×应用类型调整因子(AT) ×质量特征调整因子(OR)。

规模调整因子(SF):采用快速功能点进行项目预算编制时,规模调整因子(SF)取值为1,如后期确需使用规模调整因子,取值可参照行业标准进行计算。

应用类型调整因子(AT),根据项目情况按照下表进行取值。

质量特征调整因子(OR):

计算公式为:质量特性调整因子=(分布式处理因子+性能因子+可靠性因子+多重站点因子)×0.025+1。

(二)复用系数取定

即复用度调整因子(RUF),取值为0~1的任意实数。提取已开发软件中的有效成分,并利用这些成分构造新的软件系统。该项用以评估软件开发中的软件构件可以被复用的程度或范围。在预算阶段,定制化软件开发复用情况一般取值为1(假设复用程度低)。

4.3 软件开发生产率基准

软件开发生产率基准(功能点耗时率(人时/功能点),指一个功能点需要耗费的人时,根据中国软件行业基准数据,电子政务领域功能点耗时率取值可参照下表∶

功能点耗时率(PDR)通常取值为6.65。

功能点耗时率(PDR)通常取值为6.65。

4.4 软件开发生产率基准调整系数

根据项目紧急情况,人员投入的时间(如加班、赶工)在0.8~1.2取值,一般默认值为1。

4.5 人月折算系数(HM)。

单位为人时每人月,取值为176,即22(每月按22个工作日计算)×8(每天按8小时工作时间计算)=176。

4.6 软件开发基准人月费率

平均人力成本费率(F)包括开发方直接人力成本和间接成本、开发方毛利润),但不包括直接非人力成本,单位为元每人月。根据人社部门发布的本地软件和信息技术服务业工资水平、开发公司每人月投入成本,结合国内软件行业基准数据核算。

4.7 直接非人力成本

非人力成本组成如下:

五、功能点评估案例

某单位需要开发综合管廊运维管理系统,以满足运维值班管理、管廊进出管理、管廊管线管理、管廊资产管理、管廊巡检管理等。

按照上述功能点预算估算方式。首先根据项目需求梳理并列出该信息系统功能点计数清单:

根据项目需求描述,识别内部逻辑文件34个,外部接口文件6个。按照快速功能点估算法进行计数如下:

(1)未调整的功能点数量(UFP)=35×ILF+15×ELF=35×34+15×6=1280;

(2)经过复用调整后的功能点数= UFP*类别调整因子取定*复用系数

①类别调整因子取定=规模调整因子(SF)×应用类型调整因子(AT) ×质量特征调整因子(OR)。即

>>规模调整因子(SF)取值为1;

>>应用类型调整因子(AT)对应业务处理,取值为1.0;

>>质量特征调整因子(OR)根据对应参数表取值= (分布式处理因子+性能因子+可靠性因子+多重站点因子)×0.025+1=(0+1+0+0)*0.025+1=1.025;

类别调整因子取定为1.025

②复用系数取定为1;

经过复用调整后的功能点数=1280×1×1×1.025= 1312

(3)软件开发生产率基准按照政务领域要求,取P50值6.65;

(4)软件开发生产率基准调整系数按照正常进度开发,取值1;

(5)人月折算系数取值为174。

(6)软件开发基准人月费率按照某地电子政务软件开发基准人月2.4万计算。

(7)直接非人力成本,如差旅、培训、办公等该项目费用,预估取值为8万。

定制软件开发服务费用=经复用调整后功能点数×软件开发生产率基准/人月折算系数×软件开发基准人月费率+直接非人力成本

=1312×6.65×1÷174+2.4+8≈128.34(万元)

标签: #功能点方法计算软件规模