1.目的
规范软件市场行为,维护价格公平竞争,同时为软件项目建设经费概算提供科学可信的依据。
1.1适用范围
l适用于应用类定制软件的新开发项目,项目应覆盖软件开发全过程(包括立项可行性分析,需求分析、编码实现、安装实施、运行维护各个阶段工作)。
l是站在行业的角度,去评估一个应用软件项目的开发费用应该是多少,而不是站在开发商的角度去计算某企业开发软件时的成本支出是多少。
2.软件项目费用概算
2.1项目阶段划分
软件项目全过程可分为:立项阶段、建设阶段、完成阶段。不同阶段工作重点不同。为保证软件项目开发质量,避免因需求不确定,或者频繁更改所造成的成本上升,同时也利于项目费用概算,软件项目建设最好采取“总体规划、分段实施”的原则。
立项阶段:
可委托专业技术咨询机构或者专家进行项目的可行性分析,需求分析;根据需求分析,进行系统设计;根据需求分析、系统设计,计算工作量,估算项目建设费(预算);根据项目概算进行招投标,确定软件开发商,签订建设合同。
建设阶段:
由软件开发商根据前期需求分析和系统设计,进行编码实现,并负责安装实施、运行维护等工作。项目实施完毕,需委托第三方测试机构进行验收测试。
完成阶段:
项目完成后,在需求变更较大的情形下,可委托专业技术机构根据实际工作量估算项目建设费(决算),项目结束。
2.2各阶段费用构成
各阶段的所有费用可分为四类:
包括立项阶段的可行性分析,需求分析、系统设计、估价、招投标等方面的工作所需要支出的费用。
服务费:第三方测试机构的验收测试费、监理单位的监理费、进行数据扫描录入等方面工作的数据处理费等。
建设费:软件开发商在开发、实施、维护等方面工作的费用。其中包括:软件开发费、系统实施费、运行维护费。
附加费:针对具有特殊性质的软件开发项目。如:若需要提交源程序,必须增加知识产权费;若涉及保密方面的工作,则须增加保密费用等。
软件项目费用构成2.3项目费用概算
依上所述,软件项目从立项到结束,项目费用为:
项目概算 =咨询费+建设费+服务费+附加费
3.各项费用取费依据
3.1咨询费
指软件项目立项前期,请专业机构或者专家进行技术咨询、可行性分析、需求分析,造价评估、方案设计、项目招标代理等方面工作所发生的费用。该部分费用可根据项目预计投入的建设费按照一定比例计取,也可以根据所投入的人月数进行计取,此外还可以由双方协商确定。
在招标活动中,公证处对全过程进行现场公证并对采购合同进行公证,公证费按照国家规定标准计算。
软件行业咨询费标准公证费收取标准注:
1.按表1计费不足元的,按元收费。
2.按表2计费不足元的,按元收费。
3.技术咨询按耗用工时(日)计费,为完成委托任务发生的差旅、交通费由委托方另行支付。
4.招标代理收费和公证服务收费按差额定率累进法计算。
5.如某招标代理业务中标金额为万元,计算招标代理费如下:
万元*1.0%=1万元
(-)万元*0.8%=1.6万元
(-)万元*0.7%=1.4万元
(-)万元*0.55%=0.55万元
则合计收费:1+1.6+1.4+0.55=4.55万元
3.2建设费
l建设费包括支付给软件开发商的进行软件开发、实施、维护等方面工作的费用。主要依据工作量(完成该项目需要投入的人力,以人月度量)和人月成本进行估算。
l建设费=(开发工作量+实施工作量+运行维护工作量)×人月成本
工作量估算方法
工作量指在软件项目建设过程中需要投入的人力和时间,一般用人月数进行度量。项目建设阶段一般可分为:开发阶段、实施阶段、运行维护阶段。故在工作量需分阶段进行估算。
工作量=开发工作量+实施工作量+维护工作量
3.2.1开发阶段工作量估算开发工作量是计算实施阶段和维护阶段工作量的基础。主要有两种估算方法。(1)功能点估算法(2)任务估算法
3.2.1.1功能点估算法
l该方法主要是依据软件项目的功能需求来评估开发工作量。通过分析系统需求计算项目规模(功能点数),再乘以各阶段完成每个功能点所需要投入的人工时(开发成本系数),就可计算出完成项目所需要的人月数。适用于立项阶段需求分析比较详细的项目或者用于项目完成阶段的最终工作量估算。
l开发工作量D(人月)=(项目功能点FP*开发成本系数k/H/W)
l其中H是指国家规定的一天工作时数,W指一个月工作天数。
l功能点FP的估算详见附录—软件项目功能点估算法。
开发成本系数k的大小主要是考虑项目的非技术难度,如开发周期、协调难度、业务的复杂程度、需求的不确定性等因素。根据对实际数据的测算,开发成本系数k取值范围一般为:
3.2.1.2任务估算法
任务估算法是把软件项目功能分解为若干个相对独立的任务,再分别估计完成每个任务需要的人员搭配比例及投入时间,每个人员的工作量之和就是该任务的工作量。最后将各个任务的工作量累加起来就得出软件项目的总工作量。该方法适用于立项阶段的工作量估算。
依据软件工程的概念、国内软件开发行业的惯例及经验值,软件开发工作可分为:设计、编码、测试。
l以程序员的工作量为标准;
l高级程序员的工作量为标准工作量的1.5倍;
l系统分析员的工作量为标准工作量的2.5倍;
l测试工程师的工作量为标准工作量;
l高级测试工程师的工作量为标准工作量的1.5倍;
l项目管理人员的工作量为标准工作量的3倍;
l市场营销人员的工作量为标准工作量;
l技术支持工程师的工作量为标准工作量;
l文秘的工作量为标准工作量的0.5倍;
例如:完成某个任务的人员投入和时间需求,则其工作量为60.5人月。
3.2.2实施阶段工作量估算
软件项目的实施范围因项目而异(有些项目只实施一个单位、有些需要实施多个单位、有些甚至需要全市、全省甚至全国实施),所以实施阶段的费用也会有很大的差异,甚至有的项目会出现实施费用超过开发费用的情形。
实施阶段的工作量可依据开发阶段工作量、实施系数来计算。
实施工作量(人月)=开发工作量D*实施系数s
根据项目是集中式实施还是分布式实施,实施系数s的取值有所不同。
(1)集中式实施的项目
实施系数s与“用户数”相关。设n为用户数,一般情况下:
当0n≤时,s=0.2;
否则,s=0.2+((n-)/)*q(四舍五入取两位小数);
q是调节因子,取值范围为:0.03≤q≤0.05,具体取值依项目实施难度而定。
(2)分布式实施的项目
实施系数s与“实施单位(点)数”相关。设n为需要实施的单位(点)数,一般情况下:
s=0.2+(n-1)*q
q是调节因子,一般取值范围为:0.08≤q≤0.15,具体取值依项目实施难度而定。
3.2.3维护阶段工作量估算
软件项目通过验收,交付使用后,需进行一年的系统维护。维护内容包括:运行管理、系统平台维护、应用软件维护、数据维护等。根据不同的用户要求,系统维护服务可分为以下两种情形:
A级
软件企业派出技术人员常驻用户处,解决日常运行中发生的问题。则其工作量由派驻人员的数目和派驻的时间决定。
软件(系统)维护工作量=派驻的人员数*时间(月)
B级:软件企业在国家规定的正常工作时间,按双方约定的条件和时间到达现场,且每月(或定期)派技术人员到现场进行软件(系统)性能调试,使之运行处于良好状态。则B级的维护工作所需工作量依据开发工作量、实施工作量、维护系数来计算。
运行维护工作量(人月)=(开发工作量+实施工作量)*维护系数w
=(开发工作量+开发工作量*实施系数s)*维护系数w
=D*(1+s)*w
维护系数w取值范围为0.15-0.20,具体取值依项目维护难度而定
针对个别项目,如果对维护有特殊要求(这些特殊要求是一般项目中从未出现过的),则经专业机构或者专家评估,维护成本系数可以不受此限制。
3.2.4人月成本估算方法
软件开发项目成本计算中应包括软件项目在开发过程中所耗费的各项费用,包括从设计阶段到测试完毕交付用户使用之间所发生的工资费、材料费、外协费、试验费、固定资产使用费、交通费、管理费等。一般用人月成本作为度量指标。
人月成本是指软件企业一个月平均需要的所有成本开销(包括工资、奖金、福利、办公成本、国家各种税费、管理费用等等)及软件企业合理利润的总和,除以企业员工人数。其成本开销主要包括以下方面:
1)工资:指软件企业需要支付给软件开发人员的工资的平均值,设该值为B。
2)国家规定的福利:按照国家*策的缴费基数缴纳的职工福利,其中公积金8%~20%(此处按8%计),医疗保险金12%,养老金22%,失业金2%(即通常所说的四金),另外还有按工资总额计征的工伤保证金0.5%,生育保证金0.5%,残疾基金1.6%,工会基金1%,累计为47.6%。故该项成本为0.B。
3)奖金及各项物质奖励:指企业支付给企业的奖金及过年过节的一些物质奖励和基本福利。根据经验及广东省软件行业情况,该项成本约为0.20B。
4)办公成本:包括办公场地租赁费、水电费、差旅费、企业为项目顺利运作所支付的其他费用如市场营销费等各项。根据经验及研究,该项支出约占企业员工成本的三分之一,即该项成本为B/3。
5)人力资源储备费:企业人员流动、人员储备及人员的学习、培养、知识更新,不能创造价值但需要支付成本,该项成本为0.20B。
6)基础设施建设、设备的购置、折旧费,各项开发平台、开发工具的购买等,该项成本约为0.15B。
7)国家税收和企业利润,根据经验和统计数据,约占企业员工成本的三分之一,故该项成本约为B/3。
8)管理费用:包括公司管理层,部门管理层,人力资源、行*、财务等人员的费用分摊。根据经验和行业通常计算方法,每十个软件人员配备两个管理人员,则管理费用计取的比例为前面七项总和的20%。
综合以上因素,可得出一般程序员的人月成本Q为:
Q=(工资+福利+奖金+办公成本+资源储备+基础建设+税收利润)*(1+管理费率)
=(B+0.20B+0.B+B/3+0.2B+0.15B+B/3)*1.2
=3.23*B
3.3服务费
3.3.1验收测试费
软件项目验收是一个运行环境复杂、技术难度较高、评价体系抽象的过程。该项目验收除经过专家评审外,还应进行相应验收测试,只有两者结合才能为信息化项目验收和鉴定提供定性、定量的科学依据,才能做出较为客观准确的验收和鉴定结论。
3.3.1.1功能确认测试
项目对象:省、市级信息化建设项目包括电子*务建设项目验收,各种渠道申报的与软件相关的科技项目的验收和科技成果鉴定项目。
测试内容:根据申报或鉴定合同的技术条款和软件操作手册及被测软件运行确定测试内容,一般只覆盖软件的功能性、易用性和文档。主要判断被测系统是否完成合同要求的功能及相关特性。
收费标准:-0元。
软件开发成本估算
项目对象:各类信息化建设项目包括电子*务建设项目应用发布之前的验收,各种渠道申报的与软件相关的科技项目的验收和科技成果的鉴定项目,只要用户需求和合同中的条款覆盖效率和可移植性等特性要求的项目。
测试内容:在模拟或实际环境下测试被测系统是否实现了用户需求,是否达到了国家标准的相关要求。依据用户需求分析、合同的技术条款、国家标准的特性要求、软件操作手册和被测软件运行确定测试内容。
收费标准:验收测试费=建设费D*各测试项费率之和*调节系数t
各测试项的费率及收费调节系数取值如表3、表4所示。
表3验收测试项费率表表4调节系数t取值范围3.3.2工程监理费
软件项目监理收费既考虑了信息系统软件项目的特点,又参照了其它监理行业的收费标准、收费方式。一般可按照项目建设费(或合同价格)的一定百分比取费。其取费比率主要根据项目的规模、阶段、内容、复杂程度及监理成本等多方面因素综合计算。计算公式如下:
监理费=建设费D*基本费率a*地域调整系数d*工期调整系数e
1)基本费率a根据项目建设费的规模进行调整。取值范围如下:
监理基本费率取值范围表2)鉴于软件项目实施时分布的地域会有所不同,因此,监理的费率应在基本费率的基础上考虑地域的因素。地域调整系数d取值如下:
地区范围和调整系数3)鉴于软件项目工期长短不一,因此,监理的费率应在监理的基本费率基础上考虑工期的因素。工期越长,系数越大。工期调整系数e如下:
3.3.3数据处理费
项目中如含有大量档案、数据需要录入、处理,则需要考虑相应的数据处理服务费。收费标准可以根据所需要处理的资料的页数核计收费。
一般情况下单纯的数据录入,收费标准为:0.3-0.5元/页。特殊要求的数据处理可依据合同约定。
3.4附加费
如果用户需要软件开发商提交源代码,则必须支付相应的知识产权费;如果所开发的项目是涉密项目,则需额外再支付给软件开发商保密费。这些费用的计算均与软件开发工作量相关,也就是与项目建设费相关,可按照项目建设费的一定比例计取,或者双方协商。