您的位置:軟件測試 > 軟件項(xiàng)目管理 > 項(xiàng)目管理綜合 >
利用簡單的一元線性回歸分析估計(jì)軟件項(xiàng)目開發(fā)時間
作者:網(wǎng)絡(luò)轉(zhuǎn)載 發(fā)布時間:[ 2013/5/15 14:33:14 ] 推薦標(biāo)簽:

引言

前兩天一個朋友給我打電話,問我如何估計(jì)項(xiàng)目開發(fā)時間。對此我很詫異,問他以前他們是怎么估計(jì)的,他說以前基本都是大家開個會,大約都說說自己意見,后負(fù)責(zé)人一拍腦袋,給出一個時間。不過這次遇到一個非常認(rèn)真的客戶,要求不但要估計(jì)出項(xiàng)目開發(fā)時間,還要明確說明具體的依據(jù)和估算方法,這下我這朋友有點(diǎn)犯難,才詢問我。后來我翻閱了一些數(shù)理統(tǒng)計(jì)和項(xiàng)目估算方面的資料,告訴了他利用一元線性回歸分析估計(jì)軟件項(xiàng)目開發(fā)時間的方法。想到這種估算需要在一些開發(fā)團(tuán)隊(duì)很常見,所以在這里整理成文。

問題的定義及數(shù)學(xué)模型

這里我們僅考慮比較簡單的一元回歸問題,即通過單一的Proxy預(yù)測項(xiàng)目開發(fā)時間。這里先說一下什么叫Proxy。Proxy叫做代理變量,簡單來說是估計(jì)項(xiàng)目開發(fā)時間的數(shù)理依據(jù)。說白了,是我們預(yù)測開發(fā)時間,總要有個根據(jù),例如需求中用例個數(shù)、概要設(shè)計(jì)中的實(shí)體個數(shù)、數(shù)據(jù)庫中的表的數(shù)量等等。設(shè)Proxy為x,項(xiàng)目開發(fā)時間為y,那么可以得到y(tǒng)=f(x),學(xué)過初等數(shù)學(xué)的都可以看懂,是說開發(fā)時間是Proxy的一個函數(shù),如果我們既知道了新項(xiàng)目的x,又知道函數(shù)f,那么y出來了?上煜履挠羞@么好的事,我們現(xiàn)在既不知道f,又不知道x,別說x的值了,甚至我們都不知道該用哪個Proxy做x。

不過也不必悲觀,經(jīng)過上面分析,我們至少明確了我們奮斗的方向:

1、找出候選的Proxy。

2、選擇合適的Proxy作為x。

3、得到x的值。

4、確定函數(shù)f。

5、得出y。

下面我們一步一步解決各個問題。

找出候選的Proxy

雖然一個項(xiàng)目的特征量很多,不過可不是隨便一個特征量都可以當(dāng)做Proxy的。要成為Proxy,至少要滿足如下四個條件。

1)Proxy的值應(yīng)該和工作量緊密相關(guān)。

這個不用多解釋了吧,是說Proxy的值和y的值要有相關(guān)性。關(guān)于“相關(guān)性”的概念這里先定性說一下,定量分析后續(xù)會講到。

2)Proxy應(yīng)該是能明確得出值的,沒有二義性。

這是說Proxy應(yīng)該對應(yīng)一個明確數(shù)值,是一是一,是二是二,不能取“不錯”、“挺多”這種值。

3)Proxy應(yīng)該在項(xiàng)目開始階段可以得出或能較精確估計(jì)出。

這個開始階段晚不能晚于概要設(shè)計(jì),因?yàn)楣浪愣际且婚_始進(jìn)行,所以Proxy一定要在起始階段能得出,否則項(xiàng)目結(jié)束了誰還搞估算,實(shí)際值都出來了。

4)Proxy對于不同的實(shí)施方案是敏感的。

是說當(dāng)開發(fā)方法、開發(fā)過程等因素變化時,Proxy應(yīng)該具有一定的敏感性。

經(jīng)過上述分析,我想選用什么作為Proxy大家心里都有點(diǎn)譜了。一般來說,在估算時常被作為Proxy的有需求分析中用例數(shù)量、需求分析中功能模塊數(shù)量、概要設(shè)計(jì)中實(shí)體數(shù)量和數(shù)據(jù)庫設(shè)計(jì)中表的數(shù)量。當(dāng)然,各位也可以根據(jù)上述要求選擇自己的Proxy。在本文中,我們暫且選擇用例數(shù)量、實(shí)體數(shù)量和表數(shù)量三個Proxy作為候選。

選擇合適的Proxy作為x

這里所謂的“合適”,在數(shù)學(xué)上的意義是和開發(fā)時間y的相關(guān)性強(qiáng)。那么什么是相關(guān)性呢,從直觀意義上,兩個變量的相關(guān)性是指兩個變量關(guān)聯(lián)的緊密程度,數(shù)學(xué)上可以用相關(guān)系數(shù)表示。相關(guān)系數(shù)計(jì)算公式如下:

至于這個公式為什么能反映出兩個變量的相關(guān)性,可以去參考高等數(shù)理統(tǒng)計(jì)相關(guān)資料,本文不再贅述,只是順便說一下,r的范圍在-1~1之間,值越大代表相關(guān)性越強(qiáng),如果為正值則表示兩個變量正相關(guān),否則為負(fù)相關(guān)。知道了這個,我們這一步驟的目的是找出候選Proxy中與y相關(guān)系數(shù)大的作為x。

不過,這數(shù)據(jù)從哪里來呢?這要從以前做過的項(xiàng)目中提取了。查閱朋友所在團(tuán)隊(duì)近做過的5個項(xiàng)目的數(shù)據(jù)資料(這里當(dāng)然歷史項(xiàng)目越多越好,不過筆者這個朋友的團(tuán)隊(duì)只有5個項(xiàng)目的記錄),得到如下數(shù)據(jù):

項(xiàng)目工期(y):     424     267     90     331     160     (人時)

用例數(shù)量(x1):   37  20  6  18  12

實(shí)體數(shù)量(x2):   15  9    4  11  14

數(shù)據(jù)表數(shù)量(x3): 25 18  7  16 18

上一頁123下一頁
軟件測試工具 | 聯(lián)系我們 | 投訴建議 | 誠聘英才 | 申請使用列表 | 網(wǎng)站地圖
滬ICP備07036474 2003-2017 版權(quán)所有 上海澤眾軟件科技有限公司 Shanghai ZeZhong Software Co.,Ltd