目录
成本估算概述
成本估算过程
- 估算不是精确的科学计算。

- 软件项目规模即工作量 有了规模即确定了成本
- 规模是成本的主要因素,是成本估算的基础
-
软件项目的主要成本是 人的劳动的消耗所需要的代价 。
-
成本预算的目的是 产生成本基线
-
在成本管理过程中,每个时间段中的各个工作单元的成本是 预算

软件规模单位

直接成本与间接成本
| 直接成本 | 与具体项目相关的成本 如:参与项目的人员成本 |
| 间接成本 | 可以分摊到各个具体项目中的成本 如: 培训 房租水电 管理费 |
成本估算方法(!!)
| 代码行估算法 |
|
| 功能点估算法 |
与实现的语言和技术没有关系 |
| 用例点估算法 |
用例点方法通过分析用例角色、场景和技术与环境因子等来进行软件估算。
|
| 类比 (自顶向下)估算法 | 定义:
使用情况:
|
| 自下而上估算法 | |
| 参数估算法 | |
| 专家估算法 |
1.代码行估算法
从软件程序量的角度定义软件规模

代码多少并不能代表项目的好坏
2.功能点估算法

UFC 功能计数项
| 外部输入 | EI |
| 外部输出 | EO(向用户提供面向应用的信息) |
| 外部查询 | EQ |
| 外部接口文件 | EIF |
| 内部逻辑文件 | ILF |
EO是输送数据到应用程序边界外部的过程。它的主要目的是通过逻辑处理过程向用户呈现信息。该处理过程必须包含至少一个数学公式或计算方法,或生成派生数据。一个EO也可以维护一个或多个ILF,并/或改变系统行为。
EQ是向应用程序边界外发送数据基本处理的过程。其主要目的是从ILF或EIF中通过恢复数据信息来向用户呈现。该处理逻辑不包括任何数学公式或计算方法,也不会生成任何派生数据。EQ不会维护任何一个ILF,也不会改变应用程序的系统行为。
| 目的 | EI | EO | EQ |
| 改变应用程序的属性或行为 | 主要目的 | 次要目的 | 不允许 |
| 维护一个或多个ILF | 主要目的 | 次要目的 | 不允许 |
| 显示信息给用户 | 次要目的 | 主要目的 | 主要目的 |




TCF的计算



3.用例点估算法
基于UML(用例)的估算方法

| UAW | 未调整角色的权值 |
| UUCW | 未调整用例的权值 |
| UUCP = UAW + UUCW | 未调整的用例 点 |
| TEF(包括TCF和ECF) | 技术和环境因子 |
| UCP = UUCP * TCF * ECF | 调整的用例点 |
| man-hour = UCP * PF(项目生产率) | 工作量 |







4.类比 (自顶向下)估算法(计算相似度)

计算相似度步骤
- 项目的特征有n个
- 相似度评价 采用欧氏距离distance(Pi,Pj)计算项目Pi和Pj的相似度
- 用相似的项目数据得到最终估算值
5.自下而上估算法

| D | 软件开发人员 |
| M | 项目管理人员 |
| S | 项目支持人员 |
| Q | 质量保证人员 |
成本=人×月×费率 费率=万元/人月
6.参数估算法



面向代码行驱动的 掌握第一种、第三种
面向功能点驱动
Walston-Felix模型

COCOMO结构化成本模型

| PM | 工作量(人/月) |
| A | 校准因子 |
| Size | 对工作量呈可加性影响的软件模块的功能尺寸的度量 |
| B | 对工作量呈指数或非线性影响的比例因子 |
| EM | 影响软件开发工作量的工作量乘数 |
COCOMO81
考虑两个方面:模型级别与项目类型

| 基本COCOMO | 静态单变量模型 |
| 中等COCOMO | 基本模型基础上考虑影响因素,调整模型 |
| 高级COCOMO | 中等COCOMO模型基础上考虑各个步骤的影响 |
项目类型
| 有机型 | ![]() |
| 嵌入型 | ![]() |
| 半嵌入型 | ![]() |
| Effort | 工作量(人/月) |
| a、b | 系数 具体的取值 取决于模型级别(基本、中等和高级) 项目类型(有机型、嵌入式和半有机型) |
| KLOC | 项目交付的代码行(每千行)、代表软件规模 |
| F | 调整因子 |
![]()
基本COCOMO
调整因子F=1 基本公式如下
![]()
中等COCOMO

F(成本驱动因子)的取值与15个成本驱动因子有关


高级COCOMO

COCOMO(2)
7.专家估算法
由多位专家进行成本估算,一个专家可能会有偏见,最好多为专家进行估算,取得多个估算值,最后得出综合的估算值。

成本预算

- 成本预算是根据项目的各项任务以分配的相应资源计算的。
- 成本预算提供对实际成本的一种控制机制,为项目管理者控制项目提供一把有效的尺度。
- 在成本管理过程中,每个时间段中的各个工作单元的成本是预算
| 估算 | BAC |
| 预算 | BCWS |
分配项目成本预算
给任务分配资源成本
分配资源成本是最常用方式
资源成本与费率密切相关
给任务分配固定资源成本
成本不再改变、不计算具体工时(某个资源为固定成每本)
给任务分配固定成本
某项任务的成本不再改变(整个任务成本不再改变)
本文介绍软件项目的成本估算方法,包括代码行估算法、功能点估算法、用例点估算法等,并详细阐述了COCOMO模型的不同级别及应用场景。此外,还探讨了成本预算的分配原则。










1万+

被折叠的 条评论
为什么被折叠?



