工作量估算 - wolai 笔记
工作量是软件规模函数,单位为人月(pm)。
支持大多数估算模型的经验数据,都是从有限个项目的样本集中总结出来的,因此,没有一个估算模型可以适用于所有类型的软件和开发环境。

1.静态单变量模型

E=A+B(ev)CE=A+B*(ev)^C
A、B、C为经验常数,ev是估算变量(LOCFP)。

1.1面向LOC估算模型

(1)Walston-Felix模型

E=5.2×KLOC)0.91E=5.2×(KLOC)^{0.91}

(2)Bailey-Basili模型

E=5.50.73×(KLOC)1.16E=5.5+0.73×(KLOC)^{1.16}

(3)Boehm简单模型

E=3.2×(KLOC)1.05E=3.2×(KLOC)^{1.05}

(4)Doty模型(KLOC>9)

E=5.228×(KLOC)1.407E=5.228×(KLOC)^{1.407}

1.2面向FP估算模型

(1)Albrecht&Gaffney模型

E=13.39+0.0545FPE=-13.39+0.0545FP

(2)Maston、Barnett、Mellichamp模型

E=585.75.12FPE=585.7+5.12FP
不同的结果主要原因是:这些模型多数都是仅根据若干应用领域中有限个项目的经验数据推导出来的,适用范围有限。因此,必须根据当前项目的特点选择适用的估算模型,并且根据需要适当地调整(例如,修改模型常数)估算模型。

2.动态多变量模型

工作量是软件规模开发时间两个变量的函数。是根据从4000多个当代软件项目中收集的生产率数据推导出来的。
E(LOC×B0.333/P)3×(1/t)4E=(LOC×B^{0.333}/P)^3×(1/t)^4
  • t是以月或年为单位的项目持续时间;
  • B为特殊技术因子,随着需求增加缓慢增加。小程序0.16(5~10KLOC),大程序(超70KLOC)0.39。
  • P为生产率参数,反应过程管理、使用语言、系统的复杂程度等对工作量的影响。实时嵌入软件2000;系统软件10000;商业系统 28000

3.基于过程的估算

(1)将任务分解为相对较小任务集合。
(2)估算完成每个任务需要的工作量。
(3)累计


Comment