6软件项目规模成本估算
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
什么产生的 确认为成本估算所做的任何假设的合理性 估算的误差变动等
chapter__6
18
本章要点
一、软件项目规模成本的概念 二、估算的过程 三、估算的方法 四、估算的误差
chapter__6
19
估算的基本方法
1. 代码行、功能点、用例点 2. 类比 (自顶向下)估算法 3. 自下而上估算法 4. 参数法估算法 5. 专家估算法
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
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种因 子,如下表所示。
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
其中,资源可以是开发工作量(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
小时 进度规划:项目总进度(一般是合同要求) 学习曲线(项目组学习某项技术的时间)
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
这组方程在计算E、T、P等开发所需的资源时,使用L(千行)作为估计 的特征。由L计算开发时间、工作量或文档页数,再由算出的工作 量E来计算开发时间与所需人数。
这类模型简单易懂,常数C1、C2可以从历史数据导出。但如果没有适 用于本单位情况的经验常数,就不能直接搬用。
2.Putnam成本估算模型
Putnam模型是一种动态多变量资源模型,可以用下面 的方程式来表示:
有了规模就确定了成本,如一个项目需要20人 月,3万元/人月,则项目的成本是60万。
chapter__6
8
成本估算定义
对完成项目所需费用的估计和计划 包括预测开发一个软件系统所需要的总工作量
的过程。 是一种量化的结果 可以有一些误差,通常需要一定的调节 成本估算不同于项目定价 贯穿于软件的生存周期,只要WBS有变化就需要
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__6
15
直接成本
与具体项目相关的成本(人员的工资、材料费、 外包外购成本等),包括开发成本、管理成本、 质量成本等。
chapter__6
16
间接成本
不能具体到某个项目中的成本, 可以分摊到各个具体项目中的成本,例如:
培训 房租水电 员工福利 市场费用 管理费 其他等等
软件项目管理与质量保证
黑龙江大学软件学院
chapter__7
0
软件开发项目管理
第六章 软件项目规模成本估算
chapter__6
1
本章要点
一、软件项目规模成本的概念 二、估算的过程 三、估算的方法 四、估算的误差
chapter__6
2
成本管理过程
资源计划编制:
确定项目需要的资源种类和数量
3
平均的影响
4
显著的影响
5
强大的影响
chapter__6
38
功能点计算实例
假设一个软件项目所有技术复杂度都是平均程 度,即技术复杂度因子的值都为3,则计算功能 点如下:
FP=UFC*TCF
UFC=301 TCF=0.65+0.01(14*3)=1.07
FP=301*1.07=322
chapter__6
4
软件项目规模
软件项目规模即工作量,是从软件项目范围中 抽出的软件功能,然后确定每个软件功能所必 须执行的一系列软件工程任务
包括:软件规划,软件管理,需求,设计,编 码,测试,以及后期的维护等任务。
chapter__6
5
规模的单位
LOC(Loc of Code)
源代码程序长度的测量
FP(Function Point)
chapter__6
20
代码行(LOC)
从软件程序量的角度定义项目规模。
要求功能分解足够详细的 有一定的经验数据(类比和经验方法) 与具体的编程语言有关
chapter__6
21
1.静态单变量估算模型
这种模型在计算软件开发的资源花费时,只需要 设定被开发软件的一种参数,故称为单变量型 。它的一般形式是: 资源=C1×(估计的软件特征)C2
41
用例点估算模型
2.Putnam成本估算模型
这个模型发表于1978年,是L.Putnam对50个大型军用软件(生存 期工作量均在30人一年以上)研究得出的结果。后来又对另外l50个大 型软件进行验证,也取得满意的效果。一般认为,规模在10万行以 上的软件,用这个模型是适当的。
Putnam模型的特点,是在同一个模型中给出了K(或E)、L和T三者 之间的关系。例如,给定了L和T,就可以用它来估计开发所需的工 作量E。如果估计的程序长度有一个范围(例如从L1~L2),则在保持工 作量不变的情况下,可算出相应的开发时间T1与T2等。
进行成本估算 估计成本、资源、进度时需要经验、历史信息。
chapter__6
9
本章要点
一、软件项目规模成本的概念 二、估算的过程 三、估算的方法 四、估算的误差
chapter__6
10
估算输入
成本估算过程
成 本 估 算 方 法
chapter__6
估算结果
11
成本估算输入
项目需求、 WBS 历史项目度量 资源要求(资源编制计划) 资源消耗率(资源单价):如人员成本: 100元/
用系统的功能数量来测量
人月 人天 人年
chapter__6
6
软件项目成本
完成软件规模相应付出的代价。 待开发的软件项目需要的资金。 人的劳动消耗所需要的代价是软件产品的主要
成本 开发成本是以一次性开发过程所花费的代价来
计算的
chapter__6
7
软件的规模和成本的关系
软件项目规模(工作量)是成本的主要因素,是 成本估算的基础
F3 分布式函数
F4 性能
F5 大量使用的配置
F6 联机数据输入
F7 操作简单性
F8 在线升级
F9 复杂界面
F10 复杂数据处理
F11 重复使用性
F12 安装简易性
F13 多重站点
F14 易于修改
chapter__6
37
技术复杂度因子的取值范围
调整系数
描述
0
不存在或者没有影响
1
不显著的影响
2
相当的影响
示例
(2)扩充内存储器容量 假定原有的内存容量为64 KB,允许软件使用 的内存为46 KB。现决定增加l0000美元购买内存扩 充板,使软件可用的内存从46 KB扩充为96 KB。 这样,内存容量的调节因子值可从原来的l.06(见 11.2末栏第5项)下降为1.00,从而使EAF从1.17下降 为1.10。虽然新增加10000美元的投资,总开发成 本仍可望下降。以下是新成本的算式:
chapter__6
17
项目估算结果
估算结果包括估算文件和估算说明 估算文件
包括资源,资源的数量,质量标准,估算成本等信息 单位:一般是货币单位,或是规模单位 BAC(Budget At completion预算完成)
估算说明
工作范围,通常由WBS获得 估算的基础和依据,即确认估算是合理的和估算是根据
L=cK1/3 T4/3 或
K=L3/(c3 T4) 其中L(行)与T(年)仍分别代表源程序长度和开发时间。 K表示全生存期(含维护在内)所需要的工作量(人—年)。对 大型软件而言,其大小约为开发工作量E的2.5倍,即E=0.4 K。c是一个与开发环境有关的常数。对“优良”、“好”与“ 不好”的3种环境,c的典型值可分别取l2500、10000与 6500。
6000×44.4×1.10+10000=293000
功能点(FP)
用系统的功能数量来测量其规模 与实现产品所使用的语言和技术没有关系的 两个评估
内部基本功能 外部基本功能
加权和量化
chapter__6
32
功能点的公式
FP =UFC*TCF
UFC:未调整功能点计数 TCF:技术复杂度因子
成本估算:中心环节
编制一个为完成项目各活动所需要的资源成本 的近似估算
成本预算:项目进度
将总成本估算分配到各单项工作活动上
成本控制:项目跟踪
控制项目预算的变更
chapter__6
3
关于估算
估算不是很准确的,有误差的 经验(历史)数据非常重要 不要太迷信数学模型
chapter__6
Java programmers Business analysts Technical writers
Managers
Administrative staff Database analysts
Testing specialists
chapter__6
14
成本估算
规模成本估算主要是对各种资源的估算,包括人 力资源、设备、资料等。
Putnam模型方程揭示了E与T之间的关系。根据这一方程,开发 工作量E与开发时间T的4次方成反比。这表明,开发时间的小量变化 ,会引起开发工作量相当大的变化。如果把开发时间成倍延长,则 一个原来需要100个人一月完成的项目,能够把工作量降低到仅需6.5 个人—月(=100/24)。
3. COCOMO模型
chapter__6
18
本章要点
一、软件项目规模成本的概念 二、估算的过程 三、估算的方法 四、估算的误差
chapter__6
19
估算的基本方法
1. 代码行、功能点、用例点 2. 类比 (自顶向下)估算法 3. 自下而上估算法 4. 参数法估算法 5. 专家估算法
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
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种因 子,如下表所示。
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
其中,资源可以是开发工作量(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
小时 进度规划:项目总进度(一般是合同要求) 学习曲线(项目组学习某项技术的时间)
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
这组方程在计算E、T、P等开发所需的资源时,使用L(千行)作为估计 的特征。由L计算开发时间、工作量或文档页数,再由算出的工作 量E来计算开发时间与所需人数。
这类模型简单易懂,常数C1、C2可以从历史数据导出。但如果没有适 用于本单位情况的经验常数,就不能直接搬用。
2.Putnam成本估算模型
Putnam模型是一种动态多变量资源模型,可以用下面 的方程式来表示:
有了规模就确定了成本,如一个项目需要20人 月,3万元/人月,则项目的成本是60万。
chapter__6
8
成本估算定义
对完成项目所需费用的估计和计划 包括预测开发一个软件系统所需要的总工作量
的过程。 是一种量化的结果 可以有一些误差,通常需要一定的调节 成本估算不同于项目定价 贯穿于软件的生存周期,只要WBS有变化就需要
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__6
15
直接成本
与具体项目相关的成本(人员的工资、材料费、 外包外购成本等),包括开发成本、管理成本、 质量成本等。
chapter__6
16
间接成本
不能具体到某个项目中的成本, 可以分摊到各个具体项目中的成本,例如:
培训 房租水电 员工福利 市场费用 管理费 其他等等
软件项目管理与质量保证
黑龙江大学软件学院
chapter__7
0
软件开发项目管理
第六章 软件项目规模成本估算
chapter__6
1
本章要点
一、软件项目规模成本的概念 二、估算的过程 三、估算的方法 四、估算的误差
chapter__6
2
成本管理过程
资源计划编制:
确定项目需要的资源种类和数量
3
平均的影响
4
显著的影响
5
强大的影响
chapter__6
38
功能点计算实例
假设一个软件项目所有技术复杂度都是平均程 度,即技术复杂度因子的值都为3,则计算功能 点如下:
FP=UFC*TCF
UFC=301 TCF=0.65+0.01(14*3)=1.07
FP=301*1.07=322
chapter__6
4
软件项目规模
软件项目规模即工作量,是从软件项目范围中 抽出的软件功能,然后确定每个软件功能所必 须执行的一系列软件工程任务
包括:软件规划,软件管理,需求,设计,编 码,测试,以及后期的维护等任务。
chapter__6
5
规模的单位
LOC(Loc of Code)
源代码程序长度的测量
FP(Function Point)
chapter__6
20
代码行(LOC)
从软件程序量的角度定义项目规模。
要求功能分解足够详细的 有一定的经验数据(类比和经验方法) 与具体的编程语言有关
chapter__6
21
1.静态单变量估算模型
这种模型在计算软件开发的资源花费时,只需要 设定被开发软件的一种参数,故称为单变量型 。它的一般形式是: 资源=C1×(估计的软件特征)C2
41
用例点估算模型
2.Putnam成本估算模型
这个模型发表于1978年,是L.Putnam对50个大型军用软件(生存 期工作量均在30人一年以上)研究得出的结果。后来又对另外l50个大 型软件进行验证,也取得满意的效果。一般认为,规模在10万行以 上的软件,用这个模型是适当的。
Putnam模型的特点,是在同一个模型中给出了K(或E)、L和T三者 之间的关系。例如,给定了L和T,就可以用它来估计开发所需的工 作量E。如果估计的程序长度有一个范围(例如从L1~L2),则在保持工 作量不变的情况下,可算出相应的开发时间T1与T2等。
进行成本估算 估计成本、资源、进度时需要经验、历史信息。
chapter__6
9
本章要点
一、软件项目规模成本的概念 二、估算的过程 三、估算的方法 四、估算的误差
chapter__6
10
估算输入
成本估算过程
成 本 估 算 方 法
chapter__6
估算结果
11
成本估算输入
项目需求、 WBS 历史项目度量 资源要求(资源编制计划) 资源消耗率(资源单价):如人员成本: 100元/
用系统的功能数量来测量
人月 人天 人年
chapter__6
6
软件项目成本
完成软件规模相应付出的代价。 待开发的软件项目需要的资金。 人的劳动消耗所需要的代价是软件产品的主要
成本 开发成本是以一次性开发过程所花费的代价来
计算的
chapter__6
7
软件的规模和成本的关系
软件项目规模(工作量)是成本的主要因素,是 成本估算的基础
F3 分布式函数
F4 性能
F5 大量使用的配置
F6 联机数据输入
F7 操作简单性
F8 在线升级
F9 复杂界面
F10 复杂数据处理
F11 重复使用性
F12 安装简易性
F13 多重站点
F14 易于修改
chapter__6
37
技术复杂度因子的取值范围
调整系数
描述
0
不存在或者没有影响
1
不显著的影响
2
相当的影响
示例
(2)扩充内存储器容量 假定原有的内存容量为64 KB,允许软件使用 的内存为46 KB。现决定增加l0000美元购买内存扩 充板,使软件可用的内存从46 KB扩充为96 KB。 这样,内存容量的调节因子值可从原来的l.06(见 11.2末栏第5项)下降为1.00,从而使EAF从1.17下降 为1.10。虽然新增加10000美元的投资,总开发成 本仍可望下降。以下是新成本的算式:
chapter__6
17
项目估算结果
估算结果包括估算文件和估算说明 估算文件
包括资源,资源的数量,质量标准,估算成本等信息 单位:一般是货币单位,或是规模单位 BAC(Budget At completion预算完成)
估算说明
工作范围,通常由WBS获得 估算的基础和依据,即确认估算是合理的和估算是根据
L=cK1/3 T4/3 或
K=L3/(c3 T4) 其中L(行)与T(年)仍分别代表源程序长度和开发时间。 K表示全生存期(含维护在内)所需要的工作量(人—年)。对 大型软件而言,其大小约为开发工作量E的2.5倍,即E=0.4 K。c是一个与开发环境有关的常数。对“优良”、“好”与“ 不好”的3种环境,c的典型值可分别取l2500、10000与 6500。
6000×44.4×1.10+10000=293000
功能点(FP)
用系统的功能数量来测量其规模 与实现产品所使用的语言和技术没有关系的 两个评估
内部基本功能 外部基本功能
加权和量化
chapter__6
32
功能点的公式
FP =UFC*TCF
UFC:未调整功能点计数 TCF:技术复杂度因子
成本估算:中心环节
编制一个为完成项目各活动所需要的资源成本 的近似估算
成本预算:项目进度
将总成本估算分配到各单项工作活动上
成本控制:项目跟踪
控制项目预算的变更
chapter__6
3
关于估算
估算不是很准确的,有误差的 经验(历史)数据非常重要 不要太迷信数学模型
chapter__6
Java programmers Business analysts Technical writers
Managers
Administrative staff Database analysts
Testing specialists
chapter__6
14
成本估算
规模成本估算主要是对各种资源的估算,包括人 力资源、设备、资料等。
Putnam模型方程揭示了E与T之间的关系。根据这一方程,开发 工作量E与开发时间T的4次方成反比。这表明,开发时间的小量变化 ,会引起开发工作量相当大的变化。如果把开发时间成倍延长,则 一个原来需要100个人一月完成的项目,能够把工作量降低到仅需6.5 个人—月(=100/24)。
3. COCOMO模型