文章目录

  • 四种软件成本估算方法
  • 软件成本估算的背景知识
  • 试题题解

四种软件成本估算方法

当下行业内在进行软件成本估算时,常用的有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:软件项目中的成本构成及估算方法

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

  1. 【中级软考—软件设计师】2操作系统2.2进程的概念【】:2.2.1进程的概念

    考察:软考中并不高频 线程会考到:共享的一些数据内容 进程:状态的变迁 考点一:线程的概念 线程中共享的有哪些,不能共享的有哪些 进程的概念 考点一:线程的概念 进程管理:进程的概念 进程管理:进程与 ...

  2. 【中级软考—软件设计师】2操作系统2.7磁盘管理【**】:2.7.1磁盘管理01

    考点: 存储时间计算 双,单缓冲区的区别处理 优化存储的形式[了解] 磁盘调度算法的掌握 磁盘管理01 软考中当存储来处理 存储管理--磁盘管理 坑坑洼洼的磁道记录了一些信息 从外向内磁道编号递增 磁 ...

  3. 中级软考-软件设计师(六)

    开发方法(结构化和面向对象) 1.通信图(协作图) 描述的是对象和对象之间的关系,即一个类操作的实现."协作"作为一个结构事物用于表达静态结构和动态行为的概念组合,表达不同事物相互 ...

  4. 【中级软考—软件设计师】2操作系统2.2进程的概念【三态模型的变化】:2.2.2进程的状态

    考察: 掌握三态模型状态变迁,相应的条件位置 掌握五态模型状态变迁,相应的条件位置[软考考的是有挂起的五态] 进程的概念 考点二:线程的状态 有多种模型,我们掌握两种 三态模型的变化 等待,某个事件, ...

  5. 中级软考-软件设计师(三)

    计算机网络 1.netstat -n :可以获取本计算机通过那些端口和外网的IP和端口进行连接:不能诊断DNS故障. state状态: ESTABLISHED:已经建立连接 TIME_WAIT:等待连 ...

  6. 中级软考-软件设计师(四)

    数据结构 1.哈夫曼数 构造哈夫曼树,左小右大,左0右1.下图反了. 哈夫曼树是个没有度为1的二叉树,即n=n0+n2.对于任意树,有n0=n2+1.所以,对于哈夫曼树,n=2n2+1=2n0-1. ...

  7. 中级软考-软件设计师(二)

    操作系统 1.单缓冲区和双缓冲区 单缓冲区的时间花费= (读入+送至+处理)  +  (读入+送至)*(盘块数-1 ) 双缓冲区的时间花费= (读入+送至+处理)  +  读入*(盘块数-1) 2.P ...

  8. 【中级软考—软件设计师】1计算机组成与体系结构1.11性能指标【*】:1.11性能指标

    考察: 性能指标的定义,概念,一些参数计算的问题 性能指标 系统性能设计--性能指标[了解] 字节和数据通路的宽度 数据通路的宽度:一次性我们的数据线路通过的数据量[单位bit] 主存容量和存取速度 ...

  9. 【中级软考—软件设计师】2操作系统2.10 作业管理【*】:2.10.1 作业管理

    考察: 未考,了解 作业管理 作业管理--作业状态与作业管理 作业管理--作业调度算法 例题讲解 选B

最新文章

  1. python隐藏部分代码_python隐藏类中属性的3种实现方法
  2. matlab中cell的使用
  3. 设计模式学习笔记三——Abstract Factory模式
  4. pythonjs设置_python dom操作
  5. “铜死亡”顶级研究文献解读
  6. [转]个人开发者做一款Android App需要知道的事情
  7. Gora官方文档之二:Gora对Map-Reduce的支持
  8. GitHub Copilot 现已登陆 Visual Studio!
  9. Redis的备份与恢复
  10. 惊艳!28岁就任副教授,“最美女教授”年纪轻轻已是博导、院长
  11. root 授予oracle权限,oracle – 列出具有root(管理)权限的用户
  12. FinTech领域的风险控制——策略篇
  13. git报错:Reinitialized existing Git repository in ...解决方法
  14. python的自带数据集_机器学习基础 / 加载scikit-learn自带的数据集 - 汇智网
  15. web网页设计实例作业 ——古典中国风工艺美术(9页) html+css+javascript网页设计实例
  16. ARM SIMD 指令集:NEON 简介
  17. AR发展简史(未完待续)
  18. java改变背景图片大小_java编写界面设置 背景图片的大小
  19. 数据结构上机应用:栈和队列
  20. ANOMALY: meaningless REX prefix used

热门文章

  1. bk3432,bk3633,BK3431Q蓝牙软件代码与原理图 PCB
  2. 腾讯应用宝认领应用报错Invalid keystore format
  3. 【愚公系列】2022年01月 Django商城项目 24-商品列表页功能实现
  4. 月薪从10k到30k,一个普通测试工程师的3年涨薪之路...
  5. 元宇宙概念火热,哪些“元技能”人才炙手可热?
  6. OSB Message-Level Custom Security
  7. OKR案例:销售部门在OKR执行中的实战问题
  8. 现代操作系统笔记 2.1 进程
  9. 鬼谷子:深交四种人,绝交三种人
  10. 新闻客户端07 - 新闻详情页