準確度量——軟件項目規(guī)模估計有法可效
軟件項目的規(guī)模估算歷來是比較復(fù)雜的事,因為軟件本身的復(fù)雜性、歷史經(jīng)驗的缺乏、估算工具缺乏以及一些人為錯誤,導(dǎo)致軟件項目的規(guī)模估算往往和實際情況相差甚遠。因此,估算錯誤已被列入軟件項目失敗的四大原因之一。
軟件工程師經(jīng)常會被問到,編一個什么樣的軟件需要多長時間、多少資金。對于這個問題,不少人會犯難,原因有兩個:一是用戶的需求太不具體,二是自己缺乏一個科學的估計方法。這里向大家介紹幾種軟件項目規(guī)模的估計方法。
概念介紹
先介紹一個衡量軟件項目規(guī)模最常用的概念—— LOC(line of code),LOC指所有的可執(zhí)行的源代碼行數(shù),包括可交付的工作控制語言(JCL:job control language)語句、數(shù)據(jù)定義、數(shù)據(jù)類型聲明、等價聲明、輸入/輸出格式聲明等。一行代碼(1LOC)的價值和人月均代碼行數(shù)可以體現(xiàn)一個軟件生產(chǎn)組織的生產(chǎn)能力。組織可以根據(jù)對歷史項目的審計來核算組織的單行代碼價值。
例如,某軟件公司統(tǒng)計發(fā)現(xiàn)該公司每一萬行C語言源代碼形成的源文件(.c和.h文件)約為250K。某項目的源文件大小為3.75M,則可估計該項目源代碼大約為15萬行,該項目累計投入工作量為240人月,每人月費用為10 000元(包括人均工資、福利、辦公費用公攤等),則該項目中1LOC的價值為:
(240×10 000)/150 000=16元/LOC
該項目的人月均代碼行數(shù)為:
150 000/240=625LOC/人月
方法一:Delphi法
Delphi法是目前最流行的專家評估技術(shù),在沒有歷史數(shù)據(jù)的情況下,這種方式適用于評定過去與將來、新技術(shù)與特定程序之間的差別,但專家“?!钡某潭纫约皩椖康睦斫獬潭仁枪ぷ髦械碾y點,盡管Delphi技術(shù)可以減少這種偏差,但通常在評定一個新軟件的實際成本時用得不多,這種方式在決定其他模型的輸入時特別有用。Delphi法鼓勵參加者根據(jù)問題進行相互討論。這個技術(shù)要求有多種軟件相關(guān)經(jīng)驗的人參與,互相說服對方。
Delphi法的步驟是:
(1) 協(xié)調(diào)人向各專家提供項目規(guī)格和估計表格;
(2) 協(xié)調(diào)人召集小組會的各專家討論與規(guī)模相關(guān)的因素;
(3) 各專家匿名填寫迭代表格(如下圖2-2所示);
(4) 協(xié)調(diào)人整理出一個估計總結(jié),以迭代表的形式返回專家;
(5) 協(xié)調(diào)人召集小組會,討論較大的估計差異;
(6) 專家復(fù)查估計總結(jié)并在迭代表上提交另一個匿名估計;
(7) 重復(fù)(4)~(6)步驟,直到最低和最高估計達到一致。
Delphi法規(guī)模估計迭代表
項目名稱:
估計日期:
估計者:
估計論次:
結(jié)果: