软件开发费用计算方法
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
完美WORD格式
软件开发项目计算方法
(V2.0)
广东软件行业协会
二○○六年八月
目录
1前言 (2)
1.1 目的 (2)
1.2 软件项目建设类别 (2)
1.3 适用范围 (2)
1.4 名词解释 (3)
2软件项目费用概算 (4)
2.1项目阶段划分 (4)
2.2 各阶段费用构成 (5)
2.3 项目费用概算 (6)
3各项费用取费依据 (7)
3.1 咨询费 (7)
3.2 建设费 (8)
3.3 服务费 (8)
3.4 附加费 (12)
3.5需求变更估算 (12)
4工作量估算方法 (13)
4.1 开发阶段工作量估算 (13)
4.2 实施阶段工作量估算 (15)
4.3 维护阶段工作量估算 (17)
5人月成本估算方法 (18)
6其他事项 (19)
6.1 最终合同金额确定 (19)
6.2 付款方式 (20)
6.3 评估机构 (20)
软件项目规模功能点估算方法 (21)
1 功能点估算流程 (21)
2 功能点分析的要素 (22)
3 功能点计算(初步值UFC) (23)
4 确定技术复杂度因子TCF (24)
5 计算调节后的功能点数FP (25)
参考文献 (26)
1前言
1.1 目的
规范软件市场行为,维护价格公平竞争,同时为软件项目建设经费概算提供科学可信的依据。
1.2 软件项目建设类别
软件产业发展到现今阶段,技术已经很成熟,产品也已经很丰富,同时由于开发工具和操作系统平台的可选择性,软件项目出现了多样化的趋势。同样是软件项目,完成途径和开发手段不同,其费用也会存在很大差异。不同类别的软件项目,其费用构成和概算方法也不同。根据项目建设要求和方式,一般分为以下几类:
新开发项目:从项目的需求分析开始直至产品完成正式交付使用,其工
作覆盖软件产品的分析、设计、测试、实施、运行维护各
阶段。
二次开发:在现有产品的基础上进行提升和改造。
软件移植:已有产品从一个操作系统平台转移到另一个操作系统平台,或者从原来的运行环境切换到另一个新的运行环境所
需要进行的调整和变动。
产品集成:将多个现有软件产品构件整合在一起,组装成比较复杂的
或者更加完整的产品。
1.3 适用范围
本指南适用于应用类定制软件的新开发项目,项目应覆盖软件开发全过
程(包括立项可行性分析,需求分析、编码实现、安装实施、运行维护各个阶段工作)。其中人月成本的计算方法也适用于其他类型的项目。
本指南是站在行业的角度,去评估一个应用软件项目的开发费用应该是多少,而不是站在开发商的角度去计算某企业开发软件时的成本支出是多少。虽然这两者之间会有关联。
对于同一软件开发项目,不同的开发商由于各自的技术、能力、管理、积累以及其他方面的因素,其实际成本支出会有较大差异。而这不在本指南考虑之内。
1.4 名词解释
应用软件:是指针对特定领域开发,为特定目的服务的一类软件。
软件开发:指从软件项目启动到项目实施前这一时间段的工作。其内容包括详细设计、编码、测试、系统调试等方面的工作。
系统实施:指软件项目开发完毕进行安装到项目正式验收这一时间段的工作。其内容包括系统安装、个性化配置、用户培训等方面的工作,
但不包括各实施点的本地化开发工作。
运行维护:指从软件项目正式验收到合同规定的项目维护期结束的这一时间段的工作。其内容包括在此期间所需要提供的原系统完善性修改
和服务等工作(不包括新增需求和原功能的重大变更)。如:运
行管理、系统平台维护、应用软件维护、数据维护等
验收测试:确定项目是否符合其验收准则,使客户能确定是否接收此项目的正式测试。
功能点(FP):功能点是对软件功能和大小的间接度量单位,一般通过必须和
用户交互的情况的数目来测算程序工作量的大小。功能点分析
法是目前国际上软件行业普遍接受的软件项目规模度量模型。成本系数:成本系数是指完成某个功能点(FP)的规定活动所需要投入的人工时,其单位为:人工时/FP。根据软件项目建设过程的各阶段
工作,可分为:开发成本系数、实施成本系数、维护成本系数。工作量:工作量的计算是按一个开发工作人员在一个月内(日历中的月,即包括国家规定的节假日)能完成的工作量为单位,也就是通常
所讲的“人月”。
人月成本:指软件企业一个月平均需要的所有开销(包括员工成本、国家税收、企业利润、管理成本和质量成本等)摊分到各个员工头上的
金额。
平均工资:指软件企业支付给所有员工的工资总和除以企业员工人数得到的工资数。
2软件项目费用概算
2.1项目阶段划分
软件项目全过程可分为:立项阶段、建设阶段、完成阶段。不同阶段工作重点不同。为保证软件项目开发质量,避免因需求不确定,或者频繁更改所造成的成本上升,同时也利于项目费用概算,软件项目建设最好采取“总体规划、分段实施”的原则。
立项阶段:可委托专业技术咨询机构或者专家进行项目的可行性分析,需求分析;根据需求分析,进行系统设计;根据需求分析、系统设计,计算
工作量,估算项目建设费(预算);根据项目概算进行招投标,确定软件开
发商,签订建设合同。
建设阶段:由软件开发商根据前期需求分析和系统设计,进行编码实现,并负责安装实施、运行维护等工作。项目实施完毕,需委托第三方测试机构
进行验收测试。
完成阶段:项目完成后,在需求变更较大的情形下,可委托专业技术机
构根据实际工作量估算项目建设费(决算),项目结束。
2.2 各阶段费用构成
各阶段的所有费用可分为四类:
咨询费:包括立项阶段的可行性分析,需求分析、系统设计、估价、招投标等方面的工作所需要支出的费用。
服务费:第三方测试机构的验收测试费、监理单位的监理费、进行数据扫描录入等方面工作的数据处理费等。
建设费:软件开发商在开发、实施、维护等方面工作的费用。其中包括:软件开发费、系统实施费、运行维护费。
附加费:针对具有特殊性质的软件开发项目。如:若需要提交源程序,必须增加知识产权费;若涉及保密方面的工作,则须增加保密
费用等。
此外,由于软件项目建设过程中,需求变更不可避免,因而还需要考虑
到因需求变更导致工作量加大带来的费用。软件项目费用构成如图1所示。