软件项目成本管理.ppt
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
谢谢阅读
13
功能点(FP)
❖ 用系统的功能数量来测量其规模,与实现产品所使 用的语言和技术没有关系。
❖ 对系统的外部功能和内部功能进行计数。 ❖ 根据技术复杂度因子(权)对它们进行调整,产生
产品规模的度量结果。
2020-6-1
谢谢阅读
14
功能点计算公式
❖ FP =UFC*TCF ➢ UFC(Unadjusted Function Point Count) 未调整功能点计数 ➢ TFC(Technical Complexity Factor) 技术复杂度因子
软件项目管理 第四章 软件项目成本管理
2020-6-1
谢谢阅读
1
本章内容提要
❖ 软件项目规模成本的概念 ❖ 成本估算 ❖ 成本预算 ❖ 成本控制
2020-6-1
谢谢阅读
2
第一节 软件项目规模成本的概念
❖ 软件项目规模度量单位: ➢ LOC(Lines of Code):源代码程序长度的测量 ➢ FP(Function Point):系统功能数量的测量
2020-6-1
谢谢阅读
33
Walston-Felix(IBM)模型
❖ 1977年,IBM的Walston和Felix提出了如下的估算 公式:
➢ E = 5.2×L ^0.91 ,L是源代码行数(以KLOC计),E是工 作量(以PM计)
➢ D = 4.1×L ^ 0.36,D是项目持续时间(以月计) ➢ S = 0.54×E ^ 0.6,S是人员需要量(以人计) ➢ DOC = 49×L ^ 1.01。DOC是文档数量(以页计)
2020-6-1
谢谢阅读
27
类比估算法
❖ 在项目初期信息不足时(例如市场招标和合同签订) 适于采用类比估算法。
❖ 该方法简单易行,花费少,但准确性差。
2020-6-1
谢谢阅读
28
成本估算方法
❖ 代码行、功能点 ❖ 类比估算法 ❖ 参数估算法 ❖ 专家估算法
2020-6-1
谢谢阅读
29
参数估算法
2020-6-1
谢谢阅读
26
类比估算法
❖ 也称为基于案例的推理,估算人员根据以往完成的 类似项目(源案例)所消耗的总成本(或工作量), 来推算将要开发的软件(目标案例)的总成本(或 工作量)。
❖ 需提取项目的一些特性作为比较因子,如项目类型 (MIS系统、实时系统等)、编程语言、项目规模、 发人员数量、软件开发方法等。
2020-6-1
谢谢阅读
34
COCOMO(Constructive Cost model)
❖ 构造性成本模型,是世界上应用最广泛的参数型软 件成本估计模型。
❖ 由Barry Boehm利用加利福尼亚的一个咨询公司的大 量项目数据推导出的一个成本模型。该模型于1981
年首次发表,于1994年又推出了COCOMO II。
❖ 模型形式:E=A+B*SC ➢ E:以人月表示的工作量 ➢ A,B,C:经验导出的系数 ➢ S:主要的输入参数(通常是LOC,FP等)
2020-6-1
谢谢阅读
31
经验估算模型
❖ 面向LOC的:
➢ Walston-Felix(IBM)模型
E= 5.2*(KLOC)^0.91
➢ Balley-Basili模型
6
本章内容提要
❖ 软件项目规模成本的概念 ❖ 成本估算 ❖ 成本预算 ❖ 成本控制
2020-6-1
谢谢阅读
7
第二节 成本估算
❖ 引言 ❖ 成本估算方法 ❖ 一种实用的项目成本估算过程
2020-6-1
谢谢阅读
8
2.1 引言
❖ 成本估算是对完成项目所需费用的估计,它是项目 成本管理的核心。
❖ 成本估算可以有一些误差。估算结果可用一个范围 表示,例如$10000±$1000。
5
工作量和成本的关系
❖ 工作量是成本的主要考虑因素,项目的工作量估算 和成本估算常常同时进行。
❖ 如果确定了单位工作量的成本,则可根据项目工作 量直接计算出项目成本。 例如:如果一个软件项目的工作量是20人月,而企 业的人力成本参数是2万元/人月,则项目的成本是 40万元。
2020-6-1
谢谢阅读
❖ 在不会引起混淆的情况下,工作量和规模这两个概 念可不做区别。
2020-6-1
谢谢阅读
4
软件项目成本
❖ 完成软件项目工作量相应付出的代价,即待开发软 件项目所需要的资金。
❖ 人的劳动消耗所需要的代价是软件产品的主要成本。 ❖ 成本一般采用货币单位来计算,如人民币、美元等。
2020-6-1
谢谢阅读
2020-6-1
谢谢阅读
16
UFC的计算方法
❖ 然后对各功能计数项加权并求和,得到UFC。
功能计数项
外部输入 外部输出 外部查询 外部接口文件 内部文件
简单 3 4 3 5 7
复杂度权重 中等 4 5 4 7 10
复杂 6 7 6 10 15
2020-6-1
谢谢阅读
17
案例分析
❖ 某学院安装了一个工资系统,人事处要求创建一个 子系统来分析每门课程的人力资源成本。要求该子 系统提供查询每门课程人力资源成本的功能。每名 教师所得工资的细节可以通过工资系统中的文件得 到,教师花在教每门课上的小时数可通过一个基于 计算机的计时表系统中的文件得到。该子系统将计 算结果存放到由总会计系统读取的一个文件中,并 产生一个报告,来显示每名教师每门课的课时数及 这些课时数相应的成本。
F12 安装简易性 F14 易于修改
2020-6-1
谢谢阅读
21
TCF的计算方法
每个技术复杂度影响因素的取值范围:
取值 0 1
2 3 4
5
对系统的影响 不存在或者没有影响 不显著的影响 相当的影响 平均的影响 显著的影响 强大的影响
TCF=0.65+0.01(sum(Fi)): Fi:0-5,TCF:0.65~1.35
E=5.5+0.73*(KLOC)^1.16
➢ Boehm简单模型
E=3.2*(KLOC)^1.05
➢ Doty模型
E=5.288*(KLOC)^1.047
2020-6-1
谢谢阅读
32
经验估算模型
❖ 面向FP的: ➢ Albrecht and Gaffney 模型 E=-13.39+0.0545FP ➢ Matson,Barnett E=585.7+15.12FP
2020-6-1
谢谢阅读
22
案例分析
案例中技术复杂度影响因素的取值
F1 可靠的备份和恢复 1 F2 数据通信
5
F3 分布式函数
0 F4 性能
3
F5 大量使用的配置 1 F6 联机数据输入 0
F7 操作简单性
1 F8 在线升级
0
F9 复杂界面
1 F10 复杂数据处理 4
F11 重复使用性
0 F12 安装简易性 3
F13 多重站点
0 F14 易于修改
3
sum(Fi)=22
2020-6-T1 CF=0.65+0.01(sum(Fi))=0.谢65谢+阅0读.01*22=0.87
23
案例分析
❖ 该子系统的功能点为: FP=UFC*TCF=32*0.87=27.8
2020-6-1
谢谢阅读
24
功能点与代码行的转换
2020-6-1
谢谢阅读
35
模型类别
❖ 基本COCOMO 静态单变量模型。
❖ 中等COCOMO 在基本模型基础上考虑各种影响因素(工作量驱动 因子),调整模型。
❖ 高级COCOMO 中等COCOMO模型基础上考虑软件工程中各个步 骤的影响。
2020-6-1
谢谢阅读
36
基本COCOMO
❖ E=a*(KLOC)exp(b) ➢ E是项目的工作量(以人月计) ➢ KLOC是软件产品的代码行数 ➢ a、b是依赖于项目自然属性的参数
2020-6-1
谢谢阅读
37
基本COCOMO系数表
系统类型
a
b
有机
2.4
1.05
半相连
3.0
1.12
嵌入式
3.6
1.20
2020-6-1
谢谢阅读
38
系统类型
❖ 有机(Organic)
➢ 各类应用程序,例如数据处理、科学计算等。
➢ 受硬件的约束比较小,接口环境灵活;软件的规模不是 很大。
❖ 嵌入式(Embeded)
2020-6-1
谢谢阅读
15
UFC的计算方法
❖ 首先计算功能计数项,对以下五类元素计数: ➢ 外部输入:由用户输入的面向应用的数据项。 ➢ 外部输出:向用户提供的输出数据项。 ➢ 外部查询:要求系统回答的交互式输入。 ➢ 外部接口文件:与其它系统的接口数据文件。 ➢ 内部文件:系统使用的内部固定文件。
➢ 系统程序,例如实时处理、控制程序等。
➢ 在硬件和软件的严格约束条件下运行,对系统进行变更 的代价很高;软件的规模任意。
❖ 半相连(Semidetached)
➢ 介于上述两种系统之间。
2020-6-1
谢谢阅读
39
基本COCOMO举例
❖ 一个33.3 KLOC的软件开发项目,属于半相连型的 项目,采用基本COCOMO进行工作量的估算: ➢ a=3.0,b=1.12 ➢ E = 3.0*L ^1.12 = 3.0*33.3 ^1.12 = 152 PM
42
成本驱动因子
驱动因子类型
编码
成本驱动因子
RELY 需要的软件可靠性
产品属性
DATA 数据库规模
CPLX 产品复杂度
TIME
❖ 使用项目特性参数建立经验估算模型来估算成本。 ❖ 经验估算模型是通过对大量的项目历史数据进行统
计分析(如回归分析)而导出的。 ❖ 经验估算模型提供对项目工作量的直接估计。 ❖ 该方法简单,而且比较准确,但如果模型选择不当
或提供的参数不准确,也会产生较大的偏差。
2020-6-1
谢谢阅读
30
经验估算模型
2020-6-1
谢谢阅读
18
案例分析
❖ 问题:计算该子系统的UFC。(子系统产生的报 告复杂度为高,其它所有元素的复杂度均为中等)
2020-6-1
谢谢阅读
19
案例分析
功能计数项 外部输入 外部输出 外部查询 外部接口文件
内部文件
无 报告 1
计数
1
工资文件 1,计时表文 件 1,计算结果文件 1
无
2020-6-1
谢谢阅读
10
2.2 成本估算方法
❖ 代码行、功能点 ❖ 类比估算法 ❖ 参数估算法 ❖ 专家估算法
2020-6-1
谢谢阅读
11
代码行(LOC)
从软件程序量的角度定义项目规模。 ❖ 要求功能分解足够详细。 ❖ 有一定的经验数据(类比和经验方法)。 ❖ 与具体的编程语言有关。
2020-6-1
语言
代码行/FP
Assembly
320
C
150
COBOL
105
FORTRAN
105
PASCAL
91
ADA
71
PL/1
65
PROLOG/LISP
64
SMALLTALK
21
SPREADSHEET 6
2020-6-1
谢谢阅读
25
成本估算方法
❖ 代码行、功能点 ❖ 类比估算法 ❖ 参数估算法 ❖ 专家估算法
❖ 软件项目工作量是指为了提供软件的功能而必须完 成的软件工程任务量。其度量单位为: ➢ 人月、人天、人年:人在单位时间内完成的任务 量
2020-6-1
谢谢阅读
3
➢ 为了确定工作量度量单位,可设定一个“标准程 序员”,例如具有15~18个月开发经验的程序员。
❖ 工作量与规模紧密相关,此外还与项目和产品特性 (如复杂性)相关。
❖ 成本估算所依据的信息包括:项目需求和WBS,资 源要求、资源消耗率(资源单价)、项目进度规划、 历史项目数据等。
2020-6-1
谢谢阅读
9
❖ 项目成本的构成
➢ 直接成本:与具体项目的开发直接相关的成本。 如人员的工资、外包外购成本等。又可细分为开 发成本、管理成本、质量成本等。
➢ 间接成本:不归属于一个具体的项目,是企业的 运营成本,分摊到各个项目中。如房租、水电、 保安、税收、福利、培训,等等。
2020-6-1
谢谢阅读
40
中等COCOMO
❖ E=a(KLOC)exp(b)*工作量系数 工作量系数是根据成本驱动因子的打分计算得出, 是对公式的校正系数。
2020-6-1
谢谢阅读
41
中等COCOMO系数表
系统类型
a
b
有机
3.2
1.05
半相连
3.0
1.12
嵌入式
2.8
1.20
2020-6-1
谢谢阅读
复杂度权重
7 4 7
❖ 答案:UFC=1*7+1*4+3*7=32
2020-6-1
谢谢阅读
20
TCF的计算方法
技术复杂度影响因素
F1 可靠的备份和恢复 F3 分布式函数
F2 数据通信 F4 性能
F5 大量使用的配置
F6 联机数据输入
F7 操作简单性
F8 在线升级
F9 复杂界面
F10 复杂数据处理
F11 重复使用性 F13 多重站点
谢谢阅读
12
代码行(LOC)
❖ 优点: 直观、准确(在有代码的情况下)、易于计算(可 使用代码行统计工具)。
❖ 缺点: ➢ 对代码行度量没有公认的标准定义。 ➢ 代码行数量依赖于所用的编程语言和个人的编程 风格。 ➢ 在项目早期,需求不稳定、设计不成熟、实现不确 定的情况下很难准确地估算代码量。
2020-6-1