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