Putnam模型
出自 MBA智库百科(https://wiki.mbalib.com/)
目錄 |
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= 工作量×人年薪金=開發成本 還可以估算開發時間: