软件项目成本计划

  1. 软件项目规模:工作量,例如:软件规划,软件管理,需求分析,系统设计,编码,测试,以及后期维护等任务
  2. 软件项目成本:
    1. 完成软件规模相应付出的代价
      1. 待开发的软件项目需要的资金
      2. 人的劳动的消耗所需要的代价是软件产品的主要成本
      3. 货币单位

代码行估算法(不常用)

  • 从软件程序量的角度定义项目规模
  • 与具体的编程语言有关
  • 功能分解足够详细
  • 有一定的经验数据
  • 容易计算,但没有标准

功能点估算(Albrecht适用于信息系统)

  • 与实现的语言和技术无关
  • 用系统的功能数量来测量其规模
  • 通过评估,加权,量化得出功能点
  • 功能点=UFC未调整功能点计数*TCF技术复杂度因子

UFC-未调整功能点计数

UTC

  1. 外部输入
    • 穿越外部边界进入系统内部
  2. 外部输出
    • 经过内部逻辑的处理提供面向应用的分析
  3. 外部查询
    • 一个输入引出一个及时的简单输出
    • 没有处理过程
  4. 外部接口文件
    • 用接口将信息传送给另一个系统
    • 提供的数据之能被引用
  5. 内部逻辑文件
    • 系统边界内的文件
    • 通过外界输入来维护

根据IFPUG功能点得出五项UTC的定级,再与组件复杂度相乘后得到UFC

所有的UFC相加

TCF-技术复杂度因子

image-20220407090034151

每个因子可取的范围

image-20220407090233553

(十四项因子相加后得出的总数)*0.01+0.65=TCF

0.65<=TCP<=1.35

用例点估算法

基于需求用例视图的估算方法

  1. 计算未调整的角色权值UAW
    • 角色数*相应的权重之和
    • image-20220407091241338
  2. 计算未调整的用例权值UUCW
    • 用例数*相应的权重之和
    • image-20220407091332548
  3. 计算未调整的用例点UUCP
    • UAW+UUCW
  4. 计算技术和环境因子TEF
    1. 技术因子TCF
      • image-20220407091602561
      • 影响等级在0-5之间
      • (技术因子的权值之和 * 相应的影响等级之和 * 0.01)+0.6
    2. 环境因子ECF
      • image-20220407091942962
      • (环境因子的权值之和 * 相应的影响等级之和 * -0.03)+1.4
  5. 计算调整的用例点UCP
    • UUCP * TCF * ECF
  6. 计算工作量
    • Effort=UCP * PF(项目生产率)

类比(自顶向下)估算法

根据相似的项目之前的成本数据,来估算本项目的成本

自下而上估算法

  • 前提是任务分解完成,从最底层的工作包开始,将估算值累加
  • 相对比较准确
  • 他的准确度来源于每个任务的估算情况

三点估算法

基于任务成本的三种估算值来计算预期成本的方法

  • 最可能成本CM比较现实的估算成本
  • 最乐观成本CO最好情况所得到的估算成本
  • 最悲观成本CP差好情况所得到的估算成本
  1. 三角分布CE=(CO+CM+CP)/3
  2. 贝塔分布CE(CO+4CM+CP)/6

参数估算法

称为模型估算

  1. image-20220407094024503

    image-20220407094144217

  2. COCOMO

    • image-20220407094504512

敏捷任务估算

  1. 高层估算:采用轻量级,快速生成
  2. 短期估算:进行详细的估算

工作量的估算采用StoryPoint故事点,度量一个Story需要付出的工作量相对估算

相对估算

  1. Fibonacci七个等级 0 1 2 3 5 8 13
    • 选取预估为3的StoryPoint的Story
    • 将需要预估的Story于选取的Story进行比较
      1. 如果两个工作量差不多,3
      2. 略少2
      3. 更少1
      4. 不需要完成0
      5. 略多/更多/再多 5/8/13
      6. 超过13则为Epic,需要分解

成本预算

  • 成本预算是将项目的总成本按照项目的进度分摊到各个工作单元去
  • 成本预算的目的是产生成本基线

分配项目成本预算

  1. 给任务分配资源成本
    • 根据每个任务的资源分配情况分配
  2. 给任务分配固定资源成本
    • 当一个项目的资源需要固定数量的资金时,可以向任务分配固定资源成本
  3. 给任务分配固定成本
    • 某项任务的成本不变不管任务工期,或使用的资源是什么,任务成本为固定的