【中级软考】软件成本估算方法(专家估算、Wolverton、COCOMO、COCOMOⅡ【应用组合模型、早期开发模型、结构化后期模型】)

四种软件成本估算方法

当下行业内在进行软件成本估算时,常用的有4种估算方法。这4种软件成本估算方法分别是:

以“估”为主的——经验法和类推法。

以“算”为主的——类比法和方程法。

下面我们分别介绍一下这4大软件成本估算方法。

经验法:经验法也叫专家法(专家估算?),是由行业内经验丰富的专家背靠前一起依据自己的行业经验对软件项目进行整体的估算。前期的经验法基本上属于拍脑袋来进行项目的大概估算,后续的经验法便基于WBS的软件进行估算和加进了DELPHI/加权平均。这种方法依赖评估人员的主观性过大,所以估算出的结果误差较大。

类推法:类推法是基于量化的经验进行估算的。采用类推法时,所选择的历史项目与待评估的项目一定要是高度相似的,历史数据也要尽量选择本组织内的数据,并且一定要对差异之处进行调整。类推法虽然是迄今为止理论上最可靠的估算方法,由于它是以“估”为主的,脱离不了评估人员的主观性,所以使用类推法的估算结果经常产生极大偏差。

类比法:类比法是基于大量历史项目样本数据来确定目标项目的预测值,通常是以50百分位数为参考而非平均值。当待评估项目与已完成项目在某些项目属性(如应用领域、系统规模、复杂度、开发团队经验等)类似时,可以使用类比法。类比法的行业基准较少,此时可以通过选择单个项目属性进行筛选比对,根据结果再进行工作量调整。

方程法(算式估算法?Putnam模型?COCOMO模型?COCOMOⅡ模型?):方程法是基于基准数据建模,可以行业数据与企业数据相结合,通过输入各项参数,确定估算值。

当需求极其模糊或不确定时,如果此时具有高度类似的历史项目,则可直接采用类推法,若此时具有与本项目部分属性类似的一组基准数据,则可以直接采用类比法。对于规模估算已经开展的项目,可采用方程法。

软件成本估算的背景知识

随着知识经济、信息时代的来临,计算机软件业迅猛发展。商品化、资本化、资产化的计算机软件的价值 评估的社会需求也日益增多,而且有越来越多的趋势。由于系统软件通常是一些规模大、复杂程度高的人一 机系统,因此,系统软件的开发、使用、维护、管理的过程,是一个非常复杂的系统工程,需要有巨大的人 力、物力、财力资源,需要各种计算机软、硬件的支持。这一特点是在系统软件评估中应予充分考虑的,也 是从成本途径评估系统软件价值时应予着重关注的。据统计,软件成本在软、硬件总成本中的份额,已从50 年代的百分之十几,上升到近期的百分之七八十,而且还在持续上升。软件成本中的开发成本和维护成本的 比例,也从50年代的接近1:1,达到了近期的1:2。系统软件开发成本和维护成本在整个生命周期中份额。

本文对上表的数字作了部分调整。主在维护阶段剔除了完善性维护成本。这一项成本不应列入委托评估系 统软件的本次价值评估。这样,开发、维护成本在整个生命周期中的份额也相应发生了变化。  

一、系统软件的成本构成  
系统软件的成本作为一个经济学范畴,应反映软件产品在其生产过程中所耗费的各项费用,为原材料、燃料、动力、折旧、人工费、管理费用、财务费用待项开支的总和。  
从财务角度来看,列入系统软件的成本有如下的项目: 
(1)硬件购置费如计算机及相关设备的购置,不 间断电源、空调器等的购置费。 
(2)软件购置费,如操作系统软件、数据库系统软件和其它应用软件的购 置费。 
(3)人工费,主要是开发人员、操作人员、管理人员、的工资福利费等。 
(4)培训费。 
(5)通讯费,如 购置计算机网络设备、通讯线路器材、租用公用通讯线路等的费用。 
(6)基本建设费,如新建、扩建机房、购置计算机机台、机柜等的费用。 
(7)财务费用。 
(8)管理费用,如办公费、差旅费、会议费、交通费。 
(9)材料费,如打印纸、包带、磁盘等的购置费。 
(10)水、电、汽、气费。 
(11)专有技术购置费。 
(12)其它费用,如资料费、固定资产折旧费及咨询费。  
从系统软件生命周期构成的两阶段即开发阶段和维护阶段看,系统软件的成本由开发成本和维护成本构成。其中开发成本由软件开发成本、硬件成本和其他成本组成,包括了系统软件的分析/设计费用(含系统调研、需求分析、系统分析)、实施费用(含编程/测试、硬件购买与安装、系统软件购置、数据收集、人员培训)及系统切换等方面的费用;维护成本由运行费用(含人工费、材料费、固定资产折旧费、专有技术及技术资料购置费)、管理费(含审计费、系统服务费、行政管理费)及维护费(含纠错性维护费用及适应性维护费用)。  

二、系统软件的成本测算程序  
1、根据待开发软件的特征、所选用硬件的特征、用户环境特征及以往同类或相近项目的基础数据,进行软件规模测算。  
2、由系统软件的成本构成,结合成本影响因素、环境因素以及以往同类或相近项目数据分析,进行软件 成本测算。其中包括了安装、调试的人力和时间表、培训阶段的人力和时间表。  
3、系统软件成本测算的风险分析。这是基于系统软件成本测算的不确定性、成本测算的理论和测算技术 的不成熟性而提出的工作程序。系统软件成本测算的风险因素应包括:  
(1)对目标系统的功能需要、开 发队伍、开发环境等情况的了解的正确性;  
(2)所运用历史数据及模型参数的可靠性;  
(3)系统分析 中的逻辑模型的抽象程度、业务处理流程的复杂程度及软件的可度量程度;  
(4)软件新技术、替代技术的出现和应用对成本测算方法的冲击的影响;(5)用户在系统软件开发中的参 与程度,开发队伍的素质及所采用开发模式对开发成本的影响;  
(6)对系统软件开发队伍复杂因素认识程度;  
(7)系统软件开发人员及其组成比便的稳定性; 
(8)系统软件开发和维护经费,时间要求等方面的变更等非技术性因素所带来的风险等。  
在系统软件价值评估中实施上述程序进行成本测算时,除了应坚持持资产评估操作程序中规定的各项原 则外,还应遵循真实性与预见性原则、透明性与适应性原则和可操作性与规定性原则。  

三、系统软件成测算  
综上所述,系统软件的成本由软件的开发和维护成本所构成,即: 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、系统软件产品一般没有有形损耗,仅有无形损耗。系统软件产品的维护,一是由于系统软件自身 的复杂性,特别是为了对运行中新发现的隐错进行改正性维护;二是由于系统软件对其硬、软件环境有依赖性。硬、软环境改变时,系统软件要进行适应性维护;三是由于需求的变化,要求增强系统软件功能和提高系统软件性能,系统软件要进行完美性维护。因此,系统软件的维护在其生命周期中占有重要地位。同时,系统软件的维护过程是一个软件价值的增值过程。由上述测算方法可知,系统软件的维护费用,即使不计入完善性维护费用也已相当昂贵。不断的升级的新版本代替旧版本软件也是系统软件价值评估中应予考虑的一个特点。

试题题解

  • 专家估算:根据专家的行业经验和历史数据对软件开发过程的成本进行估算。
  • Wolverton:也叫loc方法,通过执行的源代码函数来进行成本估算,估算准确性低,现在已经不用了。
  • COCOMO:构造性成本模型,是一种参数化的成本估算方法。例如通过软件的难度、规模等作为参数进行成本估算。
  • COCOMOⅡ:COCOMOⅡ是对COCOMO作出的改进版,把最新软件开发方法考虑在内。COCOMOⅡ由三个不同的计算模型组成:
    1)应用组合模型:适用于使用现代GUI工具开发的项目。
    2)早期开发模型:适用于在软件架构确定之前对软件进行粗略的成本和事件估算,包含了一系列的新的成本和进度估算方法。基于功能点或者代码行。
    3)结构化后期模型:是COCOMOⅡ中最详细的模型。它使用在整体软件架构已确定之后。包含最新的成本估算、代码行计算方法。

参考文章1:4种软件成本估算方法解析

参考文章2:软件项目中的成本构成及估算方法

软件开发成本估算 软件开发成本主要是指软件开发过程中所花费的工作量及相应的代价。它不包括原材料和能源的消耗,主要是人的劳动的消耗。 人的劳动消耗所需代价就是软件产品的开发成本软件产品开发成本的计算方法不同于其它物理产品成本的计算。 软件开发成本是以一次性开发过程所花费的代价来计算的。 软件开发成本估算,应是从软件计划、需求分析、设计、编码、单元测试、组装测试到确认测试,整个软件开发全过程所花费的代价作为依据的。 对于一个大型的软件项目,由于项目的复杂性,开发成本估算不是一件简单的事,要进行一系列的估算处理。主要靠分解和类推。 基本估算方法分为三类。 自顶向下的估算方法 自底向上的估计法 差别估计法 这种方法的主要思想是从项目的整体出发,进行类推。 估算人员根据以前已完成项目所消耗的总成本(或总工作量),推算将要开发软件的总成本(或总工作量),然后按比例将它分配到各开发任务单元中去,再来检验它是否能满足要求。 ...... 差别估计法 这种方法综合了上述两种方法的优点,其主要思想是把待开发软件项目与过去已完成的软件项目进行类比,从其开发的各个子任务中区分出类似的部分和不同的部分。 类似的部分按实际量进行计算,不同的部分则采用相应方法进行估算。 这种的方法的优点是可以提高估算的准确程度,缺点是不容易明确“类似”的界限。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Dontla

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值