软件开发报价的计算方法

软件开发报价的计算方法
软件开发报价的计算方法

软件开发报价的计算方法

1.软件开发价格估算方法

软件开发价格与工作量、商务成本、国家税收和企业利润等项有关。为了便于计算,给出一个计算公式:

软件开发价格=开发工作量×开发费用/人·月?

开发工作量

软件开发工作量与估算工作量经验值、风险系数和复用系数等项有关:?

软件开发工作量=估算工作量经验值×风险系数×复用系数?

估算工作量经验值(以A来表示)

软什开发工作量的计算,曾有人提出以源代码行或功能点来计算,这些方法实施起来均有不少难度。目前国际上仍旧按以往经验的方式加以计算,国内各软件企业也是采用经验的方式加以估算工作量。

为了更好地规范估算方法,建议可按照国家标准“GB/T 8566-2001软件生存周期过程”所规定的软件开发过程的各项活动来计算工作量。

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

特别要提醒的是软件开发过程中既包括了通常所讲的软件开发,也应包括各类软件测试的活动。

风险系数(以σ来表示)

估算工作量经验值亦会存在较大风险,造成软件危机的因素很多,这也是一个方面的因素。特别当软件企业对该信息工程项目的业务领域不熟悉或不太熟悉,而且用户又无法或不能完整明白地表达他们的真实的需求,从而造成软件企业需要不断地完善需求获取,修改设计等各项工作。因此:?

l ≤风险系数≤?

根据我们对软件企业的了解,超过估算工作量经验值的一半,已是不可接受,所以我们确定“”为极限值。当然这既要看企业的能力,也要看用户能接受的程度。

复用系数(以τ来表示)

估算工作量经验值是软件企业承担一般项目来估算的,但如果软件企业已经采用“基于构件的开发方法”,并己建立起能够复用的构件库(核心资产库),或者已有一些软件产品,仅作二次开发,从而使软件开发工作量减少。因此:?

≤复用系数≤ 1?

根据国内外软件企业在实施基于构件开发方法(软件产品线)的经验数据,提高工作效率达到25%(最高值)。

开发费用/人·月

软件企业的商务成本、国家税收、企业利润、管理成本和质量成本。均可摊分到各个软件开发人员头上。?

开发费用/人·月=(P+Q+R)× S×τ?

P(人头费)

人头费主要是员工的工资、奖金和国家规定的各项按人计算的费用。其总量在软件企业中的商务成本占70%-80%。?

P = B ×?

国家规定的公积金 7%,医疗保险金12%,养老金22%,失业金 2%(即通常所说的四金),另外还有按工资总额计征的工伤保证金%,生育保证金%,残疾基金%,工会基金2%,累计为%。

B为平均工资,即企业支付给员工的工资、奖金、物质奖励等多项总和,除以企业员工数,分摊到每个月。

Q(办公费)

办公费包括企业办公房屋租赁费和物业管理费、通信费、办公消耗品、水电空调费、设备折旧、差旅费,另外也包括企业对员工的在职培训所支付的费用,其总量在软件企业中的商务成本占20%-30%。?

Q = B/3?

此处办公费用按商务成本的25%计算。

R(国家税收和企业利润)

??由于国家实施发展软件产业的优惠政策,故不单独列出计算,但软件企业仍需承担缴纳国家税收的义务,可一并与企业利润一起考虑。

另外,软件企业的员工不可能全年满负荷地工作,即使一年十二个月都安排工作,但也需抽出时间进行在职培训和提职的岗前培训。据我们的了解,软件企业的员工一年能有10个月到 11个月的工作也是正常的。?

R = B/3?

此处为我们的建议方案,各软件企业可视情况加以变更。

S(管理系数)

通常每个机构的管理人员都会有一定的比例,参考一些机构的做法,按每十个软件人员配备两个管理人员即管理成本:?

1 ≤ S ≤?

T(优质系数)

提高软件质量,必然有所开支,即质量成本,对于不同的软件企业来说,其质量成本不尽相同。

软件企业与其他企业一样,也有诚信和品牌等诸多因素,从而增加企业的开支。

目前我们可以按通过 ISO9000质量体系认证和CMM或CMMI的认证来确定,分别取值、、、。

今后建议可对软件企业的资质分为四级。由软件行业协会根据CMMI的认证、品牌、诚信程度等各种因素加以确定。此体系建设还有待进一步探索。

据此,我们综合上述各点:

开发费用/人·月=(B ×+ B/3 + B/3)×× T

= B ×(+ 2/3)×× T

= B × 2 .575 × T

= B ×λ

当T=时,λ=

当T=时,λ=

因此,≤λ≤

对于承接国外软件外包业务,一方面员工的工资较高,另外工作的安排也较难满负荷工作,用此建议R=B/2。因此

开发费用/人·月= B(+ 1/3 + 1/2)×× T

= B ×× T

= B ×λ

当T=时,λ=

当T=时,λ=

因此,≤λ≤

结论:

软件开发价格= A ×σ×τ× B ×λ

A:估算工作量经验值

B:软件企业的平均工资/人·月

Q:风险系数l ≤ Q ≤

T:复用系数≤τ≤ 1

???λ:综合系数≤λ≤

2. 软件(系统)维护收费价格估算方法

在完成信心工程项目的系统集成和应用软件开发,并交付用户正式运行的一年内,对软件(系统)实行免费维护服务一年。

在正式运行一年后,软件企业应与用户签定软件(系统)维护合同。该合同属技术转让合同,也可属技术开发合同。

根据不同的用户要求,可分四种级别进行软件(系统)维护。

A级

软件企业派出技术人员常驻用户,解决日常运行中发生的问题。

U(系统建设投资额)

用户需要软件企业维护的系统,该系统建设的投资额。如用户只需要软件企业维护其所开发的应用软件,U就是该应用软件开发费;如用户需要软件企业维护整个系统,包括计算机硬件、软件、网络和应用软件,则U就是该信息工程项目的总投资额。

N(技术人员数)

软件企业派出N个技术人员,常驻用户,因此:?

软件(系统)维护费/年= U × 15% 或 B ×λ× N × 12?

B、λ参见1.

B级

?软件企业每周七天,每天24小时(即7×24小时)响应,2小时到现场,且每天派技术人员到现场进行软件(系统)性能调试,使之运行处于良好状态。?

软件(系统)维护费/年= U × 10%?

C级

软件企业7×24小时响应,2小时到场。?

软件(系统)维护费/年=U × 5%?

D级

用户的信息工程系统或应用软件发生问题,由原承担的软件企业派人维护。

B’

这种维护方式要求软件企业需要保存所有的技术档案,更需要软件企业抽出专人来不断熟悉和全面掌握该软件(系统)的各项技术细节。因此,软件企业的这项支出必然要在维护费用收入中得到回报。

以节中的B 作为参数,将其人·月单位改为人·天,以B’表示。

τ’

软件企业如果采用基于构件开发方法,并建立起构件库,则会大大提高软件维护的效率。另外,如果有多家用户运行的系统大致类似,也可有所提高效率。

以节中的τ作为参数,以τ’来表示。因此:?

软件(系统)维护费/次=B’×τ’× n?

此次n表示所需要的人·天数。τ’的取值是≤τ’≤ 1。

3. 系统集成价格的估算方法

将整个系统所涉及到的设备、软件、网络整和起来,并能正常地运行,其运行的结果能达到用户建立该系统的目标。这就是系统集成的含义。因此,可以理解为单纯的设备采购和供应并不涉及系统集成,以及单纯的应用软件开发也并不涉及系统集成。

系统集成费应与整个系统的规模、整个系统的复杂程度等项有关。

系统规模往往与系统建设费用密切相关。为了简便计算,以系统建设费用(以U来表示)为参考坐标。复杂程度(以α来表示)可分四种级别来区分。?

系统集成费= U ×α× T?

T参见节

A级

整个系统涉及到计算机硬件、软件、局域网络,且体系结构在三层次以下(含三层次)。?

5% ≤α≤ 8%?

B级

整个系统涉及到计算机硬件、软件、局域网络、互联网,且体系结构在三层以上(含三层次)。?

7% ≤α≤ 10%?

C级

整个系统涉及到计算机硬件、软件、局域网络、互联网以及多种网络接口。?

8% ≤α≤ 12%?

D级

整个系统涉及到计算机硬件、软件、网络、通信以及各种数据采集设备接口或者与用主系统有接口。?

10% ≤α≤ 15%?

4. 系统解决方案费用估算方法

根据用户所提出的初步需求,软件企业根据以往的经验为之提供整个系统建设的方案,包括需购买的计算机硬件、软件、网络设备和应用软件开发的大体设想、费用估算、进度初步安排、信息化所涉及到的规章制度的一些规划,有时还会涉及信息中心的建设等等。这就是系统解决方案所要完成的工作。

目前国内市场对于系统解决方案是一种智力劳动成果的认识不足,以及国内多数招标公司并不熟悉信息技术,从而更加使得系统解决方案收费变得困难。因此,目前的收费处于过渡阶段。

系统解决方案费用与整个系统的规模、复杂程度等项有关。

系统规模往往与系统建设费用密切相关,为了简便计算,以系统建设的总投资(以U来表示)为参考坐标。

复杂程度就是用户的功能、性能要求复杂性、信息接口的类型和数量有关,以β来表示。?

解决方案费用=U ×β× T?

T参见节

关于β我们参照第3节所列各级。 A级: % ≤β≤ %

B级: ?1% ≤β≤ %

C级: % ≤β≤ %

D级: 2% ≤β≤ 3%

软件开发报价的计算方法

软件开发报价的计算方法 1.软件开发价格估算方法 软件开发价格与工作量、商务成本、国家税收和企业利润等项有关。为了便于计算,给出一个计算公式: 软件开发价格=开发工作量×开发费用/人·月 1.1开发工作量 软件开发工作量与估算工作量经验值、风险系数和复用系数等项有关:软件开发工作量=估算工作量经验值×风险系数×复用系数 1.1.1估算工作量经验值(以A来表示) 软什开发工作量的计算,曾有人提出以源代码行或功能点来计算,这些方法实施起来均有不少难度。目前国际上仍旧按以往经验的方式加以计算,国内各软件企业也是采用经验的方式加以估算工作量。 为了更好地规范估算方法,建议可按照国家标准“GB/T 8566-2001软件生存周期过程”所规定的软件开发过程的各项活动来计算工作量。 工作量的计算是按一个开发工作人员在一个月内(日历中的月,即包括国家规定的节假日)能完成的工作量为单位,也就是通常所讲的“人·月”。 特别要提醒的是软件开发过程中既包括了通常所讲的软件开发,也应包括各类软件测试的活动。 1.1.2风险系数(以σ来表示) 估算工作量经验值亦会存在较大风险,造成软件危机的因素很多,这也是一个方面的因素。特别当软件企业对该信息工程项目的业务领域不熟悉或不太熟悉,而且用户又无法或不能完整明白地表达他们的真实的需求,从而造成软件企业需要不断地完善需求获取,修改设计等各项工作。因此: l ≤风险系数≤ 1.5 根据我们对软件企业的了解,超过估算工作量经验值的一半,已是不可接受,所以我们确定“1.5”为极限值。当然这既要看企业的能力,也要看用户能接受的程度。1.1.3复用系数(以τ来表示)

软件开发费用计算

.1软件项目价格评估书 信息技术飞速发展,计算机软件交易市场日趋成熟规范, 我方参照《软件开发和服务项目价格构成及评估方法》,以及,目前国际上通行的也比较科学的估算方法是采用功能点分析方法,使用此方法能够真实、准确地计算出计算机软件的价值以作为市场交易价格的参照依据. 1.价格评估公式: 项目建设费Q=咨询服务费P+项目建设费M(软件开发费D+实施费S+维护费W)+验收测试费C+工程监理费G 2.项目建设费计算公式: 软件开发费D=工作量(人月)*软件人员月人工费用 =(项目功能点*开发成本系数/7.5/22)*(3.23B) 开发成本系数:3000个功能以下3.5人工时/FP-4.0人工时/FP 3000-8000个功能以下4.0人工时/FP-4.5人工时/FP 实施费S =工作量(人月)*软件人员月人工费用 =(项目功能点*实施成本系数/7.5/22)*(3.23B) 分布式实施项目的系数 实施成本系数=开发成本系数*(0.2+(n-1)*k) 比例因子K:0.08<=k<=0.15具体按项目实施难度而定 维护费W=工作量(人月)*软件人员月人工费用 =(项目功能点*维护成本系数/7.5/22)*(3.23B) 维护成本系数=(开发成本系数+实施成本系数)*p

比例因子P一般为15%-20% 软件人员月人工费用=(工资+奖金+福利+办公成本+资源储备+基础建设+税收利润)*(1+管理费用百分比)=3.23B ?软件开发费D: 软件开发费用指对项目进行详细需求分析,系统设计,编码,测试等方面的工作而需支出的费用,取费主要依据项目规模(功能点),开发成本系数和软件人员月人工费,我方根据(附录四:软件功能说明表),对软件的功能进行分析认为:软件项目难度一般,由于各单位对报表的需求不一,所以编制报表的工作量较多,按照软件规模的大小,我们设定软件开发成本系数为4. 1.软件功能点计算 复杂加权因子表(Complexity weights Factor) 系数范围 采用系数 用户输入数EI 3-6 4 用户输出数EO 4-7 5 用户查询表EQ 3-6 5 内部逻辑文件 数ILF 7-15 12 外部接口文件 数EIF 5-10 6 1.软件功能表 数据表 接口 文件 外部 查询 逻 辑表 报 表数

软件开发成本估算

软件开发成本估算 软件开发成本估算主要指软件开发过程中所花费的工作量及相应的代价。不同与传统的工业产品,软件的成本不包括原材料和能源的消耗,主要是人的劳动的消耗。另外,软件也没有一个明显的制造过程,它的开发成本是以一次性开发过程所花费的代价来计算的。因此,软件开发成本的估算,应是从软件计划、需求分析、设计、编码、单元测试、集成测试到认证测试,整个开发过程所花费的代价作为依据的。 软件开发成本估算的经验模型 1.Putnam 模型 1978年Putnam提出的,一种动态多变量模型。 L = Ck * K1/3 * td4/3 其中: L-----------源代码行数(以LOC计) K-----------整个开发过程所花费的工作量(以人年计) td-----------开发持续时间(以年计) Ck----------技术状态常数,它反映“妨碍开发进展的限制”,取值因开发环境而异,见下表

从上述方程加以变换,可以得到估算工作量的公式: K = L3/(Ck3*td4) 还可以估算开发时间: td = [L3/(Ck3*K)]1/4 2.COCOMO模型(constructive cost model) 这是由TRW公司开发,Boehm提出的结构化成本估算模型。是一种精确的、易于使用的成本估算方法。 COCOMO模型中用到以下变量: DSI-------源指令条数。不包括注释。1KDSI = 1000DSI。 MM-------开发工作量(以人月计) 1MM = 19 人日 = 152 人时 =1/12 人年TDEV-----开发进度。(以月计) COCOMO模型中,考虑开发环境,软件开发项目的类型可以分为3种: 1.组织型(organic): 相对较小、较简单的软件项目。开发人员对开发目标 理解比较充分,与软件系统相关的工作经验丰富,对软件的使用环境很

软件开发流程

快视信息软件开发流程规范: 用户需求:软件项目首先由客户经理(CM,Custom Management)接洽客户的较大的需求。这时的需求叫市场需求(或叫用户需求),客户经理会进行各个项目的安排,即对项目的启动时间和发布时间进行规划和设置。 项目经理(PM,Project Management)对客户经理负责。项目经理的需求是根据客户经理给的,项目经理不和用户(客户)直接接触(通过客户经理接触),负责和用户进行需求洽谈和沟通的是客户经理。一个项目的需求在一般情况下是不准变更的,如果有需求理解方面的不清楚可以进行沟通,但是需求是不变更的。如果用户有新的需求,一般规划在下一个版本中。因为需求变更了,这个目的时间就要进行调整,就不能按计划进行和完成。客户经理提交给项目经理的是需求规格说明书。 一、项目开工会 在项目经理领到客户经理分配给的需求后,做项目计划,具体做项目人员的确定、需求的分解(需求分解到每个人)、代码量的估计,项目各个阶段时间的划分和工作量的计划、质量指标的设定。这时项目经理需要输出的文档是项目需求分解任务书、项目计划PPT、及做好整个项目需要填写的一系列表格。然后组织项目组成员和客户经理CM、QA(质量审计经理)进行项目开工会。这时这个项目就算真正启动,计算工作量时,即计算这个项目总共花了多少个工时,工时是项目经理做计划的时间也算在内,再加上项目开工会和后续各个阶段总共花的总工时数,还有各个阶段开会所花的时间。在项目开工会上,各个成员就明确了这个项目是属于增强型项目,还是其他项目的项目性质,增强型项目的意思是说在原来上一版本的基础上又根据新的需求进行增强型开发。还有要明确项目最后开发出的新增代码量有多少,最后要明确每个人的需求任务,接下来着手进行SRS的写作。 二、SRS阶段:System/Software Requirment Specification 软件需求规格说明 在项目开工会后,项目组就开始按照在项目开工会上项目经理的需求任务分解的任务开始进行SRS的写作。 一般项目经理给你的一个子需求任务,你这时需要分解为更小的需求。一般一个需求的写作是按这样进行的。先简单介绍这个需求,然后把这个需求设计成黑盒的形式,即输入,处理过程、输出。这些都需要写详细,任何一个需求都写成这种形式,输入是什么,处理过程是什么,输出结果是什么。处理过程需要用Visio或者PPT画出处理流程图,流程图要很详细。每一步的各种情况都要表示和考虑到。对异常情况也要考虑和进行处理。还有要说明在原来的基础上怎么改动,具体方法要进行说明。设计的数据库表结构,要给出脚本,SQL语句,表结构需说明每个字段,哪些是主键,你在这个需求处理过程中哪里使用了哪些表,需要进行哪些操作,都需要说明。这里需要设计和编制《数据库设计说明书》文档。该文档中描述该系统中设计出的所有的数据库表结构和各字段类型。还有多个操作对象要画序列图表示出按时序的处理过程。这个SRS文档就相当于我们平时毕业设计或者一个题目的详细设计阶段达到的水平,甚至比它更详细。每个项目组成员都把自己的需求的SRS文档写出来之后放到配置库中,然后每个人对项目组其他成员的(非自己的)SRS文档进行Review(评审),对每个SRS文档在每页发现或者纠正的错误数不能低于一定的数目,而且要保留批注记录,经过Review的(保留批注的)文档要放到配置库的Review文件夹下,这是进行项目质量指标收集的重要依据,是QA 进行调阅和审计的资料。项目经理要对SRS文档、SRS Review文档进行汇总。在汇总后组织项目组全体成员进行SRS阶段会议,对每个人写的SRS进行评审会议(讨论和提意见),对别人给你提的修改意见你要一一进行说明,说明为什么不改,怎么改的,是什么问题,问题严重程度属于什么级别,而且都要填表,也是QA进行审计的内容。开完会后如果每个人完成的都差不多,然后安排半天或者一天的时间进行返工,主要是进行修改文档,按在会上讨论的结果和别人给你的Review 文档结果(评审结果)进行准一修改和完善。然后再进行SRS阶段开会,如果都做的比较到位和具体、符合要求,即关闭SRS阶段。这时SRS阶段的花费的工时数和一些质量活动指标就出来了,比如你这个SRS文档写了几页,每页的错误数是多少,返工修改用了多少时间,然后这些这个比率也会自动计算出来。进而可以判断这个阶段的质量。每个项目组成员在每天工作完毕后都要进行Time Sheet 的填写,必须具体到半个小时,这是统计和分析的需要。填写必须真实。 三、UTP、STP阶段(UTP、STP写作) UTP Unit Test Plan 单元测试计划 STP System Test Plan

软件开发报价的计算方法(完整版)

软件开发报价的计算方法(完整版) 1.软件开发价格估算方法 软件开发价格与工作量、商务成本、国家税收和企业利润等项有关。为了便于计算,给出一个计算公式: 软件开发价格=开发工作量×开发费用/人·月 1.1开发工作量 软件开发工作量与估算工作量经验值、风险系数和复用系数等项有关:软件开发工作量=估算工作量经验值×风险系数×复用系数 1.1.1估算工作量经验值(以A来表示) 软什开发工作量的计算,曾有人提出以源代码行或功能点来计算,这些方法实施起来均有不少难度。目前国际上仍旧按以往经验的方式加以计算,国内各软件企业也是采用经验的方式加以估算工作量。 为了更好地规范估算方法,建议可按照国家标准“GB/T 8566-2001软件生存周期过程”所规定的软件开发过程的各项活动来计算工作量。 工作量的计算是按一个开发工作人员在一个月内(日历中的月,即包括国家规定的节假日)能完成的工作量为单位,也就是通常所讲的“人·月”。 特别要提醒的是软件开发过程中既包括了通常所讲的软件开发,也应包括各类软件测试的活动。 1.1.2风险系数(以σ来表示) 估算工作量经验值亦会存在较大风险,造成软件危机的因素很多,这也是一个方面的因素。特别当软件企业对该信息工程项目的业务领域不熟悉或不太熟悉,而且用户又无法或不能完整明白地表达他们的真实的需求,从而造成软件企业需要不断地完善需求获取,修改设计等各项工作。因此: l ≤风险系数≤ 1.5 根据我们对软件企业的了解,超过估算工作量经验值的一半,已是不可接受,所以我们确定“1.5”为极限值。当然这既要看企业的能力,也要看用户能接受的程度。1.1.3复用系数(以τ来表示)

软件开发过程详解

软件开发过程详解 软件开发过程即软件设计思路和方法的一般过程,包括设计软件的功能和实现的算法和方法、软件的总体结构设计和模块设计、编程和调试、程序联调和测试以及编写、提交程序。 生产一个最终能满足需求且达到工程目标的软件产品所需要的步骤。软件开发过程覆盖了需求、设计、实现、确认以及维护等活动。需求活动包括问题分析和需求分析。问题分析获取需求定义,又称软件需求规约。需求分析生成功能规约。设计活动一般包括概要设计和详细设计。概要设计建立整个软件系统结构,包括子系统、模块以及相关层次的说明、每一模块的接口定义。详细设计产生程序员可用的模块说明,包括每一模块中数据结构说明及加工描述。实现活动把设计结果转换为可执行的程序代码。确认活动贯穿于整个开发过程,实现完成后的确认,保证最终产品满足用户的要求。维护活动包括使用过程中的扩充、修改与完善。 1.需求分析 1.1 需求分析的特点和任务 需求分析是软件开发的第一步。获取需求的一个必不可少的结果是对项目中描述的客户需求的普遍理解。一旦理解了需求,分析者、开发者和客户就能探索出描述这些需求的多种解决方案。参与需求获取者只有在他们理解了问题之后才能开始设计系统,否则,对需求定义的任何改进,设计上都必须大量的返工。把需求获取集中在用户任务上—而不是集中在用户接口上—有助于防止开发组由于草率处理设计问题而造成的失误。有几种原因使需求分析变得困难:(1)客户说不清楚需求;(2)需求自身经常变动;(3)分析人员或客户理解有误。 需求获取、分析、编写需求规格说明和验证并不遵循线性的顺序,这些活动是相互隔开、增量和反复的。当你和客户合作时,你就将会问一些问题,并且取得他们所提供的信息(需求获取)。同时,你将处理这些信息以理解它们,并把它们分成不同的类别,还要把客户需求同可能的软件需求相联系(分析)。然后,你可以使客户信息结构化,并编写成文档和示意图(说明)。下一步,就可以让客户代表评审文档并纠正存在的错误(验证)。这四个过程贯穿着需求分析的整个阶段。需求获取可能是软件开发中最困难、最关键、最易出错及最需要交流的方面。需求获取只有通过有效的客户—开发者的合作才能成功。分析者必须建立一个对问题进行彻底探讨的环境,而这些问题与产品有关。为了方便清晰地进行交流,就要列出重要的小组,而不是假想所有的参与者都持有相同的看法。对需求问题的全面考察需要一种技术,利用这种技术不但考虑了问题的功能需求方面,还可讨论项目的非功能需求。确定用户已经理解:对于某些功能的讨论并不意味着即将在产品中实现它。对于想到的需求必须集中处理并设定优先级,以避免一个不能带来任何益处的无限大的项目。 1.2.需求分析的一般方法

软件开发费用计算方法

文档从互联网中收集,已重新修正排版,word格式支持编辑,如有帮助欢迎下载支持。软件开发项目计算方法 (V2.0) 广东软件行业协会 二○○六年八月

目录 1前言............................................................................................................................ 错误!未定义书签。 1.1 目的 .................................................................................................................... 错误!未定义书签。 1.2 软件项目建设类别 ............................................................................................ 错误!未定义书签。 1.3 适用范围 ............................................................................................................ 错误!未定义书签。 1.4 名词解释 ............................................................................................................ 错误!未定义书签。 2软件项目费用概算.................................................................................................... 错误!未定义书签。 2.1项目阶段划分 ..................................................................................................... 错误!未定义书签。 2.2 各阶段费用构成 ................................................................................................ 错误!未定义书签。 2.3 项目费用概算 .................................................................................................... 错误!未定义书签。3各项费用取费依据.................................................................................................... 错误!未定义书签。 3.1 咨询费 ................................................................................................................ 错误!未定义书签。 3.2 建设费 ................................................................................................................ 错误!未定义书签。 3.3 服务费 ................................................................................................................ 错误!未定义书签。 3.4 附加费 ................................................................................................................ 错误!未定义书签。 3.5需求变更估算 ..................................................................................................... 错误!未定义书签。4工作量估算方法........................................................................................................ 错误!未定义书签。 4.1 开发阶段工作量估算 ........................................................................................ 错误!未定义书签。 4.2 实施阶段工作量估算 ........................................................................................ 错误!未定义书签。 4.3 维护阶段工作量估算 ........................................................................................ 错误!未定义书签。 5人月成本估算方法.................................................................................................... 错误!未定义书签。6其他事项.................................................................................................................... 错误!未定义书签。 6.1 最终合同金额确定 ............................................................................................ 错误!未定义书签。 6.2 付款方式 ............................................................................................................ 错误!未定义书签。 6.3 评估机构 ............................................................................................................ 错误!未定义书签。

软件开发费用计算方法

软件开发项目计算方法 () 广东软件行业协会 二○○六年八月

目录

1前言 目的 规范软件市场行为,维护价格公平竞争,同时为软件项目建设经费概算提供科学可信的依据。 软件项目建设类别 软件产业发展到现今阶段,技术已经很成熟,产品也已经很丰富,同时由于开发工具和操作系统平台的可选择性,软件项目出现了多样化的趋势。同样是软件项目,完成途径和开发手段不同,其费用也会存在很大差异。不同类别的软件项目,其费用构成和概算方法也不同。根据项目建设要求和方式,一般分为以下几类: 新开发项目:从项目的需求分析开始直至产品完成正式交付使用,其工 作覆盖软件产品的分析、设计、测试、实施、运行维护各 阶段。 二次开发:在现有产品的基础上进行提升和改造。 软件移植:已有产品从一个操作系统平台转移到另一个操作系统平台,或者从原来的运行环境切换到另一个新的运行环境所 需要进行的调整和变动。 产品集成:将多个现有软件产品构件整合在一起,组装成比较复杂的或者更加完整的产品。 适用范围 本指南适用于应用类定制软件的新开发项目,项目应覆盖软件开发全过

程(包括立项可行性分析,需求分析、编码实现、安装实施、运行维护各个阶段工作)。其中人月成本的计算方法也适用于其他类型的项目。 本指南是站在行业的角度,去评估一个应用软件项目的开发费用应该是多少,而不是站在开发商的角度去计算某企业开发软件时的成本支出是多少。虽然这两者之间会有关联。 对于同一软件开发项目,不同的开发商由于各自的技术、能力、管理、积累以及其他方面的因素,其实际成本支出会有较大差异。而这不在本指南考虑之内。 名词解释 应用软件:是指针对特定领域开发,为特定目的服务的一类软件。 软件开发:指从软件项目启动到项目实施前这一时间段的工作。其内容包括详细设计、编码、测试、系统调试等方面的工作。 系统实施:指软件项目开发完毕进行安装到项目正式验收这一时间段的工作。其内容包括系统安装、个性化配置、用户培训等方面的工作, 但不包括各实施点的本地化开发工作。 运行维护:指从软件项目正式验收到合同规定的项目维护期结束的这一时间段的工作。其内容包括在此期间所需要提供的原系统完善性修改 和服务等工作(不包括新增需求和原功能的重大变更)。如:运 行管理、系统平台维护、应用软件维护、数据维护等 验收测试:确定项目是否符合其验收准则,使客户能确定是否接收此项目的正式测试。 功能点(FP):功能点是对软件功能和大小的间接度量单位,一般通过必须和

软件开发过程管理规范

软件开发过程管理规范文件管理序列号:[K8UY-K9IO69-O6M243-OL889-F88688]

0 引言 如果要提高软件开发人员的开发质量,必须有相应的考核制度,有了制度后才能推动开发人员想方设法改善自已的开发质量。目前研发对软件开发的过程缺乏细粒度的度量,所以不能依据有效的度量数据来考核开发人员的工作绩效,大部份只是凭考核人主观意志来考核,不能形成对被考核人有效的说服力。此绩效考核办法旨在结合实际情况合理客观地评价开发效率和质量。 1 目的 对软件开发的过程所产生的软件项的质量和过程进行定量的评价,用评价的结果指导软件的开发过程,不断地提高软件开发质量水平,并依据度量记录来考核软件开发人员的工作绩效。 2 软件项包括 1)技术文档:主要包括:可行性分析报告、需求分析报告、软件功能规格说明、开发计划、系统设计报告、测试文档、用户手册、总结报告等; 2)计算机程序。 3 度量数据的来源 1)项目计划; 2)评审报告; 3)测试报告; 4)问题报告; 5)软件维护记录; 4 质量度量

4.1 度量指标 主要根据各类软件项检查表的检查指标来确定,例如,软件需求规格说明书检查表(见附录1),有10个检查指标,则根据具体项目检查侧重点不同,可从中选择相应的检查指标作为度量指标。 4.2 质量等级 1)软件项的质量等级的确定根据度量综合指标进行。 2)度量综合指标计算公式为:Total = ∑QiMi。 3)其中i=1,2,...n代表指标数量; 4)Q代表度量的指标; 5)M代表度量的指标Q在整个指标体系中所占的权重系数,对不同的开发项目可能不同,此系数根据开发的不同着重点给出。 度量指标权重系数表: 序号指标权重 1 指标1 权数1 2 指标2 权数2 3 指标3 权数3 4 指标4 权数4 5 指标5 权数5 加权平均分 1.0 6)质量评价:一般地,根据度量综合指标值,有以下评分标准。 质量评价计分标准表 序号得分质量评价

软件开发工作量估算和报价

1.软件开发价格估算方法 软件开发价格与工作量、商务成本、国家税收和企业利润等项有关。为了便于计算,给出一个计算公式: 软件开发价格=开发工作量×开发费用/人·月 开发工作量 软件开发工作量与估算工作量经验值、风险系数和复用系数等项有关: 软件开发工作量=估算工作量经验值×风险系数×复用系数 软什开发工作量的计算,曾有人提出以源代码行或功能点来计算,这些方法实施起来均有不少难度。目前国际上仍旧按以往经验的方式加以计算,国内各软件企业也是采用经验的方式加以估算工作量。 为了更好地规范估算方法,建议可按照国家标准“GB/T8566-2001软件生存周期过程”所规定的软件开发过程的各项活动来计算工作量。 工作量的计算是按一个开发工作人员在一个月内(日历中的月,即包括国家规定的节假日)能完成的工作量为单位,也就是通常所讲的“人·月”。 特别要提醒的是软件开发过程中既包括了通常所讲的软件开发,也应包括各类软件测试的活动。 估算工作量经验值亦会存在较大风险,造成软件危机的因素很多,这也是一个方面的因素。特别当软件企业对该信息工程项目的业务领域不熟悉或不太熟悉,而且用户又无法或不能完整明白地表达他们的真实的需求,从而造成软件企业需要不断地完善需求获取,修改设计等各项工作。因此:

l≤风险系数≤ 根据我们对软件企业的了解,超过估算工作量经验值的一半,已是不可接受,所以我们确定“”为极限值。当然这既要看企业的能力,也要看用户能接受的程度。 估算工作量经验值是软件企业承担一般项目来估算的,但如果软件企业已经采用“基于构件的开发方法”,并己建立起能够复用的构件库(核心资产库),或者已有一些软件产品,仅作二次开发,从而使软件开发工作量减少。因此: ≤复用系数≤1 根据国内外软件企业在实施基于构件开发方法(软件产品线)的经验数据,提高工作效率达到25%(最高值)。 开发费用/人·月 软件企业的商务成本、国家税收、企业利润、管理成本和质量成本。均可摊分到各个软件开发人员头上。 开发费用/人·月=(P+Q+R)×S×τ 人头费主要是员工的工资、奖金和国家规定的各项按人计算的费用。其总量在软件企业中的商务成本占70%-80%。 P=B× 国家规定的公积金7%,医疗保险金12%,养老金22%,失业金2%(即通常所说的四金),另外还有按工资总额计征的工伤保证金%,生育保证金%,残疾基金%,工会基金2%,累计为%。B为平均工资,即企业支付给员工的工资、奖金、物质奖励等多项总和,除以企业员工数,分摊到每个月。

软件开发费用核算管理办法

软件开发费用核算管理办法 一、目的 为加强软件开发项目的管理,加速公司的新产品(新工艺)的研究开发和新技术的推广应用,统筹合理安排软件开发项目费用的开支,特制定本制度。 二、适用范围 本制度适用于北京国都信业科技有限公司软件开发项目(即新产品、新工艺研究开发、新技术推广应用项目)的管理。 三、软件开发费用开支范围 1.软件开发项目所发生的项目调研费、资料费、差旅费、技术协作费,以及专为项目购置的材料和测试仪器、设备等费用。 2.为软件开发项目进行的技术咨询和学术交流等活动所发生的评审费、咨询费、会议费等费用。 3.为搜集行业科技情报及知识产权工作所发生的技术资料费、出版印刷费、专利年费等费用。 4.软件开发人员的工资薪金、办公场所租金、以及用于科技进步奖励所发生的费用。 四、软件开发费用的管理 1.公司财务部是软件开发费用的归口管理部门,具体负责软件开发项目的审定和费用指标方案的制定以及项目结果的评定工作。 2.软件开发费用的拨付按照公司资金拨付的规定执行,各项目组应在软件开发项目立项批准意后方可启用,并由项目承担单位按规定的使用范围严格控制、合理使用。 3.软件开发费用按软件开发项目计划下达到具体项目,实行专款专用,严格管理,不得挪做它用。软件开发项目以合作或委托第三方形式进行的,必须签订项目外包技术合作合同,并经财务部审查后才能生效拨款。 4.软件开发费用在使用中,分管软件开发技术工作的负责人,应按内控制度授权的规定执行,并按照不同的项目进行核销。 5.软件开发费用核销时,须由项目负责人、分管软件开发技术的负责人、总经理审核同意后方可到财务报销付款。 6.采用项目外包或第三方协作完成的有关软件开发项目所取得的软件开发成果,所有权均归属公司,所形成的知识产权纳入公司知识产权管理范围进行管理。

软件开发方法与过程

(1)软件开发过程是什么? 软件开发过程是按照软件工业化的标准定义的心之所向,所向披靡 ?在软件开发中必须具有的一系列过程规范; ?软件开发过程是定义在软件中的软件需求、软件设计、软件编码、软件测试、软件部署的实现目标和规范化的管理方法论; ?软件开发过程是保证软件工业化生产的法典;?软件开发过程做的是:定义标准和为了达到标准的路; ?软件开发过程要改善的是:软件开发的效率和质量; ?软件开发过程的实现最重要的是:人。 (2)大多数软件项目失败的原因: a)不完整、不现实的项目需求 b)对需求的变更束手无策 c)脆弱的架构 d)采用不成熟的技术 e)测试的不充分性 f)拙劣的进度计划和评估 g)缺乏资源 h)不具备项目管理方法 i)缺少管理层的支持 (3)软件工程的三个要素:方法、工具和过程(4)A software project failed if It is delivered late It is runs over the budget It does not satisfy the customer’s need It is of poor quality Classical software development methods have not solved software crisis.传统的软件开发方法没有能够解决软件危机。 (5)A software engineer’s job: a)Make a working plan.制定工作计划 b)Carry out it.(Do their work according to this plan)按照此计划工作 c)Try his/her best to produce high-quality products.尽最大努力生产 出高质量产品 (6)3 Key aspects a)Quality products 高质量产品 b)Expected costs c)On agreed schedule (7)Summary of PSP PSP is a framework designed to teach software engineers to do better work Estimate and plan →track →improve quality Quality methods take time to learn and practice,but it will help you in you engineering career Establish goals →measure quality → understand the process → change and reure process → measure & analyze the results → recycle improving Identify the tasks you do (8)敏捷软件开发宣言 个体和交互胜过过程和工具 可以做到工具的软件胜过面面俱到的文档 客户合作胜过合同谈判 响应变化胜过遵循计划 敏捷开发的原则: 1、我们最优先要做的是通过尽早的、持续的交付有价值的软件来使客户满意。 尽早交付具有部分功能的系统和质量系统之间具有很强的相关性 2、即使到了开发的后期,也欢迎改变需求。敏捷过程利用变化来为客户创造竞争优势。 关于态度的声明,敏捷过程的参与者不惧怕变化,努力保持软件结构的灵活性。 3、经常性地交付可以工作的软件,交付的间隔可以从几周到几个月,交付的时间越短越好。 关注的目标是交付满足客户需要的东西。它们是敏捷实践区别其他过程的特征所在。 4、在整个项目开发期间,业务人员和开发人员必须天天都在一起工作。 有意义的、频繁的交互,必须对软件项目进行持续不断地引导。 5、围绕被激励起来的个人来构建项目。给他们提供所需要的环境和支持,并且信任他们能够完成工作。 人被认为是项目取得成功的最重要的因素。 6、在团队内部,最具有效果并且富有效率的传递信息的方法就是面对面的交谈。首要的、默认的沟通方式。 7、工作的软件是首要的进度度量标准。 敏捷项目通过度量当前软件满足客户需求的数量来度量开发速度。 8、敏捷过程提倡可持续的开发速度。责任人、开发者和用户应该能够保持一个长期、恒定的开发速度。不是 50米短跑,而是马拉松。以快速但是可持续的速度行进。 9、不断关注优秀的技能和好的设计会增强敏捷能力。

软件开发过程

软件开发过程 一. 规范 规范应当是从简单到复杂的,我们首先制定的规范并不复杂,只是对如何使用异常机制的一些定义。要获得这些规范并不困难,大部分介绍异常的技术资料中都给出了很多的建议。理解并使用它们,仅此而已。 1、对不正常的条件使用异常,尽可能准确的使用预定义的异常。这一目标来自于Effective Java中的条款39和条款42。其目的是为了能够正确的使用异常。使用系统提供的异常能够减少代码,提高代码的可读性(特别是新人不需要了解自定义的异常结构)。大多数情况下,系统提供的异常已经足够用了。 2、尽可能多的收集异常发生时的上下文信息。异常之所以比返回码优秀的一个原因就是它能够将错误类型化,提供比错误代码多得多的信息。因此,我们实在没理由不使用这一功能。 3、正确的使用异常转义,并保留原异常信息。异常转义的目的是为了让客户端能够得到易于理解的类型。我们想象一个用户登录的情境,假设用户数据保存在一个文件中,当文件中找不到用户名的相关记录的时候抛出一个RecordNotFoundException异常,系统截获了这个异常,并将其发布给用户,问题在于,用户会觉得非常的奇怪,为什么会是记录没有找到呢?因此,建立一个IllegalUserException异常会更适合于这种情况。 4、针对不同的抽象层次定义不同的异常。正如我们在第三点中提到的,RecordNotFoundException异常并不适合于用户这个层次。但是,这个异常对于程序员调试代码就很有意义了。 5、将异常发布到合适的地方。有计算机的地方就一定有输入和输出。如果把异常发生时的信息收集看作输入,那么异常的输出是什么呢?可能是错误的提示信息,可能是一个显示错误信息的网页,可能是日志中的记录,可能是一条短信,也可能是一封EMail。这些就是异常的输出形式。此外,异常的输出还需要正确的确定对象,对用户来说,异常只要有一个友好的提醒方式就够了,但对于管理者来说,异常需要记录下来,或是通过异步消息进行通知。 这就是规范,你也可以把它称为最佳实践、建议等名词。当然,它还可以更加的细化,但事情总有个过程,一开始把问题弄得过于复杂未必是一件好事,你说呢? 二.技能 有了规范是一回事,能否把规范运用起来则取决于人员的技能。在有一部描述清末的电影中,有这样一个情节,留学归来的知识分子为了提高民众的知识水平,不惜花费巨资免费发放报纸,这一举措大受欢迎,可惜大部分的民众都不识字,他们要报纸的原因只是这东西烧火很方便。 所以其次要解决的问题就是,大部分的程序员没有足够的异常处理经方面的技能。如果程序员没有这方面的概念,你把一本异常管理最佳实践放在他的面前会有用吗? 学会使用异常并不困难,困难的是如何让程序员正确的使用异常。什么时候使用系统定义的异常。什么时候使用自定义的异常,自定义异常又该如何设计。这些都是程序员的技能问题。基于这种思路,首先做的是培训,而培训的目标是让程序员理解异常的机制,让程序员能够把异常运用到工作中。培训不等于上课,因为我们的目标是能够影响程序员的行为,单靠上课是无法达成目标的,因此我们把几种方式综合使用。一般来说,程序员对未知的技术总是

软件开发流程-论文

毕业设计(论文)题目:软件开发流程管理 班级:11工升 学号:1000303071 姓名: 指导教师: 2014年11月

从软件开发最初至今,不断地有新的软件开发技术产生,但是在软件开发能力和质量方面却始终存在达不到预计目标这一问题。每一个软件开发的最大目标,就是最大限度提高质量与生产率。而影响质量与生产率的三个关键因素:过程、人和技术,因此,我们除了提高技术能力,培养更多优质人才之外,还需要制定一套软件开发过程管理标准,并在软件开发过程中对这一标准不断地完善,以达到提高软件质量与生产率的目标。 本文结合CMM(软件过程成熟度模型),对软件开发、维护全过程进行标准化、规范化管理,制定出软件开发管理标准。 关键词:软件开发过程,管理标准

第一章软件开发的概念及目的 (4) 第二章软件开发流程划分及开发环境 (4) 2.1.软件开发阶段划分 (4) 2.2.软件开发环境需求........................... 错误!未定义书签。第三章软件开发过程中存在的问题 .................... 错误!未定义书签。 3.1.对用户方需求的掌握不全面................... 错误!未定义书签。 3.2.对软件的价值认识不清晰..................... 错误!未定义书签。 3.3.跟用户方的合作不顺利....................... 错误!未定义书签。 3.4.开发队伍的结构不合理....................... 错误!未定义书签。 3.5.软件开发管理制度不健全..................... 错误!未定义书签。 3.6.开发团队人员不稳定......................... 错误!未定义书签。第四章软件开发流程管理规范 . (10) 4.1.什么是CMM (10) 4.2.结合CMM制定开发流程管理方案 (11) 4.2.1软件项目生命周期模型................... 错误!未定义书签。 4.2.2需求分析流程图及描述................... 错误!未定义书签。 4.2.3设计流程图及描述....................... 错误!未定义书签。 4.2.4编码流程图及描述....................... 错误!未定义书签。 4.2.5测试流程图及描述....................... 错误!未定义书签。 4.2.6验收流程图及描述 (22) 第四章软件开发行业前景 (23) 参考文献........................................... 错误!未定义书签。

软件开发成本估算

软件成本估算 近年来,由于软件的价格越来越高,在计算机系统中软件所占的比重越来越大,软件价格估计的差错对于一个计算机公司的盈亏起到举足轻重的作用。因此,软件成本的估计受到普遍的重视。 软件价格的计算不是一门精确的学科,因此我们称为成本估算。它受到许多因素的影响,包括人的技术和环境的影响。在开发工作尚未开始之前作软件成本估价就要冒险。有的公司采用“三段估价”的办法,在开发初期的计划阶段订出初步估算价,在要求分析阶段后给出一个修正估算价格,在设计完成之后给出最终估算价格。在软件成本估算方面的工作大多数都从分析与软件成本相关的因素入手。 一、影响软件成本的因素 1. 软件人员的业务水平 软件人员的素质、经验、掌握知识的不同在工作中的表现有很大的差别。有人作过试验,组织一些不同程度的软件人员开发同一课题,对开发的程序进行统计分析,结果发现,完成得好的和差的,生产率相差五倍,甚至十几倍。可见软件人员的业务水平对软件产品的生产率影响是很大的。 2. 软件产品按开发的复杂性可分为三类: 一类是应用程序,如用高级语言写的科学计算、数据处理、企业管理等用户程序。 二类是实用程序,如用系统程序设计语言或汇编语言写出的编译程序、汇编程序、联接编辑程序、输入加载程序。 三类是系统程序,如用汇编语言或系统程序语言写的操作系统、实时处理控制系统等。这三类程序,以系统程序的生产率为1,以应用程序开发的复杂为1,可以画出三类程序的生产率和复杂性的比例关系图表。 见表2.3 表2.3 生产率和复杂性比例关系表 项目系统程序实用程序应用程序 生产率 1 5—1025—100 复杂性9 31 B.Bo?hm教授进一步给出了这三种软件产品的程序规模和工作量的相互关系的公式。程序的规模是以源程序每千行语句(或指令)为单位。程序的工作量以一人一月为单位,记为PM这三类程序,每个人每月生产程序的千行数为: 应用程序是: PM=2.4*(KDSI)**1.05 (其中KDSI为千行源代码数) 实用程序是 PM=3.0*(KDSI)**1.12 系统程序是 PM=3.6*(KDSI)**1.20 例如,三类程序所选取的开发项目都是60000行的程序,所需投入的人-数三类不同程序大体比例为了:1:1.7:2.8,工作量估计曲线大约如图21所示。 估计工作量

相关文档
最新文档