当前位置:文档之家› 6软件项目规模成本估算

6软件项目规模成本估算

其中,资源可以是开发工作量(E)、开发时间(T)或 开发人数(P)等;估计特征可以用源程序长度(L) 、或软件的开发工作量(E);C1、C2为依赖于开 发环境和软件应用领域的两个经验常数。
1.静态单变量成本估算模型
自1973年至l977年,Walston与Felix从60个软件项目(源程序长度从4至 467千行,工作量从l2至11758个人—月,使用了28种不同的高级语言 )的统计中导出了以下的一组参数方程: E(人—月)=5.1×L (千行)0.91 T(月) = 4.1×L (千行)0.36 T(月) =2.47×E (人—月)0.35 P(人) =0.54×E (人—月)0.6 文档长度(页)=49×L(千行)1.01
Putnam模型方程揭示了E与T之间的关系。根据这一方程,开发 工作量E与开发时间T的4次方成反比。这表明,开发时间的小量变化 ,会引起开发工作量相当大的变化。如果把开发时间成倍延长,则 一个原来需要100个人一月完成的项目,能够把工作量降低到仅需6.5 个人—月(=100/24)。
3. COCOMO模型
示例
(2)扩充内存储器容量 假定原有的内存容量为64 KB,允许软件使用 的内存为46 KB。现决定增加l0000美元购买内存扩 充板,使软件可用的内存从46 KB扩充为96 KB。 这样,内存容量的调节因子值可从原来的l.06(见 11.2末栏第5项)下降为1.00,从而使EAF从1.17下降 为1.10。虽然新增加10000美元的投资,总开发成 本仍可望下降。以下是新成本的算式:
39
功能点与代码行的转换
语言 Assembly C COBOL FORTRAN PASCAL ADA
代码行/FP 320 150 105 105 91 71
PL/1
65
PROLOG/LISP
64
SMALLTALK(面向对象之母) 21
SPREADSHEET(电子制表) 6
40
用例点估算模型
chapter__3
用系统的功能数量来测量
人月 人天 人年
chapter__6
6
软件项目成本
完成软件规模相应付出的代价。 待开发的软件项目需要的资金。 人的劳动消耗所需要的代价是软件产品的主要
成本 开发成本是以一次性开发过程所花费的代价来
计算的
chapter__6
7
软件的规模和成本的关系
软件项目规模(工作量)是成本的主要因素,是 成本估算的基础
什么产生的 确认为成本估算所做的任何假设的合理性 估算的误差变动等
chapter__6
18
本章要点
一、软件项目规模成本的概念 二、估算的过程 三、估算的方法 四、估算的误差
chapter__6
19
估算的基本方法
1. 代码行、功能点、用例点 2. 类比 (自顶向下)估算法 3. 自下而上估算法 4. 参数法估算法 5. 专家估算法
41
用例点估算模型
chapter__6
17
项目估算结果
估算结果包括估算文件和估算说明 估算文件
包括资源,资源的数量,质量标准,估算成本等信息 单位:一般是货币单位,或是规模单位 BAC(Budget At completion预算完成)
估算说明
工作范围,通常由WBS获得 估算的基础和依据,即确认估算是合理的和估算是根据
Java programmers Business analysts Technical writers
Managers
Administrative staff Database analysts
Testing specialists
chapter__6
14
成本估算
规模成本估算主要是对各种资源的估算,包括人 力资源、设备、资料等。
小时 进度规划:项目总进度(一般是合同要求) 学习曲线(项目组学习某项技术的时间)
chapter__6
12
资源规划
需要的资源种类、数量等
chapter__6
13
一个大型IT项目的示例资源直方图
Number of People
12 10
8 6 4 2 0
Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec
有了规模就确定了成本,如一个项目需要20人 月,3万元/人月,则项目的成本是60万。
chapter__6
8
成本估算定义
对完成项目所需费用的估计和计划 包括预测开发一个软件系统所需要的总工作量
的过程。 是一种量化的结果 可以有一些误差,通常需要一定的调节 成本估算不同于项目定价 贯穿于软件的生存周期,只要WBS有变化就需要
6000×44.4×1.10+10000=293000
功能点(FP)
用系统的功能数量来测量其规模 与实现产品所使用的语言和技术没有关系的 两个评估
内部基本功能 外部基本功能
加权和量化
chapter__6
32
功能点的公式
FP =UFC*TCF
UFC:未调整功能点计数 TCF:技术复杂度因子
成本估算:中心环节
编制一个为完成项目各活动所需要的资源成本 的近似估算
成本预算:项目进度
将总成本估算分配到各单项工作活动上
成本控制:项目跟踪
控制项目预算的变更
chapter__6
3
关于估算
估算不是很准确的,有误差的 经验(历史)数据非常重要 不要太迷信数学模型
chapter__6
chapter__6
34
UFC-未调整功能点计数
功能计数项的复杂度等级
复杂度权重因素

简单
一般
复杂
外部输入
3
外部输出
4
外部查询
3
外部文件
5
内部文件
7
4
5
4
7 10
chapter__6
6
7
6
10 15
35
功能点计算实例-UFC
项 外部输入 外部输出 外部查询
外部文件 内部文件 总计 UFC
简单 6*3 7*4 0*3 5*5 9*7
直接成本 间接成本 这些估算的算法下节讲
chapter__6
15
直接成本
与具体项目相关的成本(人员的工资、材料费、 外包外购成本等),包括开发成本、管理成本、 质量成本等。
chapter__6
16
间接成本
不能具体到某个项目中的成本, 可以分摊到各个具体项目中的成本,例如:
培训 房租水电 员工福利 市场费用 管理费 其他等等
chapter__6
33
UFC-未调整功能点计数
功能计数项: 1. 外部输入:由用户提供的用来描述面向应用的数据项
(如屏幕、表单、对话框、控件、文件等) 2. 外部输出:那些向用户提供的用来生成面向应用的数
据项。 3. 外部查询:要求回答的交互式输入的项 4. 外部文件:对其他系统的机器可读界面的项 5. 内部文件:系统里的逻辑主文件的项
(1)按照软件的应用领域和复杂程度,将它们分为组织(Organic)、半 独立(Semide-tached)和嵌入(Embeded)3种类型,每类分别使用一组不 同的模型方程,如表11-1中由上向下,程序的复杂度逐步提高,E和T的 计算值也随之增大。
3. COCOMO模型
n (2)在模型中增加一个工作量调节因子EAF(Effort adjustment Factor),反映各种有关因素对软件开 发的影响。Boehm把这些因素归结为4类共l5种因 子,如下表所示。
chapter__6
20
代码行(LOC)
从软件程序量的角度定义项目规模。
要求功能分解足够详细的 有一定的经验数据(类比和经验方法) 与具体的编程语言有关
chapter__6
21
1.静态单变量估算模型
这种模型在计算软件开发的资源花费时,只需要 设定被开发软件的一种参数,故称为单变量型 。它的一般形式是: 资源=C1×(估计的软件特征)C2
n 每种因子的可根据实际情况在一定范围内上下 浮动。模型中使用的调节因子值,就是这15种 因子的值的乘积,可以写作
n EAF= (i=1,2,…,15)
3. COCOMO模型
示例
示例
(1)换用水平较低的开发人员 本例中原来使用较高水平的分析员和程序员,一个人 —月的花费是6000美元。如果换用5000美元/人—月的人 员,则人员水平的两个调节因子均将从0.86上升为1.00, 整个EAF值将从原来的l.17变成l.17/0.86/0.86=1.58。开发 成本不仅没有节省,反比原来有所增长。请看下面的计 算: 原开发成本:6000×44.4×1.17=311400 新开发成本:5000×44.4×1.58=350760
301
功能点 一般 2* 4 7* 5 2* 4
2* 7 0 * 10
复杂 3* 6 0*7 4* 6 3 * 10 2 * 15
chapter__6
36
TCF-技术复杂度因子
TCF=0.65+0.01(sum(Fi)): Fi:0-5,TCF:0.65-1.35
技术复杂度因子
F1 可靠的备份和恢复 F2 数据通信
软件项目管理与质量保证
黑龙江大学软件学院
chapter__7
0Байду номын сангаас
软件开发项目管理
第六章 软件项目规模成本估算
chapter__6
1
本章要点
一、软件项目规模成本的概念 二、估算的过程 三、估算的方法 四、估算的误差
chapter__6
2
成本管理过程
资源计划编制:
确定项目需要的资源种类和数量
相关主题