软件项目的成本如何估算?

软件项目的成本如何估算?,第1张

一、系统软件成本构成 系统软件的成本作为一个经济学范畴,应反映软件产品在其生产过程中所耗费的各项费用,为原材料、燃料、动力、折旧、人工费、管理费用、财务费用待项开支的总和。 从财务角度来看,列入系统软件的成本有如下的项目: (1)硬件购置费如计算机及相关设备的购置,不 间断电源、空调器等的购置费。 (2)软件购置费,如 *** 作系统软件、数据库系统软件和其它应用软件的购 置费。 (3)人工费,主要是开发人员、 *** 作人员、管理人员、的工资福利费等。 (4)培训费。 (5)通讯费,如 购置计算机网络设备、通讯线路器材、租用公用通讯线路等的费用。 (6)基本建设费,如新建、扩建机房、购置计算机机台、机柜等的费用。 (7)财务费用。 (8)管理费用,如办公费、差旅费、会议费、交通费。 (9)材料费,如打印纸、包带、磁盘等的购置费。 (10)水、电、汽、气费。 (11)专有技术购置费。 (12)其它费用,如资料费、固定资产折旧费及咨询费。 从系统软件生命周期构成的两阶段即开发阶段和维护阶段看,系统软件的成本由开发成本和维护成本构成。其中开发成本由软件开发成本、硬件成本和其他成本组成,包括了系统软件的分析/设计费用(含系统调研、需求分析、系统分析)、实施费用(含编程/测试、硬件购买与安装、系统软件购置、数据收集、人员培训)及系统切换等方面的费用;维护成本由运行费用(含人工费、材料费、固定资产折旧费、专有技术及技术资料购置费)、管理费(含审计费、系统服务费、行政管理费)及维护费(含纠错性维护费用及适应性维护费用)。 二、系统软件成测算 综上所述,系统软件的成本由软件的开发和维护成本所构成,即: C=C1+C2 (1) 式中:C为系统软件的开发成本;C1为系统软件的开发成本所构成;C2为系统软件的维护成本。 1、系统软件的开发成本C1的测算。 我们认为系统软件的开发成本按其工作量及单位工作量成本来测算是可行的,具体测算方法为按系统软 件的软件规模(一般为软件源程序的指令行数,不包括注释行)、社会平均规模指数以及工作量修正因素来 进行。尤其是CAD系统软件的实际测算,结合国内外研究成果的综合分析和专家咨询,软件社会平均生产率 参数和软件社会平均规模指数可分别确定为3.5和1.3左右;软件工作量订由八个因子哗配、五个等级组成。 2、系统软件维护成本C2的测算。 系统软件的维护为修正现有可运行软件并维护欺其主要功能不变的过程。系统软件在其交付使用后,其维护阶段在软件生命周期或生存期中占较大比重,有的可达软件生存周期的50-70%。因此,系统软件的维护成本是软件成本测算中不可忽略的一部分。 系统软件的维护包括三类:A、改正、纠正性维护;B、适应性维护;C、完美性维护。其中C类是为扩充 功能、提高性能而进行的维护,在软件资产价值评估中一般不计入该系统软件成本,而A、B两类,则与软 件的开发过程有着紧密的联系,应计入软件成本。 在系统软件维护阶段,对软件工作量的影响因素与开发阶段的影响因素基本相同,是开发阶段影响因素 的后的影响。因此,系统维护的可靠性越大,规模越复杂,隐错越难发现,纠错越难。系统软件越复杂, 要使其适应软、硬环境变化,进行适应性维护也越困难。当然,可靠性大、复杂度高的系统软件,其可维 护性要求也越高,软件在运行中出错的可能性也会少些。基于上述分析,系统软件维护成本的测算,乱高指可按 系统软件开发成本乘以一个该系统软件的维护参数来求取。这一维护参数,可按系统软件的复杂度从简单 到一般、到复杂的顺序,分别取0.15、0.20、0.25及念碰0.30、0.35、0.40等。 计算机系统软件作为计算机系统的组成部分,是信息社会的重要商品,也是知识经济社会中的重要资产。 系统软件同其他计算机软件一样,具有如下的特点: 1、系统软件是由许多人共同完成的高强度智力劳动的结晶,是建立在知识、经验和智慧基础上的具有独 创性的产物。系统软件的开发可以工程化,软件生产可以工厂化,因此,系统软件具有价值和使用价值。 同时,系统软件具有独创性(即原始性),所以软件著作权人对系统软件产品依法享有发表权、开发者身份权、使用权、许可权、获取报酬权及转让权。 2、系统软件产品是无形的,存在于磁盘等介质的有形载体中,通过载体进行交易。因此,带有系统 软件的磁盘交换价值,是磁盘自声价值与系统软件之和,而且主要是系统软件的价值。 3、系统软件产品的复制(批量生产)相应简单,其复制成本同其开发成本比较,几乎可以忽略不 计。因此,系统软件产品易被复制乃至剽窃。为保护系统软件产品的著作权,必须依法登记。 4、系统软件产品一般没有有形损耗,仅有无形损耗。系统软件产品的维护,一是由于系统软件自身 的复杂性,特别是为了对运行中新发现的隐错进行改正性维护;二是由于系统软件对其硬、软件环境有依赖性。硬、软环境改变时,系统软件要进行适应性维护;三是由于需求的变化,要求增强系统软件功能和提高系统软件性能,系统软件要进行完美性维护。因此,系统软件的维护在其生命周期中占有重要地位。同时,系统软件的维护过程是一个软件价值的增值过程。由上述测算方法可知,系统软件的维护费用,即使不计入完善性维护费用也已相当昂贵。不断的升级的新版本代替旧版本软件也是系统软件价值评估中应予考虑的一个特点..

对于一个大型的IT软件项目,由于项目的复杂性及IT项目的独特性,开发成本的估算不是一件容易的事情,它需要进行一系列的估算处理,因此,主要依靠分析和类比推理的手段进行,最基本的估算方法有以下几种:

● 成本建模技术

根据项目特征,用数学模型来预测项目的成本。一般采用历史成本信息(这些信息与项目成本的一些软件度量标准相关)来建立估算模型,并通过这个模型预测工作量和成本。

● 专家判定技术

也称为Delphi法,聘请一个或多个领域专家和软件开发技术人员,由他们分别对项目成本进行估计,并最后达成一致而获得最终的成本。

● 类比评估技术

根据以前类似项目的实际成本作为当前项目的估算依据。

● Parkson法则

Parkson法则表示工作能够由需要的时间来反映。在软件成本估计中,这意味着成本是由可获得的资源而不是由目标评价决定的。如果一个软件需要在12个月内由5个人来完成,那么工作量就是12 X 5 = 60个人月(PM)。

● 自上向下估算法

成本的估算,主要依据工作分解结构、产品的功能以及实现该功能的子功能组成形式逐层燃袜分配成本。

● 自下而上估算法

首先估计每个组成单元的成本,然后根据工作分解结构,通过累加方式得到最终的成本估计。

● 赢利定价法

软件的成本通过估计用户愿意在该项目上的投资来计算,成本的预算依靠客户的预算而不是软件的功能。

上面这些估算法都有它们的优势和不足,不能简单评价某种方法和好坏。在一个大型的IT项目中,通常要同时采用几种估算方法并且比较它们估算的结果,如果采用不同方法估算的结果大相径庭,就说明没有收集到足够的成本信息,应该继续设法获取更多的成本信息,重新进行成本估算,直到几种方法估算的结果基本一致为止。

成本预算是在确定总体成本后的分解过程。分解启段滚主要是作两个方面悄余的工作:一是按工作分解结构和工作任务(工作包)分摊成本,这样可以对照检查每项工作的成本,出现偏差时可以确定是哪项工作出了问题;二是按工期时段分摊成本,将预算成本分摊到项目工期的各个时段,这样,可以确定在未来某个时段累计应该花费的成本,并检查偏差,评价成本绩效。

目前最常用且最好用的度量方法主要用3种:面向规模(LOC)、面向功能点(FP)及COCOMO模型的度量方法。

自顶向下估算方法

估算人员参照以前完成的项目所耗费的总成本,来推算将要开发的软件的总成本,然后把它们按阶段、步骤和工作单元进行 分配,这种方法称为自顶向下估算方法。

它的优点是对系统级工作的重视,所以估算中不会遗漏系统级的诸如集成、用户手册和配置管拿拍磨理之类的事务的成本估算,且估算工作量小、 速度快。它的缺点是往往不清楚低级别上的技术性困难问题,而往往这些困难将会使成本上升。

自底向上估算方法

自底向上估算方法是将待开发的软件细分,分别估算每一个子任务所需要的开发工作量,然后将它们加起来 ,得到软件的总开发量。这种方法的优点是对每个部分的估算工作交给负责该部分工作的人来做,所以估算 较为准确。其缺点是其估算往往缺少与软件开发有关的系统工作级工作量,所以估算往往偏低。

差别估算方法

差别估算是将开发项目与一个或多个已完成的类似项目进行比较,找到与某个相类似项目的若干 不同之处,并估算每个不同之处对成本的影响,导出开发项目的总成本。该方法的优点是可以提高估算的准确度, 缺点是不容易明确“差别”的贺春界限。

其他

除上三种还有:

(1)专家估算法。

(2)类推估算法。

(3)算式估算法。 COCOMO估算模型

机构性成本模型COCOMO(Constructive Cost Mode)是最精确、最易于使用的成本估算方法之一。

该模型分为:基本COCOMO模型,是一个静态单变量模型,它是对整个软件系统进行估算;中级COCOMO模型,是一个静态多变量模型;详细COCOMO模型,将软件系统模型分为系统、子消斗系统和模块三个层次。

①基本COCOMO模型估算公式:

E=ab(KLOC)exp(bb)

D=cb(E)exp(db)

式中E为开发所需的人力(人/月)。D为所需的开发时间(月)。KLOC为估计提交的代码行。

ab、bb、cb和db是指不同软件开发方式的值。

②中级COCOMO模型。

其估算公式为:E=ai(KLOC)exp(bi)×乘法因子,ai,bi

Putnam成本估算经验模型

Putnam估算模型是一种动态多变模型,它是假设在软件开发的整个生存期中工作量的分布。如下图:

根据曲线导出关于提交的代码行数L,人力K(人/年)和时间td(年)之间估算公式:

式中Ck是技术状况有关的常数,它的典型值如下:

对于差的开发环境 Ck=2500

对于好的开发环境 Ck=10000

对于有的开发环境 Ck=12500

由上述公式可以得到所需开发工作量的公式:


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/12378015.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-25
下一篇 2023-05-25

发表评论

登录后才能评论

评论列表(0条)

保存