目录
|
Putnam 模型是指1978年Putnam提出的一种具有实用价值的动态多变量软件成本进度模型。它是假定在软件开发的整个生存期中工作量有特定的分布。这种模型是依据在一些大型项目(总工作量达到或超过30个人年)中收集到的工作量分布情况而推导出来的,但也可以应用在一些较小的软件项目中。
Putnam 认为采用SLOC/PM(原代码行/人月)作为软件生产效率的指标,源于传统经济学的投入产出分析,在软件中应用表现平平。根本原因是忽略了进度计划对软件开发的影响。然而在实际项目中,进度计划是影响软件费用和人力资源投入的非常重要和敏感的因素。
Putnam在从事软件开发管理27年的生涯中,收集分析了6600个完成的软件项目数据,认为一个软件成本和人力 投入预计模型必须要能够反映时间(即进度计划)和人力两个因素的影响。Putnam总结并提出下列基本关系。
Amount of function=effort×Schedule×Process Productivity
其中Effort(人力投入)和Schedule(进度计划)具有指数关系。
在此基础上,Putnam将这种关系用下列方程具体描述:
Size=(Effort/Beta)1/3×Schedule4/3×Process productivity Parameter
其中:
Size(程序规模或尺寸)可用SLOC(原代码行)或其他度量,例如功能数量表示。
Effort(投入)用开发中的人力投入PY(人年)表示。
Beta与技能因素有关,同时也是Size的函数。其取值区间是[0.16 0.39]。Beta具有降低生产效率的作用。
Process Productivity Parameter (过程生产效率参数)是一个代表生产能力的参数,不同的机构其开发和管理能力不同,各种应用程序开发难度也有很大差别,需要用不同的过程生存率参数加以调整,其理论值区间是[610 1346269],典型的取值区间是[1947 121393]。
模型调整和估值的目的是估计或调整过程生产效率参数取值,使其符合开发机构实际状况。Putnam模型的优点恰恰在于可以准确地计算出过程生存率参数数值。其计算方法如下: Process Productivity Parameter=Size/((Effort/Beta)1/3(Schedule4/3))
该式中存在Effort和Schedule两个变量,因此应用到新开发的项目时,还需要另外一个附加的约束条件才能准确求解。约束条件有多种形式,如果项目的最大预算金额已经确定,则:(最大开发人力投入)=(最大费用)/(平均人力费用负担)
其他形式的约束条件包括:最大开发时间,最大人力,最大人力构建率等。
Putnam 模型经管变换和处理后,还可作为比较企业开发能力的基准。下图是一个指挥控制系统人力开发投入的基准图形,处于平均线下面的企业,显然有较高的开发效率。如下列模型基准例图。
L = Ck * K^1/3 * td^4/3
其中
L——源代码行数(以LOC计)
K——整个开发过程所花费的工作量(以人年计)
td——开发持续时间(以年计)
Ck——技术状态常数,它反映“妨碍开发进展的限制”,取值因开发环境而异
CK的典型值 | 开发环境 | 开发环境举例 |
---|---|---|
2000 | 差 | 没有系统的开发方法,缺乏文档和复审 |
8000 | 好 | 有合适的系统的开发方法,有充分的文档和复审 |
11000 | 优 | 有自动的开发工具和技术 |
有上述方程加以变换,可以得到估算工作量的公式: K= 工作量×人年薪金=开发成本 还可以估算开发时间: