用于软件项目工作量估算的方法有以“估”为主的专家法和类推法,以“算”为主的类比法和方程法。在软件估算的实践中,类比法和类推法也是普遍使用的估算方法,但很多人搞不清二者的应用范围和估算步骤,现在笔者就对这两种估算方法做一下详细介绍。

1、类比法
  
  类比法是指将本项目的部分属性与类似的一组基准数据进行比对,进而获得待估算项目工作量、工期或成本估算值的方法。类比法是基于大量历史项目样本数据来确定目标项目的预测值,通常是以50百分位数为参考而非平均值。选择类比法进行估算,应根据项目的主要属性,在基准数据库中选择主要属性相同的项目进行比对。
  
  类比法适合评估那些与历史项目在应用领域、系统规模、环境和复杂度方面相似的项目,通过新项目与历史项目的比较得到估计数据。类比法估算结果的精确度取决于历史项目数据的完整性和准确度。因此,用好类比法的前提条件之一是组织建立起较好的项目后评价与分析机制,对历史项目的相关属性建立基线数据。
  
  适用范围:
  
  当需求极其模糊或不确定时,如果此时有与本项目类似属性(如规模、应用类型、复杂度、开发团队经验等)的一组基准数据,则可直接采用类比法,充分利用基准数据来估算工作量。类比法可以在整个项目级上做基准比对,也可以在子系统级上进行。
  
  估算过程:
  
  1) 确定待估算项目所具有的属性特点,如系统的规模、复杂度、应用类型、业务领域、开发人员的经验和能力等。
  
  2) 查询历史数据库并筛选“最相似”的项目属性数据。
  
  3) 如果待估算项目属性与历史项目的主要属性类似,则可依据历史项目的基线数据直接得出待估算项目的工作量合理范围。
  
  4) 如果同时满足待估算项目主要属性的历史项目太少,则可针对待估算项目的每个属性与历史项目相应属性的基准数据分别比对,再分别计算得出P25/P50/P75的平均值作为估算值。
  
  5) 一般情况下,取P50的工作量数据作为待估算项目工作量最可能的值。
  
  应用示例1:
  
  项目范围描述:为某银行新开发应用驾驶舱项目,以支持金融相关业务数据的图形化展示和决策分析,如经营指标、绩效指标、财务指标、风险指标、监管指标等,使用仪表盘技术,综合展示现状及目标完成进度以帮助了解目前经营指标是否均衡发展,市场规模是否具有良好发展态势。
  
  对待估算项目的主要属性进行识别,分别为:应用类型(BI)、业务领域(银行)、新开发项目。
  
  经查询企业基准数据库后发现,公司做过55个与待估算项目属性基本相同的项目。
  
  查询结果如下:

从表中数据可得出待估算的项目最可能的工作量为3845人时(P50),合理的工作量范围在3366人时(P25)和4210人时(P75)之间。
  
  应用示例2:
  
  项目范围描述:为某集团企业开发一套结算报销审核和资产管理系统,以支持该单位的报销单据的填写、审核和审批,并支持固定资产采购的申请、审批和资产的借用、分配和淘汰管理。
  
对待估算项目的主要属性进行识别,可以识别出项目的3个主要属性是新开发类型、业务领域和应用类型,分别为“新开发”、“集团企业”、“业务处理”。

经查询企业基准数据库后发现,同时符合3个筛选条件的项目只有5个,数量过少,参考价值不大。因此选择单一属性分别比对,查询结果如下:

从表中数据可计算出,该项目最可能的工作量为5238人时,计算方法为(5500+5240+4975)/3。工作量估算的合理范围在4744人时和5938人时之间(采用P25和P75的值分别计算平均值)。
  
  2、类推法
  
  类推法是指将本项目的部分属性与高度类似的一个或几个已完成项目的数据进行比对,适当调整后获得待估算项目工作量、工期或成本估算值的方法。选择类推法进行估算,通常只参照1~2个高度类似的项目,同时根据待估算项目与参照项目的差异,进行适当调整。
  
  适用范围:
  
  1) 当需求极其模糊或不确定时,较难估算工作量,如果此时具有高度类似的历史项目,则可直接采用类推法,充分利用历史项目数据进行估算。
  
  2) 适用评估一些与历史项目在业务领域、应用类型、环境和复杂度等方面的相似项目,通过新项目与历史项目的比较进行估计。
  
  3) 该方法估算结果的精确度取决于已完成项目数据的完整性、准确度,以及两个项目之间的相似度。如果没有类似的项目,该方法就不能应用。
  
  估算过程:
  
  1) 识别出待估算项目的主要属性。
  
  2) 查找本组织曾经做过的类似的历史项目。
  
  3) 对比历史项目,标记差异点,经过调整后计算出待估算项目的工作量。
  
  应用示例:
  
  以下项目是基于某公司银行监管报送产品框架,依据人行和银监会要求的报送制度,做相应的功能定制开发。示例中的甲、乙客户都属于城市商业银行。
  
  项目范围描述:采用公司自有产品框架,为乙银行开发一套满足监管报送制度的系统。银行业务系统包括核心业务系统和信贷管理系统,监管报送数据来自这两个系统,经过数据抽取、清洗、汇总后按要求分别上报人行和银监会。
  
  历史项目情况:公司为甲银行开发过类似的系统,并已上线运行。经统计,项目开发总工作量为75人天,其中监管报送部分的工作量为60人天,行内报表部分的工作量为15人天,即甲银行在监管报送业务功能的基础上,增加了3张行内定制报表。
  
  需求差异:经过对甲、乙客户项目的分析,确认二者的应用类型相同,项目复杂度和业务领域类似,并且在监管报送方面的项目范围相同,但乙银行对行内报表没有提出额外的开发要求。
  
  基于以上信息,采用类推法估算乙客户项目最可能的工作量为60人天,与甲银行在监管报送部分的开发工作量相同。
  
  类比法和类推法估算都依赖于项目的历史数据,类比法要求组织建立基准数据库,而类推法要求新项目和历史项目具有高度类似的部分属性。(来源:北京软件造价评估技术创新联盟)

如何采用类比法和类推法估算软件项目工作量相关推荐

  1. 浅析软件研发成本估算过程之估算软件项目工作量

    在完成规模估算后,应当开展工作量估算工作,若当前项目未开展规模估算,也可直接启动工作量估算工作.工作量估算时,可采用方程法.类比法和类推法. 方程法:即基于基准数据建立参数模型,通过输入各项参数,确定 ...

  2. 关于软件项目工作量估算的若干问题

    作者:张克强 软件项目工作量估算从估算依据上看可以分成如下两类: 1,基于规模估算 2,基于工作量估算 基于规模估算的情况下,需要估算软件项目的规模.本文首先来看规模方面的问题. 问题1:如何表达规模 ...

  3. 软件项目工作量估算之软件复用程度分析

    软件工作量估算是我们在对一个软件项目成本估算过程中,在完成软件规模估算后需要进行的第2项估算工作.在软件项目工作量估算过程中,我们除了要进行风险分析外,还要考虑软件复用的程度. 软件复用就是将已有的软 ...

  4. 软件项目工作量估算中使用的功能点方法是什么?

    简单的说,功能点方法是一种估算软件项目大小的方法,它是从用户视角出发,通过量化系统功能来度量软件的规模,这种度量主要基于系统的逻辑设计.功能点规模度量方法在国际上的应用已经比较广泛,并且已经取代代码行 ...

  5. 软件项目工作量评估方法简述之COSMIC功能点方法

    (一) 简介 COSMIC 是通用软件度量国际联盟的简写(Common Software Measurement International Consortium,COSMIC),它成立于1998 年 ...

  6. 采用简化原型法进行软件项目需求分析

    发布于:软件开发网 来源:Internet 作者:网络收集 时间:2008-11-25 点击: 11/3/2009 10:51:36 AM 前言:需求分析阶段是管理信息系统(MIS)开发最重要的阶段. ...

  7. 如何对一个软件项目的成本进行评估或估算?

    在对一个软件项目进行成本估算或评估时,应该包括从项目立项直至项目研发活动结束所花费的资源总和,并且可以按阶段进行估算或测量. 软件成本估算的基本过程是什么呢? 软件成本估算的过程可分为:估算规模.估算 ...

  8. 软件研发成本估算过程之估算软件规模概述

    通常情况下,规模估算是软件成本估算过程的起点.估算规模是后续计算软件项目的工作量.成本和进度的主要输入,是项目范围管理的关键,因此,在条件允许的情况下,应进行规模估算.在规模估算过程中,需要注意以下情 ...

  9. 软件项目的规模、工作量和成本是如何进行估算的

    1. 基于代码行和功能点的估算 软件项目的规模是影响软件项目成本和工作量的主要因素.在基于代码行(loc,line of code)和功能点(function point)的估算方法中,利用代码行和功 ...

  10. 两种电致发光器件EQE测量方法(光分布法和积分球法)

    本人独立开发EQE计算软件,光分布法和积分球法,软件界面如下,同时也提供整体解决方案 以下文字引用这个部分:http://mp.ofweek.com/display/a045663726976 由于是 ...

最新文章

  1. java soap协议头_java – 服务器无法识别HTTP标头“SOAPAction”的值
  2. Python机器学习基础教程-第2章-监督学习之K近邻
  3. 杭电1018 Big Number
  4. PDT + Xdebug 调试 PHP
  5. 开源在线文档编辑工具_开源暑期实习,在线教育新工具等
  6. android 拖拽gridview,Android 可拖拽的GridView效果实现, 长按可拖拽和item实时交换
  7. python如何爬取sci论文_通过爬虫确定SCI期刊的发表周期
  8. 工信部:短信可为 16 亿用户提供行程证明;OPPO 回应造芯计划;Windows Terminal 0.9 发布| 极客头条...
  9. 清空sql server数据库日志
  10. 卸载所有supervisor残留_拯救C盘!这个良心的卸载工具还是免费的?!
  11. zblog伪原创插件(2021最新版)
  12. linux 网桥代码分析之网桥端口设备接收数据包处理分析Ⅴ
  13. GitLab实现CICD自动化部署
  14. linux系统日志报错kernel,Linux 系统日志 kernel: __ratelimit: xxx callbacks suppressed-Fun言...
  15. Matching the Blanks: Distributional Similarity for Relation Learning (通篇翻译)
  16. 锅圈食汇:火锅食材超市先行者 正离“火锅“越来越远
  17. 小米手机5s Plus超简单刷成开发版启用Root超级权限的经验
  18. Jsp+Servlet+Mysql简单的登录
  19. DOTA-NHS ester,170908-81-3(三氟乙酸盐),1823122-52-6,DOTA-活性酯用于成像探针
  20. 计算机系微电子专业就业前景,2019微电子技术专业就业前景和就业方向分析

热门文章

  1. C语言全局变量,局部变量,静态局部变量的区分
  2. 机器人油封_机器人油封 机器人减速机 机器人伺服电机油封 KVNOK油封
  3. Golang中如何处理tcp粘包
  4. python 绝对值_Python绝对值– abs()
  5. java集合与数组的区别
  6. 十大门店进销存管理系统软件测评,秦丝长年稳居榜首
  7. 模型运行速度FPS测试以及参数Parameter计算代码
  8. HCIA--路由交换
  9. 草图大师SketchUp 2022 安装教程
  10. 智慧(灯杆)路灯系统集成解决方案详解