【公眾號@ “項目管理研究所” 將會第一時間更新文章并分享《行業(yè)分析報告》】
歸檔于軟件項目管理初級學(xué)習(xí)路線
第六章 軟件項目成本計劃
《初級學(xué)習(xí)路線合集 》
麗水網(wǎng)站制作公司哪家好,找創(chuàng)新互聯(lián)建站!從網(wǎng)頁設(shè)計、網(wǎng)站建設(shè)、微信開發(fā)、APP開發(fā)、成都響應(yīng)式網(wǎng)站建設(shè)公司等網(wǎng)站項目制作,到程序開發(fā),運營維護。創(chuàng)新互聯(lián)建站2013年開創(chuàng)至今到現(xiàn)在10年的時間,我們擁有了豐富的建站經(jīng)驗和運維經(jīng)驗,來保證我們的工作的順利進行。專注于網(wǎng)站建設(shè)就選創(chuàng)新互聯(lián)建站。
大家好,這節(jié)我們學(xué)習(xí)軟件項目管理---參數(shù)估算法,重點介紹COCOMO模型。
參數(shù)估算也稱為模型估算,是根據(jù)項目數(shù)據(jù)集合出來的模型,代碼行,人數(shù),時間,工時等都是項目數(shù)據(jù)。
所以參數(shù)估算模型是通過統(tǒng)計技術(shù)得出的數(shù)學(xué)模型,然后根據(jù)這個模型估算軟件項目的規(guī)模或者成本,參數(shù)模型是基于歷史項目數(shù)據(jù),項目類型不同,項目環(huán)境不同,項目數(shù)據(jù)也就不同,數(shù)據(jù)不同得出的模型也就不同。
有很多組織根據(jù)自己的研究對象得出不同的估算模型。
例如:這些模型的輸入是代碼行(LOC)
這些模型的輸入是功能點(FP)
盡管模型各不相同,但是有基本相似的公式模式,如圖所示:
接下來我們通過研究2個模型來了解參數(shù)模型的思路,既 Walston-Felix模型和COCOMO模型。
Walston-Felix模型是1977年,IBM的Walston和Felix根據(jù)63套項目數(shù)據(jù),回歸分析得出的。
其中E = 5.2 * 代碼行的0.91次冪,表示代碼行與工作量的關(guān)系。
其中D = 4.1 * 代碼行的0.36次冪, 代表代碼行與項目進度的關(guān)系。
其中最后一個模型公式,既文檔頁數(shù) = 49 * 代碼行的1.01次冪 。
便知道我們不能隨便照抄別人的模型,因為不同的企業(yè)團隊要求不同,文檔頁數(shù)肯定也不同,所以應(yīng)該采用適合自己項目的模型。
下面我們舉個例子:某項目采用JAVA語言來完成,估計有366個功能點,根據(jù)自己定義的該項目 代碼行與功能點的關(guān)系。
既 L(代碼行)等于366 * 46 約等于16.386K代碼行,則根據(jù)模型估算公式 E(工作量)等于66人月,DOC(文檔頁數(shù))約等于826頁。
COCOMO模型既結(jié)構(gòu)化成本模型,是目前應(yīng)用最廣泛的參數(shù)型軟件成本估計模型,最初是由Boehm在1981年提出的,稱為COCOMO 81模型。他是通過60多套項目數(shù)據(jù)分析得出的模型,20世紀90年代中期,隨著軟件工程技術(shù)的發(fā)展,又提出了COCOMO II模型。
COCOMO模型基本原理如下圖所示:
COCOMO模型分為三個級別:基本COCOMO模型,中等COCOMO模型,高級COCOMO模型。
級別不同,估算的精度也不同。
針對每個級別的模型又分為三個項目類型:既有機型,嵌入式型,半嵌入式型或者叫半有機型。
先介紹COCOMO 81的三個級別模型。
針對上面的每個模型,將項目分為三種類型,有機型,嵌入式,半嵌入式或者叫半有機型。
有機型項目是最常規(guī)簡單的項目類型,例如各種網(wǎng)站項目,信息化系統(tǒng)等等,相對較小,較簡單的軟件項目,開發(fā)人員對開發(fā)項目等目標(biāo)理解比較充分,與軟件系統(tǒng)相關(guān)的工作經(jīng)驗比較豐富,對軟件的使用環(huán)境比較熟悉,受硬件的約束比較小,程序的規(guī)模不是很大。
嵌入式項目類型,他主要是各類系統(tǒng)程序,例如實時處理。控制系統(tǒng)等等。通常與某種硬件設(shè)備緊密結(jié)合在一起,對接口,數(shù)據(jù)結(jié)構(gòu),算法的要求比較高,軟件規(guī)模任意,例如航天用的控制系統(tǒng),大型指揮系統(tǒng)等等。
半嵌入式項目類型,他是介于上述兩種軟件之間,規(guī)模和復(fù)雜度都屬于中等或者更高,例如編譯器,連接器,分析器等等。
這是基本COCOMO-81模型公式:E=a * (KLOC)的b次冪。
a和b的取值與項目類型有關(guān),如下圖是不同項目類型的系數(shù)表:
下面舉一個33.3k代碼行的軟件開發(fā)項目例子:最后得出的結(jié)果也就是項目規(guī)模是152人月。
我們再看中等COCOMO-81模型,他是對基本模型的調(diào)整,在基本模型的基礎(chǔ)上再乘以 乘法因子,乘法因子是根據(jù)成本驅(qū)動屬性得來的,其中a,b才是根據(jù)不同項目類型有不同取值。
中等COOCMO-81模型關(guān)鍵是乘法因子,它來自于成本驅(qū)動屬性,分4個大類,分別是產(chǎn)品屬性,平臺屬性,人員屬性,過程屬性。
這四個大類又細分為15個驅(qū)動因子,例如產(chǎn)品屬性有3個因子,可靠性,信息量,復(fù)雜性。每個驅(qū)動因子的取值范圍有很低,低,正常,高,非常高,極高級別。
例如產(chǎn)品復(fù)雜性驅(qū)動因子很低的取值為0.7,非常高的取值為1.30,既復(fù)雜性越高取值越大。
我們再看分析員能力這個驅(qū)動因子,非常低是為1.46,非常高是為0.71,既能力越高取值越低 。
乘法因子等于這15個驅(qū)動因子取值后相乘,如果大于1說明工作量往高調(diào)整,小于1說明工作量往低調(diào)整。
我們繼續(xù)看一個33.3k代碼行的軟件開發(fā)項目例子:采用中等CoCoMo模型計算項目規(guī)模,乘法因子根據(jù)15個驅(qū)動因子取值相乘后得出1.09,代入公式得出項目規(guī)模成本為166人月。
對比前面的基本模型,估算值有了一定的調(diào)整,因為我們對項目的產(chǎn)品,人員,平臺,過程有了更細的了解。
我們再看高級COCOMO模型,他比前面兩個模型的精度又提高了,主要體現(xiàn)在兩個方面。第一個方面是針對不同的子系統(tǒng)采用的不同的模型估算,另外一方面是針對模型屬性進行更加細化的調(diào)整。
15個因子,每個因子在不同的階段影響不同,取值不同。例如應(yīng)用經(jīng)驗AEXP這個驅(qū)動因子,在開發(fā)的不同階段,其作用是不同的,影響最大的階段是需求階段,設(shè)計階段弱化了。
那么針對每個等級,這個驅(qū)動因子在不同階段取值是不同的,例如對于非常低的級別,需求和產(chǎn)品設(shè)計階段的取值為1.40,在詳細設(shè)計階段的取值為1.30,編碼和測試階段的取值為1.25,因此提高了估算的精度,但是實踐中實施起來會比較麻煩。
COCOMO II是95年左右,Boehm在81模型的基礎(chǔ)上,結(jié)合了軟件工程技術(shù)的發(fā)展提出來的。
COCOMO II模型也分為3個等級,應(yīng)用組裝模型,早期設(shè)計模型,后體系結(jié)構(gòu)模型。他們分別適合規(guī)劃階段,設(shè)計階段,開發(fā)階段使用。
應(yīng)用組裝模型適合原型構(gòu)造或者復(fù)用構(gòu)件組合項目時采用。他基于應(yīng)用點或者稱為對象點 除以一個標(biāo)準(zhǔn)的應(yīng)用點的生產(chǎn)率,應(yīng)用點數(shù)量的估算可以是顯示的屏幕數(shù)、網(wǎng)頁數(shù)、報表數(shù)量、程序模塊數(shù)量等等。
如下圖所示 公式為:工作量 = NAP * (1-復(fù)用代碼量的百分比)/ PROD
早期設(shè)計模型適用于項目的初期,需求已經(jīng)確定,在系統(tǒng)設(shè)計的初始階段只設(shè)計了基本的軟件結(jié)構(gòu),還沒有對體系結(jié)構(gòu)進行詳細的設(shè)計,這一階段的主要任務(wù)是簡單、快速的完成一個大概的成本估算。
那么公式如下圖所示:其中PM是工作量,A是常數(shù),S是代碼行的規(guī)模,E是指數(shù)比例因子,B可以校準(zhǔn)(目前暫定為B=0.91),SF是指數(shù)驅(qū)動因子。
指數(shù)比例因子的效果是對規(guī)模較大的項目,預(yù)計的工作量將增加,那么EM是工作量系數(shù)。
因此軟件開發(fā)工作量需要代碼量行數(shù)的非線性函數(shù),既基于可用代碼行以及5個規(guī)模指數(shù)因子,7個工作量乘數(shù)因子。
計算指數(shù)比例因子最重要的依據(jù)是驅(qū)動因子和工作量系數(shù),5個指數(shù)驅(qū)動因子屬性和取值如表所示:
事實上對于一個項目而言,這些屬性的缺乏將不成比例的增加更多的工作量,它分為很低、低、正常、高、很高、極高等級別。
早期設(shè)計的工作量系數(shù)有7個,這些系數(shù)可以評定為非常低、很低、低、正常、高、很高、極高等級別。
我們再來看COCOMO II的后體系結(jié)構(gòu)模型,我們看一下公式,那么該模型與早期設(shè)計模型基本是一致的,不同之處在于工作量系數(shù)不同。
Boehm講后體系結(jié)構(gòu)模型中的工作量系數(shù)化成產(chǎn)品因素,人員因素,項目因素,平臺因素四個大類,共17個屬性的驅(qū)動因子。
與COCOMO-81模型的15個驅(qū)動因子相比,COCOMO II模型的后體系結(jié)構(gòu)模型增加了一些軟件工程發(fā)展中的一些因素,同時也刪除了一些因素。
另外,如果需要估計復(fù)用代碼或者已生成代碼所需工作量,可以采用復(fù)用模型,公式如下:
計算出等價代碼行(ESLOC)后,ESLOC可以作為代碼行的輸入,采用早期設(shè)計模型或者后體系設(shè)計模型來估算工作量。
總之 參數(shù)模型是根據(jù)項目數(shù)據(jù)進行分析,基本上是進行回歸分析,從而得出回歸模型作為參數(shù)模型。
這個參數(shù)模型可以是線性的,也可以是非線性的,相當(dāng)于是監(jiān)督學(xué)習(xí)的回歸分析方法,例如線性回歸,多項式回歸,邏輯回歸,神經(jīng)網(wǎng)絡(luò),集成方法等...
例如這是某項目的一些數(shù)據(jù):
通過線性回歸分析,計算出參數(shù)模型,根據(jù)這個模型可以進行此類項目的估算。
那么這是另外一類的項目數(shù)據(jù),我們采用神經(jīng)網(wǎng)絡(luò)算法進行模型估算。
這是對項目數(shù)據(jù)進行數(shù)字化和歸一化的結(jié)果。
我們采用三層的BP神經(jīng)網(wǎng)絡(luò)建模。
通過隱層節(jié)點的數(shù)目,網(wǎng)絡(luò)學(xué)習(xí)率,隱層和輸出層激活函數(shù)的分析研究,可以確定網(wǎng)絡(luò)權(quán)值和閾值的變化量,從而確認了參數(shù)模型。
這是模型應(yīng)用的誤差圖示,誤差率在可以接受的范圍之內(nèi)。
總之參數(shù)模型方法需要具有良好的項目數(shù)據(jù)為基礎(chǔ),存在成熟的項目估算模型。特點是比較簡單,而且也比較準(zhǔn)確。如果模型選擇不當(dāng)或者數(shù)據(jù)不準(zhǔn),也會導(dǎo)致偏差。
到這里,第六章 第七節(jié)參數(shù)估算法就講解完畢了!下一節(jié)介紹專家估算法~
如果您覺得這篇文章有幫助到您的的話不妨點贊支持一下喲~~????
后續(xù)將持續(xù)更新【軟件項目管理初級學(xué)習(xí)路線】的全知識點,大家感興趣的多多關(guān)注博主喲~
————————————————
分享標(biāo)題:軟件項目管理 6.7.參數(shù)估算法
本文鏈接:http://www.yijiale78.com/article18/dschgdp.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站建設(shè)、云服務(wù)器、Google、域名注冊、虛擬主機、搜索引擎優(yōu)化
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)