3、制定計劃
對軟件項目進行估算的第三步是根據工作量制定項目計劃,包括人員安排、工作量分解、開始和完成時間等等。可以根據自己的歷史數據或行業模型決定所需的資源并落實到項目計劃。可以采用上述的IBM模型或McConnell給出的方法粗略地給出項目持續時間(以IBM模型為例):
項目需要的人員S=0.54×E0.6 =0.54×660.6=7人
項目持續時間D=4.1×L0.36 =4.1×16.3860.36=11月
4、成本估算
項目的成本估算包括許多因素:人力成本、辦公費用、管理費用、設備和軟件等的購置費用、場地租金、旅差費等等。對項目成本的估算取決于公司所采用的成本核算方法。有的公司某些費用并沒有計入項目成本中,而是按管理費用等分攤。有的從歷史數據求出生產率度量和每行成本,即行/PM(人月)和元/行,則LOC的值與元/行相乘得到成本,用LOC 的值與行/PM相除得到工作量。具體可按公司的具體情況選擇。
注:本文作為示例給出的針對進度等的定量監理的估算方法只是眾多方法中的一種。筆者的目的是建議監理單位在項目監理過程中根據實際情況適當采用定量的方法。更多的估算方法,可以參考有關軟件評估方面的書籍和其它資料。
幾種估算模型的介紹
1、IBM模型
1977年,IBM的Walston和Felix提出了如下的估算公式:
E = 5.2×L0.91,L是源代碼行數(以KLOC計),E是工作量(以PM計)
D = 4.1×L0.36,D是項目持續時間(以月計)
S = 0.54×E0.6,S是人員需要量(以人計)
DOC = 49×L1.01。DOC是文檔數量(以頁計)
在此模型中,一般指一條機器指令為一行源代碼。一個軟件的源代碼行數不包括程序注釋、作業命令、調試程序在內。對于非機器指令編寫的源程序,如匯編語言或高級語言程序,應轉換成機器指令源代碼行數來考慮。
2、Putnam模型
這是1978年Putnam提出的模型,是一種動態多變量模型。它是假定在軟件開發的整個生存期中工作量有特定的分布。這種模型是依據在一些大型項目(總工作量達到或超過30個人年)中收集到的工作量分布情況而推導出來的,但也可以應用在一些較小的軟件項目中。
Putnam模型可以導出一個“軟件方程”,把已交付的源代碼(源語句)行數與工作量和開發時間聯系起來。其中,td是開發持續時間(以年計),K是軟件開發與維護在內的整個生存期所花費的工作量(以人年計),L是源代碼行數(以LOC計),Ck是技術狀態常數,它反映出“妨礙程序員進展的限制”,并因開發環境而異。其典型值的選取如下表所示。
3、COCOMO模型(COnstructive COst MOdel)
這是由TRW公司開發。Boehm提出的結構型成本估算模型,是一種精確、易于使用的成本估算方法。在該模型中使用的基本量有以下幾個:DSI(源指令條數)定義為代碼或卡片形式的源程序行數。若一行有兩個語句,則算做一條指令。它包括作業控制語句和格式語句,但不包括注釋語句。KDSI=1000DSI。MM(度量單位為人月)表示開發工作量。TDEV(度量單位為月)表示開發進度。它由工作量決定。
(1)軟件開發項目的分類
在COCOMO模型中,考慮開發環境,軟件開發項目的總體類型可分為三種:組織型(Organic)、嵌入型(Embedded)和介于上述兩種軟件之間的半獨立型(Semidetached)。
(2)COCOMO模型的分類
COCOMO模型按其詳細程度分成三級:即基本COCOMO模型、中間COCOMO模型、詳細COCOMO模型。基本COCOMO模型是一個靜態單變量模型,它用一個以已估算出來的源代碼行數(LOC)為自變量的(經驗)函數來計算軟件開發工作量。中間COCOMO模型則在用LOC為自變量的函數計算軟件開發工作量(此時稱為名義工作量)的基礎上,再用涉及產品、硬件、人員、項目等方面屬性的影響因素來調整工作量的估算。詳細COCOMO模型包括中間COCOMO模型的所有特性,但用上述各種影響因素調整工作量估算時,還要考慮對軟件工程過程中每一步驟(分析、設計等)的影響。