软件研发项目核算方法.docx
- 文档编号:23937022
- 上传时间:2023-05-22
- 格式:DOCX
- 页数:25
- 大小:51.55KB
软件研发项目核算方法.docx
《软件研发项目核算方法.docx》由会员分享,可在线阅读,更多相关《软件研发项目核算方法.docx(25页珍藏版)》请在冰豆网上搜索。
软件研发项目核算方法
软件研发工程核算方法
〔V1.0〕
超正软件
二○一六年七月
1前言
1.1目的
规软件市场行为,维护价格公平竞争,同时为软件工程建立经费概算提供科学可信的依据。
1.2软件工程建立类别
软件产业开展到现今阶段,技术已经很成熟,产品也已经很丰富,同时由于开发工具和操作系统平台的可选择性,软件工程出现了多样化的趋势。
同样是软件工程,完成途径和开发手段不同,其费用也会存在很大差异。
不同类别的软件工程,其费用构成和概算方法也不同。
根据工程建立要求和方式,一般分为以下几类:
新开发工程:
从工程的需求分析开场直至产品完成正式交付使用,其工作覆盖软件产品的分析、设计、测试、实施、运行维护各阶段。
二次开发:
在现有产品的根底上进展提升和改造。
软件移植:
已有产品从一个操作系统平台转移到另一个操作系统平台,或者从原来的运行环境切换到另一个新的运行环境所需要进展的调整和变动。
产品集成:
将多个现有软件产品构件整合在一起,组装成比拟复杂的或者更加完整的产品。
1.3适用围
本指南适用于应用类定制软件的新开发工程,工程应覆盖软件开发全过程〔包括立项可行性分析,需求分析、编码实现、安装实施、运行维护各个阶段工作〕。
其中人月本钱的计算方法也适用于其他类型的工程。
本指南是站在行业的角度,去评估一个应用软件工程的开发费用应该是多少,而不是站在开发商的角度去计算*企业开发软件时的本钱支出是多少。
虽然这两者之间会有关联。
对于同一软件开发工程,不同的开发商由于各自的技术、能力、管理、积累以及其他方面的因素,其实际本钱支出会有较大差异。
而这不在本指南考虑之。
1.4名词解释
应用软件:
是指针对特定领域开发,为特定目的效劳的一类软件。
软件开发:
指从软件工程启动到工程实施前这一时间段的工作。
其容包括详细设计、编码、测试、系统调试等方面的工作。
系统实施:
指软件工程开发完毕进展安装到工程正式验收这一时间段的工作。
其容包括系统安装、个性化配置、用户培训等方面的工作,但不包括各实施点的本地化开发工作。
运行维护:
指从软件工程正式验收到合同规定的工程维护期完毕的这一时间段的工作。
其容包括在此期间所需要提供的原系统完善性修改和效劳等工作〔不包括新增需求和原功能的重大变更〕。
如:
运行管理、系统平台维护、应用软件维护、数据维护等
验收测试:
确定工程是否符合其验收准则,使客户能确定是否接收此工程的正式测试。
功能点(FP):
功能点是对软件功能和大小的间接度量单位,一般通过必须和用户交互的情况的数目来测算程序工作量的大小。
功能点分析法是目前国际上软件行业普遍承受的软件工程规模度量模型。
本钱系数:
本钱系数是指完成*个功能点〔FP〕的规定活动所需要投入的人工时,其单位为:
人工时/FP。
根据软件工程建立过程的各阶段工作,可分为:
开发本钱系数、实施本钱系数、维护本钱系数。
工作量:
工作量的计算是按一个开发工作人员在一个月〔日历中的月,即包括国家规定的节假日〕能完成的工作量为单位,也就是通常所讲的"人月〞。
人月本钱:
指软件企业一个月平均需要的所有开销〔包括员工本钱、国家税收、企业利润、管理本钱和质量本钱等〕摊分到各个员工头上的金额。
平均工资:
指软件企业支付给所有员工的工资总和除以企业员工人数得到的工资数。
2软件工程费用概算
2.1工程阶段划分
软件工程全过程可分为:
立项阶段、建立阶段、完成阶段。
不同阶段工作重点不同。
为保证软件工程开发质量,防止因需求不确定,或者频繁更改所造成的本钱上升,同时也利于工程费用概算,软件工程建立最好采取"总体规划、分段实施〞的原则。
立项阶段:
可委托专业技术咨询机构或者专家进展工程的可行性分析,需求分析;根据需求分析,进展系统设计;根据需求分析、系统设计,计算工作量,估算工程建立费〔预算〕;根据工程概算进展招投标,确定软件开发商,签订建立合同。
建立阶段:
由软件开发商根据前期需求分析和系统设计,进展编码实现,并负责安装实施、运行维护等工作。
工程实施完毕,需委托第三方测试机构进展验收测试。
完成阶段:
工程完成后,在需求变更较大的情形下,可委托专业技术机构根据实际工作量估算工程建立费〔决算〕,工程完毕。
2.2各阶段费用构成
各阶段的所有费用可分为四类:
咨询费:
包括立项阶段的可行性分析,需求分析、系统设计、估价、招投标等方面的工作所需要支出的费用。
效劳费:
第三方测试机构的验收测试费、监理单位的监理费、进展数据扫描录入等方面工作的数据处理费等。
建立费:
软件开发商在开发、实施、维护等方面工作的费用。
其中包括:
软件开发费、系统实施费、运行维护费。
附加费:
针对具有特殊性质的软件开发工程。
如:
假设需要提交源程序,必须增加知识产权费;假设涉及方面的工作,则须增加费用等。
此外,由于软件工程建立过程中,需求变更不可防止,因而还需要考虑到因需求变更导致工作量加大带来的费用。
软件工程费用构成如图1所示。
图1 软件工程费用构成
2.3工程费用概算
依上所述,软件工程从立项到完毕,工程费用为:
工程概算 =咨询费+建立费+效劳费〔+需求变更费+附加费〕
=咨询费+开发费+实施费+维护费+验收测试费+监理费
〔+需求变更费+附加费〕
3各项费用取费依据
3.1咨询费
指软件工程立项前期,请专业机构或者专家进展技术咨询、可行性分析、需求分析,造价评估、方案设计、工程招标代理等方面工作所发生的费用。
该局部费用可根据工程预计投入的建立费按照一定比例计取,也可以根据所投入的人月数进展计取,此外还可以由双方协商确定。
在招标活动中,公证处对全过程进展现场公证并对采购合同进展公证,公证费按照国家规定标准计算。
表1软件行业咨询取费标准
收费工程
收费基数
基准费率〔%〕
≤100万
101-300万
301-500万
501-1000万
1001-3000万
>3000万
需求分析、可行性分析、系统设计等
工程预投入费
8.3
7.8
7.3
6.7
5.4
4.5
估价
工程预投入费
3.6
3.0
2.5
2.2
1.8
1.5
招标代理
中标金额
1.0
0.8
0.7
0.55
0.35
0.3
技术咨询
每人每日
1000元~1500元
表2公证效劳取费标准
标的额m〔万元〕
≤2
2 5 10 50 100 200 300 >400 费率(%) 1 0.8 0.6 0.5 0.4 0.3 0.2 0.1 0.05 注: 1)按表1计费缺乏1000元的,按1000元收费。 2)按表2计费缺乏200元的,按200元收费。 3)技术咨询按耗用工时〔日〕计费,为完成委托任务发生的差旅、交通费由委托方另行支付。 4)招标代理收费和公证效劳收费按差额定率累进法计算。 如*招标代理业务中标金额为600万元,计算招标代理费如下: 100万元*1.0%=1万元 〔300-100〕万元*0.8%=1.6万元 〔500-300〕万元*0.7%=1.4万元 〔600-500〕万元*0.55%=0.55万元 则合计收费: 1+1.6+1.4+0.55=4.55万元 3.2建立费 建立费包括支付给软件开发商的进展软件开发、实施、维护等方面工作的费用。 主要依据工作量〔完成该工程需要投入的人力,以人月度量〕和人月本钱进展估算。 建立费=开发费+实施费+运行维护费 =〔开发工作量+实施工作量+运行维护工作量〕×人月本钱 3.3效劳费 3.3.1验收测试费 软件工程验收是一个运行环境复杂、技术难度较高、评价体系抽象的过程。 该工程验收除经过专家评审外,还应进展相应验收测试,只有两者结合才能为信息化工程验收和鉴定提供定性、定量的科学依据,才能做出较为客观准确的验收和鉴定结论。 软件工程的验收测试是根据工程的特点〔功能、技术需求和大小等〕以及工程投入,按照评价软件质量的功能性、易用性、可靠性、可维护性、可移植性、效率和文档等7个特性进展特性裁减,分为功能确认测试和验收测试。 1〕功能确认测试 工程对象: 省、市级信息化建立工程包括电子政务建立工程验收,各种渠道申报的与软件相关的科技工程的验收和科技成果鉴定工程。 测试容: 根据申报或鉴定合同的技术条款和软件操作手册及被测软件运行确定测试容,一般只覆盖软件的功能性、易用性和文档。 主要判断被测系统是否完成合同要求的功能及相关特性。 收费标准: 8000-10000元。 2〕工程验收测试 工程对象: 各类信息化建立工程包括电子政务建立工程应用发布之前的验收,各种渠道申报的与软件相关的科技工程的验收和科技成果的鉴定工程,只要用户需求和合同中的条款覆盖效率和可移植性等特性要求的工程。 测试容: 在模拟或实际环境下测试被测系统是否实现了用户需求,是否到达了国家标准的相关要求。 依据用户需求分析、合同的技术条款、国家标准的特性要求、软件操作手册和被测软件运行确定测试容。 收费标准: 验收测试费=建立费D*各测试项费率之和*调节系数t 各测试项的费率及收费调节系数取值如表3、表4所示。 表3验收测试项费率表 序号 测试项 子特性 费率〔a%〕 1 功能性 功能点"100 a≥2.8 功能点>100 a≥3 2 易用性 易理解性 a≥0.07 易学性 a≥0.06 易操作性 a≥0.07 3 可靠性 成熟性 a≥0.2 容错性 a≥0.2 易恢复性 a≥0.1 4 维护性 易改变性 a≥0.07 稳定性 a≥0.07 易测试性 a≥0.06 5 可移植性 一个环境下测试 a≥0.2 多个测试环境,测试环境数n a≥0.2+(n-1)*0.1 6 效率 一般的效率指标 a≥1 负载 压力 测试 并发用户数≤50,测试脚本数≤3, a≥1; 每增加50个以用户数或3个以下测试脚本数, a递增0.5 7 文档 用户文档 a≥0.1 技术合同 a≥0.05 需求规格说明书 a≥0.1 表4调节系数t取值围 序号 工程建立费D〔万元〕 收费折扣系数(t) 1 D≤200 ≥1 2 200 ≥0.98 3 500 ≥0.96 4 1000 ≥0.95 5 2000 ≥0.93 6 5000 ≥0.92 7 D≥10000 ≥0.90 注: 1〕影响工程验收测试费用的因素一个是工程的大小,另一个是所选择的测试项。 被选测试项多少决定测试费率a,工程大小决定收费调节系数L; 2〕根据工程特点针对软件各个特性进展选择测试,测试费率为所选择软件特性测试费率a各项之和。 3〕根据工程大小采取工程建立费越高费率越低原则进展调节。 4〕工程验收测试最低收费为: 8000元〔不含负载压力测试〕 2万元〔含负载压力测试〕 3.3.2工程监理费 软件工程监理收费既考虑了信息系统软件工程的特点,又参照了其它监理行业的收费标准、收费方式。 一般可按照工程建立费(或合同价格)的一定百分比取费。 其取费比率主要根据工程的规模、阶段、容、复杂程度及监理本钱等多方面因素综合计算。 计算公式如下: 监理费=建立费D*根本费率a*地域调整系数d*工期调整系数e 1〕根本费率a根据工程建立费的规模进展调整。 取值围如下: 表5 监理根本费率a取值围 序号 工程建立费D〔万元〕 费率a〔%〕 1 D≤200 >12 2 200<D≤500 >9 3 500<D≤1000 >7 4 1000<D≤2000 >6 5 2000<D≤5000 >5 6 5000<D≤10000 >4 7 D>10000 >3 2〕鉴于软件工程实施时分布的地域会有所不同,因此,监理的费率应在根本费率的根底上考虑地域的因素。 地域调整系数d取值如下: 表6地域凋整系数d取值围 序号 地域围 地域调整系数 1 集中实施 1 2 地市围 1~1.2 3 全省围 1.2~1.5 4 全国围 1.5~2 3〕鉴于软件工程工期长短不一,因此,监理的费率应在监理的根本费率根底上考虑工期的因素。 工期越长,系数越大。 工期调整系数e如下: 表7工期调整系数e取值围 序号 工程工期T〔年〕 工期调整系数e 1 T≤1 e>0.9 2 1<T≤2 e>1.1 3 T>2 e>1.4 4〕其他 对于非监理原因造成工程延期而产生的监理附加工作,监理单位有权获得监理附加报酬。 监理附加报酬率=监理费*附加工作月数/合同规定月数。 对于工程完毕后的维护,其监理取费由用户单位和监理单位协商解决。 本参考标准未作规定的,可参考国家相关标准。 3.3.3数据处理费 工程中如含有大量档案、数据需要录入、处理,则需要考虑相应的数据处理效劳费。 收费标准可以根据所需要处理的资料的页数核计收费。 一般情况下单纯的数据录入,收费标准为: 0.3-0.5元/页。 特殊要求的数据处理可依据合同约定。 3.4附加费 如果用户需要软件开发商提交源代码,则必须支付相应的知识产权费;如果所开发的工程是涉密工程,则需额外再支付给软件开发商费。 这些费用的计算均与软件开发工作量相关,也就是与工程建立费相关,可按照工程建立费的一定比例计取,或者双方协商。 3.5需求变更估算 由于软件开发过程中,用户的需求有可能不断变化,从而导致开发工作量的变化,费用追加。 故在立项阶段即要请专业机构或者专家对需求变更的风险性进展评估,以便在做工程预算时留出足够应付需求变更的经费。 工程需求变更一般发生在工程建立过程中,立项阶段的咨询效劳不受需求变化的影响。 但验收测试和工程监理工作量会随着需求变化而加大,所以需求变更费为: 需求变更费=〔建立费+验收测试费+监理费〕*需求变更风险系数f 风险系数f可依据以下因素确定: 1)工程的成熟度: 如果是新工程,则开发过程中出现需求变更的可能性很大,且需求变更幅度大,风险系数就高;如果是成熟工程,或者已经有过案例的工程,则需求变化的可能性较小,即使有变化,幅度也不会太高,则风险系数就低。 2)工程的规模大小: 如果工程规模小,需求容易确定,变更几率就小,反之就大; 3)用户业务的稳定性和管理的规性: 用户单位业务的变化和业务流程的调整,都有可能带来开发过程中需求的变化。 4)前期工程需求分析、系统设计的规性和完善性: 前期的需求分析是否全面到位、系统设计的是否规和细致,会影响到开发过程的需求变化率。 4工作量估算方法 工作量指在软件工程建立过程中需要投入的人力和时间,一般用人月数进展度量。 工程建立阶段一般可分为: 开发阶段、实施阶段、运行维护阶段。 故在工作量需分阶段进展估算。 工作量=开发工作量+实施工作量+维护工作量 另: 由于在软件工程开发过程中,因需求变更导致工作量改变的情形不可防止,故可分别在立项阶段进展工作量预算,在工程完成阶段进展工作量核算。 4.1开发阶段工作量估算 开发工作量是计算实施阶段和维护阶段工作量的根底。 主要有两种估算方法。 4.1.1功能点估算法 该方法主要是依据软件工程的功能需求来评估开发工作量。 通过分析系统需求计算工程规模〔功能点数〕,再乘以各阶段完成每个功能点所需要投入的人工时〔开发本钱系数〕,就可计算出完成工程所需要的人月数。 适用于立项阶段需求分析比拟详细的工程或者用于工程完成阶段的最终工作量估算。 开发工作量D〔人月〕=〔工程功能点FP*开发本钱系数k/H/W〕 其中H是指国家规定的一天工作时数,W指一个月工作天数。 功能点FP的估算详见附录—软件工程功能点估算法。 开发本钱系数k的大小主要是考虑工程的非技术难度,如开发周期、协调难度、业务的复杂程度、需求的不确定性等因素。 根据对实际数据的测算,开发本钱系数k取值围一般为: 表8 开发本钱系数k取值围 功能点数(FP) 开发本钱系数〔人工时/FP〕 "3000 3.5~4.0 3000〈FP"8000 4.0~4.5 〉8000 4.5~5.0 针对个别工程,如果有特殊情况〔如*些用户业务的特殊要一般工程中从未出现过的、开发人员需要到用户现场开发等〕,则经专业咨询机构或者专家评估,开发本钱系数可以超出此围上限的限制。 4.1.2任务估算法 任务估算法是把软件工程功能分解为假设干个相对独立的任务,再分别估计完成每个任务需要的人员搭配比例及投入时间,每个人员的工作量之和就是该任务的工作量。 最后将各个任务的工作量累加起来就得出软件工程的总工作量。 该方法适用于立项阶段的工作量估算。 依据软件工程的概念、国软件开发行业的惯例及经历值,软件开发工作可分为: 设计、编码、测试。 设计各个岗位人员工作量可基于以下标准计算: (1)以程序员的工作量为标准; (2)高级程序员的工作量为标准工作量的1.5倍; (3)系统分析员的工作量为标准工作量的2.5倍; (4)测试工程师的工作量为标准工作量; (5)高级测试工程师的工作量为标准工作量的1.5倍; (6)工程管理人员的工作量为标准工作量的3倍; (7)市场营销人员的工作量为标准工作量; (8)技术支持工程师的工作量为标准工作量; (9)文秘的工作量为标准工作量的0.5倍; 例如: 完成*个任务的人员投入和时间需求如表9,则其工作量为60.5 人月。 表9*任务工作量估算表 开发阶段 投入人员情况 时间〔月〕 工作量〔人月〕 需求分析 系统分析员2人 2 2*2*2.5=10 系统设计 系统分析员1人 2 1*2*2.5=5 高级程序员2人 2 2*2*1.5=6 编码 高级程序员2人 1 2*1*1.5=3 程序员4人 1 4*1*1=4 测试 测试工程师4人 2 4*2*1=8 工程管理 工程管理人员1人 7 1*7*3=21 文案工作 文秘1人 7 1*7*0.5=3.5 合计: 60.5〔人月〕 4.2实施阶段工作量估算 软件工程的实施围因工程而异〔有些工程只实施一个单位、有些需要实施多个单位、有些甚至需要全市、全省甚至全国实施〕,所以实施阶段的费用也会有很大的差异,甚至有的工程会出现实施费用超过开发费用的情形。 实施阶段的工作量可依据开发阶段工作量、实施系数来计算。 实施工作量〔人月〕=开发工作量D*实施系数s 根据工程是集中式实施还是分布式实施,实施系数s的取值有所不同。 1)集中式实施的工程 实施系数s与"用户数〞相关。 设n为用户数,一般情况下: 当0 否则,s=0.2+〔〔n-100〕/100〕*q〔四舍五入取两位小数〕; q是调节因子,取值围为: 0.03≤q≤0.05,具体取值依工程实施难度而定。 2)分布式实施的工程 实施系数s与"实施单位〔点〕数〞相关。 设n为需要实施的单位〔点〕数,一般情况下: s=0.2+〔n-1〕*q q是调节因子,一般取值围为: 0.08≤q≤0.15,具体取值依工程实施难度而定。 3)个别工程,如果对实施有特殊要求〔这些特殊要一般工程中从未出现过的或有本地化开发工作的〕,或者实施环境、条件、难度等方面因素的影响,则经专业机构或者专家评估,实施系数可以超出此围上限的限制。 4)如果软件工程是系统集成工程中的一局部,实施时需要整体考虑,则可将实施费抽出另算。 一种是将软件实施费并入到整个集成工程的实施费用中,另一种就是在软件实施费中参加工程集成的实施费用。 4.3维护阶段工作量估算 软件工程通过验收,交付使用后,需进展一年的系统维护。 维护容包括: 运行管理、系统平台维护、应用软件维护、数据维护等。 根据不同的用户要求,系统维护效劳可分为以下两种情形: A级 软件企业派出技术人员常驻用户处,解决日常运行中发生的问题。 则其工作量由派驻人员的数目和派驻的时间决定。 软件〔系统〕维护工作量=派驻的人员数*时间〔月〕 B级 软件企业在国家规定的正常工作时间,按双方约定的条件和时间到达现场,且每月〔或定期〕派技术人员到现场进展软件〔系统〕性能调试,使之运行处于良好状态。 则B级的维护工作所需工作量依据开发工作量、实施工作量、维护系数来计算。 运行维护工作量〔人月〕=〔开发工作量+实施工作量〕*维护系数w =〔开发工作量+开发工作量*实施系数s〕*维护系数w =D*〔1+s〕*w 维护系数w取值围为0.15-0.20,具体取值依工程维护难度而定。 针对个别工程,如果对维护有特殊要求〔这些特殊要一般工程中从未出现过的〕,则经专业机构或者专家评估,维护本钱系数可以不受此限制。 备注: 系统后期维护: 系统运行一年之后的系统维护,需另行签订系统维护合约。 为了有利于保证用户的利益和扶植软件企业,在维护工作围不变的前提下,如果新维护合同的维护费用不超过上一年度维护金额的115%,则用户应该和原开发商直接签订维护合同,否则由可进展招投标并确定新维护合同的工程承当单位。 5人月本钱估算方法 软件开发工程本钱计算中应包括软件工程在开发过程中所消耗的各项费用,包括从设计阶段到测试完毕交付用户使用之间所发生的工资费、材料费、外协费、试验费、固定资产使用费、交通费、管理费等。 一般用人月本钱作为度量指标。 人月本钱是指软件企业一个月平均需要的所有本钱开销〔包括工资、奖金、福利、办公本钱、国家各种税费、管理费用等等〕及软件企业合理利润的总和,除以企业员工人数。 其本钱开销主要包括以下方面: 1〕工资: 指软件企业需要支付给软件开发人员的工资的平均值,设该值为B。 2〕国家规定的福利: 按照国家政策的缴费基数缴纳的职工福利,其中公积金8%~20%〔此处按8%计〕,医疗保险金12%,养老金22%,失业金2%〔即通常所说的四金〕,另外还有按工资总额计征的工伤保证金0.5%,生育保证金0.5%,残疾基金1.6%,工会基金1%,累计为47.6%。 故该项本钱为0.476B。 3〕奖金及各项物质奖励: 指企业支付给企业的奖金及过年过节的一些物质奖励和根本福利。 根据经历及省软件行业情况,该项本钱约为0.20B。 4〕办公本钱: 包括办公场地租赁费、水电费、差旅费、企业为工程顺利运作所支付的其他费用如市场营销费等各项。 根据经历及研究,该项支出约占企业员工本钱的三分之一,即该项本钱为B/3。 5〕人力资源储藏费: 企业人员流动、人员储藏及人员的学习、培养、知识更新,不能创造价值但需要支付本钱,该项本钱为0.20B。 6〕根底设施建立、设备的购置、折旧费,各项开发平台、开发工具的购置等,该项本钱约为0.15B。 7〕国家税收和企业利润,根据经历和统计数据,约占企业员工本钱的三分之一,故该项本钱约为B/3。 8〕管理费用: 包括公司管理层,部门管理层,人力资源、行政、财务等人员的费用分摊。 根据经历和行业通常计算方法,每十个软件人员配备两个管理人员,则管理费用计取的比例为前面七项总和的20%。 综合以上因素,可得出一般程序员的人月本钱Q为: Q=〔工资+福利+奖金+办公本钱+资源储藏+根底建立+税收利润〕*(1+管理费率) =(B+0.20B+0.476B+B/3+0.2B+0.15
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件 研发 项目 核算 方法
![提示](https://static.bdocx.com/images/bang_tan.gif)