软件项目成本计划
估算过程概念
估算:
- 估算不是很准确,有误差
- 项目经验数据非常重要
- 不要太迷信某些数学模型
软件项目规模
- 软件项目规模即工作量
- 例如:软件规划,软件管理,需求,设计,编码,测试,以及后期的维护等任务
软件规模单位
- LOC(Loc of Code):源代码长度测量
- FP(Function Point):用系统的功能点来测量
- 人月
- 人天
- 人年
成本的单位
- 货币单位
软件规模和软件成本的关系
- 规模是成本的主要因素,是成本估算的基础
- 有了规模就确定了成本
成本估算结果
- 直接成本:与项目相关的成本,例如:参与项目的人员成本
- 间接成本:可以分摊到各个具体项目中的成本,例如:培训、房租水电、员工福利、市场费用、管理费等等
估算方法
-
代码行估算法
从软件程序量的角度定义项目规模- 与具体的编程语言有关
- 分解足够详细
- 有一定的经验数据(类比和经验方法)
优点:
- 代码所有软件开发项目都有的”产品”,而且很容易计算代码行数
缺点: - 对代码行没有公认的可接受的标准定义
- 代码行数量依赖于所用的编程语言和个人的编程风格
- 在项目早期,需求不稳定、设计不成熟、实现不确定的情况下很难准确的估算代码量
- 代码行强调编码的工作量,只是项目实现阶段的一部分
-
功能点估算法
- 与实现的语言和技术没有关系
- 用系统的功能数量来测量其规模
- 通过评估、加权、量化得出功能点
功能点公式:
-
FP = UFC * TFC
- UFC:未调整功能点计数
- TCF:技术复杂度因子
UFC 功能计数项:
- 外部输入
- 外部输出
- 外部查询
- 外部接口文件
- 内部逻辑文件
功能计数项的复杂度等级
功能点与代码行的转换
-
-
计算未调整的角色的权值UAW
-
计算未调整的用例的权值UUCW
-
计算技术和环境因子TEF
-
计算调整的用例点UCP
类比(自顶向下)估算法
- 有类似的历史项目数据
- 信息不足(例如市场招标)的时候
- 要求不是非常精确估算的时候
自下而上估算法
- 利用任务分解图(WBS),对各个具体工作包进行详细的成本估算,然后将结果累加起来得出项目总成本
- 花费时间
参数估算法
定义:
-
通过项目数据,进行回归分析,得出回归模型
-
通过参数模型估算(规模)成本的方法
使用条件: -
具有良好的项目数据为基础
-
存在成熟的项目估算模型
-
COCOMO模型
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!