我的学习感悟:对于这个并不懂,尤其是什么静态单变量、动态多变量的。先暂时留着,以后继续学习。
目前,有三种基本的软件项目成本估算方法:自顶向下、自底向上和差别估算法。自顶向下的方法是对整个项目的总开发时间和总工作量做出估算,然后把它们按阶段、步骤和工作单元进行分配;自底向上的方法是分别估算个工作单元所需的开发时间,然后汇总得出总的工作量和开发时间;差别估算是将开发项目与一个或多个已完成的类似项目进行比较,找出与某个类似项目的若干不同之处,并估算每个不同之处对成本的影响,导出开发项目的总成本。
专家估算法
  专家估算法是依靠一个或多个专家对项目做出估计,它要求专家具有专门知识和丰富的经验,是一种近似的猜测。Delphi法是最流行的专家评估技术,在没有历史数据的情况下,这种方式适用于评定过去与将来,新技术与特定程序之间的差别,但专家"专"的程度及对项目的理解程度是工作中的难点,尽管Delphi技术可以减轻这种偏差,专家评估技术在评定一个新软件实际成本时通常用得不多,但是,这种方式对决定其它模型的输入时特别有用。Delphi法鼓励参加者就问题相互讨论,要求有多种软件相关经验人的参与,互相说服对方。

类推估算法
  类推估算法是比较科学的一种传统估算方法,它适合评估一些与历史项目在应用领域、环境和复杂度的相似的项目,通过新项目与历史项目的比较得到规模估计。类推估算法估计结果的精确度取决于历史项目数据的完整性和准确度,因此,用好类推估算法的前提条件之一是组织建立起较好的项目后评价与分析机制,对历史项目的数据分析是可信赖的。
  这种方法的基本步骤是:
  (1) 整理出项目功能列表和实现每个功能的代码行;
  (2) 标识出每个功能列表与历史项目的相同点和不同点,特别要注意历史项目做得不够的地方;
  (3) 通过步骤1和2得出各个功能的估计值;
  (4) 产生规模估计。
算式估算法
  算式估算法利用经验模型进行成本估算,它通常采用经验公式来预测软件项目计划所需要的成本、工作量和进度数据。目前还没有一种估算模型能够适用于所有的软件类型和开发环境,从这些模型中得到的结果必须慎重使用。
(1) Putnam模型
  Putnam模型是一种动态多变量模型,它是假定软件开发的整个生存期中工作量的分布,如一个30人年以上的项目,其人力使用分布如图7.3所示。
  然后根据曲线导出一个估算公式:

(2) COCOMO模型
  结构性成本模型COCOMO(COnstructive COst MOdel)是一种精确的、易于使用的成本估算方法,它分为基本COCOMO模型和中级COCOMO模型两种类型。基本COCOMO模型是一个静态单变量模型,它用一个以已估算出来的源代码行数(LOC)为自变量的经验函数来计算软件开发工作量。中间COCOMO模型则在用LOC为自变量的函数计算软件开发工作量的基础上,再用涉及产品、硬件、人员、项目等方面属性的影响因素来调整工作量的估算。更详细的COCOMO模型除了包括中间COCOMO模型的所有特性外,还考虑了在需求分析、软件设计等每一步的影响。
  * 基本COCOMO模型估算公式
  E=ab(KLOC)exp(bb)
  D=cb(E)exp(db)
  其中,E为开发所需的人力(人月),D为所需的开发时间(月),KLOC为估计提交的代码行,ab、bb、cb和db为不同软件开发方式的值,见下表。

方式

ab
bb
cb
db

组织型

2.41.052.50.38

半独立型

3.01.122.50.35

嵌入型

3.61.22.50.32     由以上公式可以导出生产率和所需人数的公式:
  生产率=(KLOC)/E(代码行/人月)
  人数=E/D
  * 中级COCOMO模型估算公式
  中级COCOMO模型先产生一个基本COCOMO模型一样形式的估算公式,然后对15个成本驱动属性打分,定出乘法因子,对公式进行修正。
  15个影响软件工作量的因素见下表:
工作量因素fi

非常低

正常

非常高

超高

产品因素软件可靠性
数据库规模
产品复杂性0.750.881.001.151.400.941.001.081.160.700.851.001.151.301.65计算机因素执行时间限制 
存储限制 
虚拟机易变性 
环境周转时间

0.87 
0.871.00
1.00
1.00
1.001.11
1.06
1.15
1.071.30
1.21
1.30
1.151.66
1.56人的因素分析员能力 
应用论域实际经验 
程序员能力 
虚拟机使用经验 
程序语言使用经验
1.29
1.42
1.21
1.411.46
1.13
1.17
1.10
1.071.00
1.00
1.00
1.00
1.000.86
0.91
0.86
0.90
0.950.71
0.82
0.70项目因素现代程序设计技术 
软件工具的使用 
开发进度限制1.24
1.24
1.231.10
1.10
1.081.00
1.00
1.000.91
0.91
1.040.82
0.83
1.10  中级COCOMO模型的估算公式:
  E=ai(KLOC)exp(bi)×乘法因子
  其中ai和bi的值见下表。
方式aibi组织型3.21.05半独立型3.01.12嵌入型2.81.2(3) IBM模型
  1977年,Walston和Felix总结了IBM的60个项目数据,提出了如下的估算公式:
  E=5.2×L0.91, L是源代码行数(以KLOC计),E是工作量(以PM计)
  D=4.1×L0.36=2.4×E0.35, D是项目持续时间(以月计)
  S=0.54×E0.6, S是人员需要量(以人计)
  DOC=49×L1.01, DOC是文档数量(以页计)

软件开发成本估算方法相关推荐

  1. 软件开发成本估算方法【转】

    转自:http://hi.baidu.com/wangziming/blog/item/d8ee34010b18cf0e7bec2c4b.html 我的学习感悟:对于这个并不懂,尤其是什么静态单变量. ...

  2. 软件产品成本估算方法

    软件开发成本估算主要指软件开发过程中所花费的工作量及相应的代价. 不同与传统的工业产品,软件的成本不包括原材料和能源的消耗,主要是人的劳动的消耗.另外,软件也没有一个明显的制造过程,它的开发成本是以一 ...

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

    文章目录 四种软件成本估算方法 软件成本估算的背景知识 试题题解 四种软件成本估算方法 当下行业内在进行软件成本估算时,常用的有4种估算方法.这4种软件成本估算方法分别是: 以"估" ...

  4. 常见的7种软件规模估算方法 优劣势比较

    业内主要的软件规模估算方法:LOC估算方法.故事点估算法.FPA功能点估算方法.COSMIC功能点估算方法.快速功能点估算方法.IFPUG功能点估算方法和自动化功能点估算方法. 1.LOC估算方法 L ...

  5. 软件工程软件开发成本度量规范_软件开发成本度量方法

    软件成本度量一直都是软件行业的一个痛点问题.软件度量一度乱象丛生.拍脑袋的定价方式曾大行其道.软件成本度量的乱象直接导致了软件价格的诸多问题.比如预算费用存在浪费或不足的现象,招标存在投标额过低过高等 ...

  6. 软件规模估算常用的5种方法及实用工具。

    方法一.Delphi 法 Delphi法是最流行的专家评估技术,在没有历史数据的情况下,这种方式适用于评定过去与将来,新技术与特定程序之间的差别,但专家"专"的程度及对项目的理解程 ...

  7. 软件成本估算流程详解及案例分享【国内行业规范-NESMA】

    术语 基本概念 功能点 FP function point 应用边界 application boundary 控制信息 Control Information 基本处理过程 elementary p ...

  8. COCOMOII模型--软件成本估算

    1.COCOMOII模型介绍 1981年,Barry Boehm在其经典著作<软件工程经济学>中,介绍了一种软件成本估算模型的层次体系,称为COCOMO(Constructive Cost ...

  9. 理论与实践的完美结合:《软件项目估算》译者序

    这本书需要仔细读. 没有哪一本书能够替代此书在如何建立生产率模型方面的严谨性与实用性,它讲的不是经验法估算工作量,而是模型法估算工作量. 它理论完备.严谨,并给出了工程化的软件工作量估算方法和大量的经 ...

  10. 软件的成本与定价如何决策?PMP软件开发规模估算和成本估算方法详解

    在进行软件开发之前,需要进行软件成本估算,计算项目的经济可行性.成本估算是立项的依据,是项目计划的基础. 软件估算方法包括:规模估算.工作量估算.进度估算和成本估算. 本节主要介绍规模估算的调整.工作 ...

最新文章

  1. ASP.NET MVC开发微信(四)
  2. AIX系统日志学习笔记之三
  3. Python_基础_4
  4. XML--视频--人脸VOC
  5. POE交换机应用技术知识大全
  6. Make Them Equal 埃氏筛法(1200)
  7. 2.scala控制结构、函数、异常处理
  8. 服务管理-文件服务器
  9. 最后一周!导师推荐的转录组和可视化学习捷径
  10. 面向IT专业人员的8个新兴AI工作
  11. 今晚8点,Oracle ACE男神Roger详解Oracle中为什么没有double write?
  12. 【OpenStack】【Keystone】安装与配置详解
  13. Linux:(ubuntu)命令行下显示方框的问题
  14. 解决异常:公共语言运行时检测到无效的程序
  15. 数据库(表结构)设计技巧及注意事项
  16. 频率f,角频率Ω和数字频率w的物理含义
  17. vga转html电脑打不开,如何解决HDMI到VGA转换的常见故障_四种解决方法
  18. Android11 DHCP初识
  19. 三井化学将增加TAFMER™高性能弹性体产能
  20. 一节课精通Emmet编写开发工具-姜威-专题视频课程

热门文章

  1. PointRCNN 车辆 行人 自行车识别
  2. 那位有epson R1900中文清零软件?
  3. AlphaGo开源代码
  4. watir_WatirMaker简介-录制基于Ruby的Watir
  5. HTML自动弹出窗口代码
  6. 基于QT的网络五子棋游戏程序的设计与实现
  7. 扫描仪 无线 打印服务器,自带扫描仪、还能无线打印,Find X2 Pro实用功能分享...
  8. .net扫盲-网页对话框应用
  9. lisp 标注螺纹孔_尺寸标注之螺纹标注的正确方式
  10. Matlab:求出n边凹多边形内角