计划和估算
- 成本估算不是一项精确的科学-不确定锥区模型
- 预算是任何项目管理计划中的主要部分
- 内部成本:针对开发者的成本
- 外部成本:客户付的价格
- 计划的另一个重要的部分是估算项目的周期
- 产品规模的度量:通常可用代码行LOC和千行交付代码指令KDSI
- FFP度量:文件、信息量、过程
- S=Fi+Fl+Pr C=d*S
- S为产品的规模,C为成本,d是公司内部对软件开发过程的效率(生产力)的测量
- 功能点FP:FP=4Inp+5Out+4Inq+10Maf+7*Inf
- 组件:输入项数Inp,输出项数Out,查询树Inq,主文件数Maf,接口数Inf
- 所有组件归类简单的、一般的、复杂的
- 根据功能点取值表给每个组件分配功能点
- 每个组件功能点求和产生未经调整的功能点UFP
- 计算技术复杂因子TCF
- 对14个技术因子的影响进行测量,每个因子都分配一个0-5的值,然后得到累加得到总的影响度DI
- TCF=0.65+0.01*DI (范围为0.65-1.35)
- 计算功能点数FP=UFP*TCF
- 成本估算技术
- 用类推法进行专家评判
- Delphi技术可以协调多位专家的预测
- 自底向上的方法:把产品分割成更小的组件,逐个评估
- 算法成本估算模型:诸如功能点或UFP作为模型的输入
- 用类推法进行专家评判
- 中间COCOMO(Constructive Cost Model):中等复杂度和细节
-
是一种层次模型,按照其详细程度分为三级:即基本的COCOMO模型、中间的COCOMO模型和详细的COCOMO模型。
-
该模型主要对工作量MM(单位:PM)和进度TDEP(单位:月)进行估算。模型中考虑到估算量与开发环境有关,将开发项目分为三类:
-组织型(Organic)
程序规模<5万行,较简单,开发人员对产品目标理解充分,经验丰富,对软件开发环境熟悉。大多数应用软件及老的操作系统、编译系统属此类。- 嵌入型(Embadded)
软件、硬件关系紧密,操作有限制条件,对接口、数据结构,算法要求较高。如大型复杂的事务处理系统、大型、超大型的操作系统、军事指挥系统、航天控制系统等 - 半独立型(Semidetached)
对项目要求界于上述两者之间,规模复杂度中等。如新操作系统、大型数据库、生产控制等软件属此类。
- 嵌入型(Embadded)
-
基本的COCOMO模型(静态单变量模型)
-
中间的COCOMO模型
-
COCOMO 工作量模型中 工作量 = a ×(size)b
- 中间 COCOMO
- 指数b有三个不同的值,取决于要建造的产品的模式(a, b)
- COCOMO II
- b 依赖于模型的各种参数,包括对某类产品的熟悉程度,过程成熟度,风险解决的程度和小组合作的程度
- COCOMO II 考虑到对重用软件进行的小修改导致不成比例的巨大成本
- 中间 COCOMO
-
- 软件项目管理计划的组成:要做的工作、工作所需资源、所需金钱
- 软件开发所需资源:瑞利分布是资源消耗随时间变化的近似
- 软件项目管理计划框架:最好的方法之一是IEEE标准