当前位置:文档之家› 软件开发项目概算指南

软件开发项目概算指南

软件开发项目概算指南目录1前言 (2)1.1 目的 (2)1.2 软件项目建设类别 (2)1.3 适用范围 (2)1.4 名词解释 (3)2软件项目费用概算 (4)2.1 软件项目阶段 (4)2.1.1立项阶段 (4)2.1.2 建设阶段 (4)2.1.3 完成阶段 (4)2.2 各阶段项目费用构成 (4)2.3 项目费用概算 (5)2.4 需求变更估算 (6)3各项费用取费依据 (7)3.1 咨询费 (7)3.2 建设费 (8)3.2.1 开发费 (8)3.2.2 实施费 (8)3.2.3 运行维护费 (9)3.3 服务费 (10)3.3.1 验收测试费 (10)3.3.2 工程监理费 (12)3.3.3 数据处理费 (14)3.4 附加费 (14)4软件项目规模功能点估算方法 (14)4.1 功能点估算流程 (15)4.2 功能点分析的要素 (15)4.3 功能点计算(初步值UFC) (16)4.4 确定技术复杂度因子TCF (17)4.5 计算调节后的功能点数FP (18)5软件行业人月成本估算方法 (18)6开发商软件项目建设能力评估 (20)7实际案例分析 (21)8其他事项 (22)8.1 最终合同金额确定 (22)8.2 付款方式 (22)8.3 评估机构 (22)参考文献 (23)1前言1.1 目的规范软件市场行为,维护价格公平竞争,同时为软件项目建设经费概算提供科学可信的依据。

1.2 软件项目建设类别软件产业发展到现今阶段,技术已经很成熟,产品也已经很丰富,同时由于开发工具和操作系统平台的可选择性,软件项目出现了多样化的趋势。

同样是软件项目,完成途径和开发手段不同,其费用也会存在很大差异。

不同类别的软件项目,其费用构成和概算方法也不同。

根据项目建设要求和方式,一般分为以下几类:新开发项目:从项目的需求分析开始直至产品完成正式交付使用,其工作覆盖软件产品的分析、设计、测试、实施、运行维护各阶段。

二次开发:在现有产品的基础上进行提升和改造。

软件移植:已有产品从一个操作系统平台转移到另一个操作系统平台,或者从原来的运行环境切换到另一个新的运行环境所需要进行的调整和变动。

产品集成:将多个现有软件产品构件整合在一起,组装成比较复杂的或者更加完整的产品。

1.3 适用范围本指南适用于应用类定制软件的新开发项目,项目应覆盖软件开发全过程(包括立项可行性分析,需求分析、编码实现、安装实施、运行维护各个阶段工作)。

本指南是站在行业的角度,去评估一个应用软件开发项目的开发费用应该是多少,而不是站在开发商的角度去计算某企业开发软件时的成本支出是多少。

虽然这两者之间会有关联。

对于同一软件开发项目,不同的开发商由于各自的技术、能力、管理、积累以及其他方面的因素,其实际成本支出会有较大差异。

而这不在本指南考虑之内。

1.4 名词解释应用软件:是指针对特定领域开发,为特定目的服务的一类软件。

软件开发:指从软件项目启动到项目实施前这一时间段的工作。

其内容包括详细设计、编码、测试、系统调试等方面的工作。

系统实施:指软件项目开发完毕进行安装到项目正式验收这一时间段的工作。

其内容包括系统安装、个性化配置、用户培训等方面的工作,但不包括各实施点的本地化开发工作。

运行维护:指从软件项目正式验收到合同规定的一年项目维护期结束的这一时间段的工作。

其内容包括在此期间所需要提供的原系统完善性修改和服务等工作(不包括新增需求和原功能的重大变更)。

验收测试:确定项目是否符合其验收准则,使客户能确定是否接收此项目的正式测试。

功能点(FP):功能点是对软件功能和大小的间接度量单位,一般通过必须和用户交互的情况的数目来测算程序工作量的大小。

功能点分析法是目前国际上软件行业普遍接受的软件项目规模度量模型。

成本系数:成本系数是指完成某个功能点(FP)的规定活动所需要投入的人工时,其单位为:人工时/FP。

根据软件项目建设过程的各阶段工作,可分为:开发成本系数、实施成本系数、维护成本系数。

工作量:工作量的计算是按一个开发工作人员在一个月内(日历中的月,即包括国家规定的节假日)能完成的工作量为单位,也就是通常所讲的“人月”。

人月成本:指软件企业一个月平均需要的所有开销(包括员工成本、国家税收、企业利润、管理成本和质量成本等)摊分到各个员工头上的金额。

平均工资:指软件企业支付给所有员工的工资总和除以企业员工人数得到的工资数。

2软件项目费用概算2.1 软件项目阶段为保证软件项目开发质量,避免因需求不确定,或者频繁更改所造成的成本上升,同时也利于项目费用概算,软件项目建设最好采取“总体规划、分段实施”的原则。

软件项目全过程可分为:立项阶段、建设阶段、完成阶段。

不同阶段工作重点不同,而监理可以是全过程监理,也可在某一阶段介入。

2.1.1立项阶段可委托专业技术咨询机构或者专家进行项目的可行性分析,需求分析;根据需求分析,进行系统设计;根据需求分析、系统设计,计算工作量,估算项目建设费(预算);根据项目概算进行招投标,确定软件开发商,签定建设合同。

2.1.2 建设阶段由软件开发商根据前期需求分析和系统设计,进行编码实现,并负责安装实施、运行维护等工作。

项目实施完毕,一般需委托第三方测试机构进行验收测试。

2.1.3 完成阶段项目完成后,在需求变更较大的情形下,可委托专业技术机构根据实际工作量估算项目建设费(决算),项目结束。

2.2 各阶段项目费用构成软件项目工作内容可分为:咨询、设计、估价、开发、实施、验收、维护,此外还有监理。

其中完成各项工作并需要费用的主体有:咨询机构(或者专家)、软件开发商、第三方测试机构、监理单位。

我们用一个二维表来表示主体、工作内容和项目费用的对应关系,如下表所示。

表1 软件项目建设过程费用表此外,软件知识产权是有价值并得到保护的,对于提供软件产品源代码和不提供源代码在价格上会有较大区别。

如果需要开发商提供源代码,则需要考虑增加相应的知识产权费。

有的项目是涉密项目,这无形中会增加开发商的保密成本,所以在项目经费估算时亦应该考虑这部分费用。

如果项目中涉及到大量数据录入处理工作,如:档案资料、电子表单、统计数据等方面的录入、扫描工作,则该部分也存在费用,可根据数据量按照规定的收费标准计算。

我们可将各阶段的所有费用分为四类:咨询费:包括立项阶段的可行性分析,需求分析、系统设计、估价、招投标等方面的工作所需要支出的费用。

服务费:第三方测试机构的验收测试费、监理单位的监理费、进行数据扫描录入等方面工作的数据处理费等建设费:软件开发商在开发、实施、维护等方面工作的费用。

附加费:包括需要提交源代码情况下的知识产权费、需要进行保密方面工作的保密费等方面的费用。

2.3 项目费用概算依上所述,软件项目从立项到结束,总费用为:项目概算= 项目总费用= 咨询费+建设费+服务费= 咨询费+开发费+实施费+维护费+验收测试费+监理费如果需要提交源程序,则需增加知识产权费;如果涉及到保密工作,则需考虑保密费用。

项目概算= 项目总费用+附加费= 咨询费+建设费+服务费+附加费(产权费、保密费)2.4 需求变更估算由于软件开发过程中,用户的需求有可能不断变化,从而导致开发工作量的变化,费用追加。

故在立项阶段即要请专业机构或者专家对需求变更的风险性进行评估,以便在做项目预算时留出足够应付需求变更的经费。

项目需求变更一般发生在项目建设过程中,立项阶段的咨询服务不受需求变化的影响。

但验收测试和工程监理工作量会随着需求变化而加大,所以需求变更费为:需求变更费 =(项目建设费+验收测试费+监理费)x需求变更风险系数f风险系数f可依据以下因素确定:1)项目的成熟度:如果是新项目,则开发过程中出现需求变更的可能性很大,且需求变更幅度大,风险系数就高;如果是成熟项目,或者已经有过案例的项目,则需求变化的可能性较小,即使有变化,幅度也不会太高,则风险系数就低。

2)项目的规模大小:如果项目规模小,需求容易确定,变更几率就小,反之就大;3)用户业务的稳定性和管理的规范性:用户单位业务的变化和业务流程的调整,都有可能带来开发过程中需求的变化。

4)前期项目需求分析、系统设计的规范性和完善性:前期的需求分析是否全面到位、系统设计的是否规范和细致,会影响到开发过程的需求变化率。

3各项费用取费依据3.1 咨询费指软件项目立项前期,请专业机构或者专家进行技术咨询、可行性分析、需求分析,造价评估、方案设计、项目招标代理等方面工作所发生的费用。

该部分费用可根据项目预计投入的建设费按照一定比例计取,也可以根据所投入的人月数进行计取,此外还可以由双方协商确定。

在招标活动中,公证处对全过程进行现场公证并对采购合同进行公证,公证费按照国家规定标准计算。

表2 软件行业咨询取费标准表3 公证服务取费标准1)按表2计费不足1000元的,按1000元收费。

2)按表3计费不足200元的,按200元收费。

3)技术咨询按耗用工时(日)计费,为完成委托任务发生的差旅、交通费由委托方另行支付。

4)招标代理收费和公证服务收费按差额定率累进法计算。

如某招标代理业务中标金额为600万元,计算招标代理费如下:100万元x 1.0% = 1万元(300-100)万元x 0.8% = 1.6万元(500-300)万元x 0.7% = 1.4万元(600-500)万元x 0.55% = 0.55万元则合计收费:1 + 1.6 + 1.4 + 0.55 = 4.55万元3.2 建设费建设费包括支付给软件开发商的进行软件开发、实施、维护等方面工作的费用。

3.2.1 开发费指编码实现(包括过程调试、测试等方面的工作)所需费用。

取费主要是依据项目规模(功能点)、开发成本系数和软件人员的人月成本进行计取。

开发费用 = 工作量(人月)x人月成本= (项目功能点x开发成本系数/7.5/22)x人月成本(其中7.5是指一天7.5个工作时,22指一月22个工作日,下同)。

开发成本系数的大小主要是考虑项目的非技术难度,如开发周期、协调难度、业务的复杂程度、需求的不确定性等因素。

根据对实际数据的测算,开发成本系数取值范围一般为:表4 开发成本系数取值范围针对个别项目,如果有特殊情况(如某些用户业务的特殊要求是一般项目中从未出现过的、开发人员需要到用户现场开发等),则经专业咨询机构或者专家评估,开发成本系数可以超出此范围上限的限制。

3.2.2 实施费软件项目的实施范围因项目而异(有些项目只实施一个单位、有些需要实施多个单位、有些甚至需要全市、全省甚至全国实施),所以实施阶段的费用也会有很大的差异,甚至有的项目会出现实施费用超过开发费用的情形。

实施费用可依据项目规模(功能点)、实施成本系数和软件人员的人月成本计取。

相关主题