软件项目成本计划
项目规模估算方法
代码行估算法(误差较大)
软件项目规模: 即工作量,例如软件规划,软件管理,需求分析,系统设计,编码,测试,以及后期维护等任务。
规模单位:
- LOC(Loc of Code) 源代码长度的测量
- FP(Function Point) 用系统的功能数量来测量
- 人月
- 人年
- 人天
软件项目成本
- 完成软件规模相应付出的代价
- 待开发的软件项目需要的资金
- 人的劳动力的消耗所需要的代价是软件产品的主要成本
- 货币单位表示成本
代码行估算法
- 从软件程序量的角度定义项目规模
- 与具体的编程语言有关
- 分解足够详细
- 有一定的经验数据
代码行技术的主要优点
- 代码是所有软件开发项目都有的”产品”,而且容易计算代码行数
代码行技术的缺点
- 对代码行没有公认的可接受的标准定义
- 代码行数量依赖于所用的编程语言和个人的编程风格
- 在项目早期,需求不稳定,设计不成熟,实现不确定的情况下很难准确的估算代码行量
- 代码行强调编码的工作量,只是项目实现阶段的一部分
功能点估算
传统估算方法- – -功能点估算
- 最早提出功能点估算法的是阿尔布雷克特(Albrecht),1979年在IBM工作时提出,称为Albrecht功能点
- 也称为IFPUG(国际功能点用户组织)功能点
- 适用于信息系统
功能点估算
- 与实现的语言和技术没有关系
- 用系统的功能数量来测量其规模
- 通过评估,加权,量化得出功能点
功能点公式:
FP=UFC*TCF
- UFC:未调整功能点计数
- TCF:技术复杂度因子(是对UFC的调整因子)
UFC:未调整功能点技术(从五个角度计算得出)
- 外部输入(External Inputs:EI):给软件提供面向应用的数据的项(如屏幕、表单、对话框、控件、文件等);在这个过程中,数据穿越外部边界进入到系统内部,并且使用内部逻辑文件的数据。外部输入技术的大小可以通过输入的文件类型,数据元素等个数来定义。
- 外部输出(External Outputs:EO):向用户提供(经过处理的)面向应用的信息。例如: 表和出错信息等。经过内部逻辑文件的处理向用户提供输出信息。技术大小通过输出文件类型,数据元素个数进行决定权重,再决定技术大小。
- 外部查询(External Inquiry:EQ):是一个输入引出一个即时的简单输出,没有处理过程。通过输出类型,元素个数决定权重,再决定技术大小。
- 外部接口文件(External Interface Files:EIF’S):是用户可以识别的一组逻辑相关数据,这组数据只能被引用。用这些接口把信息传送给另一个系统。接口文件的权重通过其中的记录元素类型和数据元素类型来决定。
- 内部逻辑文件(Internal Logical Files:ILF’S):用户可以识别的一组逻辑相关的数据,而且完全存在于应用的边界之内,并且通过外部输入维护,是逻辑主文件的数目。是系统边界之内的文件,并且通过外部输入维护。
2.计算未调整的用例权值UUCW
4.计算技术和环境因子TCF
6.计算调整的用例点UCP
类比(自顶向下)估算法
传统估算方法- – -类比估算: 开发人员根据以往的完成类似项目所消耗的总成本(或工作量),来推算将要开发的软件的总成本(或工作量),然后再估算各个工作单元的规模成本。是一种自上而下的估算形式。
类比估算- – -使用情况
- 信息不足(例如市场招标)的时候
- 要求不是非常精确估算的时候
- 有类似的历史项目数据
类比估算- – -主观判断举例
- 需求类似
- 类比估算:10万
历史数据:10万
自下而上估算法
定义: 利用任务分解图(WBS),对各个具体工具包进行详细的成本估算,然后将结果累加起来得出项目总成本。
估算时确定任务投入的人力,时间,成本。
三点估算法
基于任务成本的三种估算值来计算预期成本的方法。
三点估算- – -三种估算值
- 最可能成本(CM):比较现实的估算成本。即这个估算值的概率最大
- 最乐观成本(CO):最好情况所得到的估算成本
- 最悲观成本(CP):最差情况所得到的估算成本
三点估算结果
- 三角分布:CE=(CO+CM+CP)/3
- 贝塔分布:CE=(CO+4CM+CP)/6
参数估算法(也叫模型估算)
定义: 通过项目数据(代码行,人数,时间,工时等),进行回归分析,得出回归模型。
通过参数(基于历史项目数据,项目类型不同,环境不同,项目数据就不同,得出的模型就不同)模型估算成本的方法(是统计技术得出的数学模型)
参数模型:
- 面向LOC驱动的(输入为代码行)
- 面向FP驱动的(输入为功能点)
整体公式: E=a+b*Sc*M
- E:以人月表示的工作量
- a,b,c:经验导出的系数
- M:调节因子
- S:主要的输入参数(通常是LOC,FP等)
建议掌握模型:
- Walston-Felix模型
- COCOMO模型
Walston-Felix模型
- 结构化成本模型
- 是目前应用最广泛的参数型软件成本估计模型
- 由Barry Boehm团队开发
COCOMO模型
- COCOMO 81(81年提出)
- COCOMO II
COCOMO基本原理
将开发所需的工作量表示为KLOC软件规模和一系列成本因子的函数,基本估算公式为:
基本COCOMO-81
- 将项目分解为一系列的子系统或子模型
- 更加准确地调整一个模型的属性
- 对驱动因子的取值分析更为细致
COCOMO II组成
复用模型
专家估算法
由多为专家进行成本估算,一个专家可能会有偏见,最好由多位专家进行估算,取得多个估算值,最后得出综合的估算值。
Deiphi专家估算
- 这些专家互相不见面
- 专家详细研究软件规格说明书后,进行无记名的估算
步骤
- 组织者发给每位专家一份软件规格说明和一张记录估算值的表格,请专家估算
- 每位专家详细研究软件规格说明后,对该软件提出3个规模的估算值,即最小值ai,最可能值mi,最大值bi
- 组织者对专家表格中的答复进行整理,计算每位专家的估算值Ei=(ai+4mi+bi)/6,然后计算出所有专家的期望值Ei=(E1+E2+E3+…+En)/n
- 综合结果后,再组织专家无记名填表格,比较估算偏差,并查找原因
- 上述过程,重复多次最终可获得一个多数专家共识的软件规模
敏捷估算方法
- 高层估算:采用轻量级,快速生成
- 短期估算:进行详细的估算
Story Point估算方法
有些任务是固定成本类型的任务,也就是说管理者知道某项任务的成本不变,不管任务的工期有多长,或不管任务使用了那些资源。在这种情况下,管理者向任务直接分配成本。例如:外包任务,培训任务。
不管采用什么预算方法,最后将总的成本分配到具体的任务中,形成预算。
成本基线

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!