天天看點

七種場景下的軟體工作量估算步驟(轉)

場景一:合同前的工作量估算

場景描述:

(1)沒有實施過CMMI2級

(2)合同未簽,需要給客戶報價

(3)有客戶的概要需求,有類似的項目資料可供參考

(4)需要估計整個項目的總工作量,以便于估算總成本,給客戶報價

估算步驟:

(1)尋找類似的曆史項目,進行項目的類比分析,根據曆史項目的工作量憑經驗估計本項目的總工作量;

(2)進行WBS分解,力所能及地将整個項目的任務進行分解;

(3)參考類似項目的資料,采用經驗法估計WBS中每類活動的工作量;

(4)彙總得到項目的總工作量;

(5)與第(1)步的結果進行印證分析,根據分析結果,确定估計結果。

場景二:基于詳細需求的經驗估計

場景描述:

(1)隻有詳細需求,沒有曆史資料

估算步驟:

(1)WBS分解,将任務分解到一個人或者一個小團隊可以執行的顆粒度;WBS分解時要識别出所有的傳遞物、項目管理活動、工程活動等。

(2)采用經驗法估計每個活動的工作量;

(3)彙總得到:每個階段的工作量、項目的總工作量。

其他說明:

在該場景下,隻使用了經驗法,無法對結果進行印證,難以判斷結果的合理性。

場景三:由編碼估算整體

場景描述:

(1)有類似項目的曆史資料

(2)有編碼活動的生産率資料

(3)有詳細需求

(4)實施了CMMI2級,但是沒有積累曆史項目的工作量分布資料

估算步驟:

(1)産品分解,将系統分為子系統,子系統分解為子產品;

(2)WBS分解,将任務分解到一個人或者一個小團隊可以執行的顆粒度;WBS分解時要識别出所有的傳遞物、項目管理活動、工程活動等。

(3)建立WBS分解中的活動與産品元素的映射關系,識别出WBS中哪些活動可以采用模型法估算;

(4)估計産品元素的規模,可以采用代碼行法或功能點法,并估計每個産品元素的複雜度、複用率等;

(5)根據曆史的編碼階段的生産率資料和産品元素的規模估計、複雜度、複用率等采用模型法計算每個産品元素的編碼工作量;

(6)根據曆史的類似項目的資料及估算人的經驗估計其他活動的工作量,可以采用經驗法。

(7)彙總得到:每個階段的工作量、項目的總工作量。

其他說明:

在該場景下,混合使用了經驗法與模型法,這2種方法互相補充,而不是互相印證。

場景四:由總體印證基于WBS的估計

場景描述:

(1)有類似項目的曆史資料

(2) 有類似項目的全生命周期的生産率資料(含管理工作量)

(3)有詳細需求

(4)實施了CMMI2級,但是沒有積累曆史項目的工作量分布資料

估算步驟:

(1)産品分解,将系統分為子系統,子系統分解為子產品;

(2)估計産品元素的規模,可以采用代碼行法或功能點法;

(3)累計出整個産品的總規模,并估計産品總體的複雜度、複用率等;

(4)根據類似項目的全生命周期的生産率資料和産品的總規模、複雜度、複用率等采用模型法計算總的開發工作量;

(5)WBS分解,将任務分解到一個人或者一個小團隊可以執行的顆粒度;WBS分解時要識别出所有的傳遞物、項目管理活動、工程活動等。

(6)根據曆史的類似項目的資料及估算人的經驗估計所有活動的工作量,可以采用經驗法。

(7)彙總得到:每個階段的工作量、項目的總工作量。

(8)與第(4)步得出的工作量進行比較印證,如果偏差不大,則以第(7)步的結果為準,如果偏差比較大,要仔細分析原因,可能的原因舉例如下:

類似項目的生産率資料不适合本項目;

WBS分解的顆粒度不夠詳細;

估算專家的經驗不适合本項目;

具體任務的估計不合理;

針對原因,對估算的結果進行調整,使其趨向合理。

其他說明:

在該場景下,對于項目的總工作量有2個結果或者多個結果,這些結果可以互相印證,以發現估算過程中的不合理之處,是估計更加合理。

場景五:三維印證基于WBS的估計

場景描述:

(1)有類似項目的曆史資料

(2) 有類似項目的全生命周期的生産率資料(含管理工作量)

(3)有詳細需求

(4)實施了CMMI3級,有曆史項目的工作量分布資料(階段分布、工種分布)

估算步驟:

(1)産品分解,将系統分為子系統,子系統分解為子產品;

(2)估計産品元素的規模,可以采用代碼行法或功能點法;

(3)累計出整個産品的總規模,并估計産品總體的複雜度、複用率等;

(4)根據類似項目的全生命周期的生産率資料和産品的總規模、複雜度、複用率等采用模型法計算總的開發工作量;

(5)根據曆史項目的工作量分布資料及第(4)步估算的項目總工作量,計算:

? 每個階段的工作量

? 每個工種的工作量

(6)WBS分解,将任務分解到一個人或者一個小團隊可以執行的顆粒度;WBS分解時要識别出所有的傳遞物、項目管理活動、工程活動等。

(7)根據曆史的類似項目的資料及估算人的經驗估計所有活動的工作量,可以采用經驗法。

(8)彙總得到:每個階段的工作量、每個工種的工作量、項目的總工作量。

(9)與第(4)、(5)步得出的工作量進行比較印證,如果偏差不大,則以第(7)步的結果為準,如果偏差比較大,要仔細分析原因,可能的原因舉例如下:

類似項目的生産率資料不适合本項目;

WBS分解的顆粒度不夠詳細;

估算專家的經驗不适合本項目;

具體任務的估計不合理;

針對原因,對估算的結果進行調整,使其趨向合理。

其他說明:

在該場景下,對于項目的總工作量有2個結果或者多個結果,并且采用2種方法都得到了每個階段、每個工種的工作量、項目的總工作量,可以從上述的3個次元對這些結果進行互相印證,以發現估算過程中的不合理之處,是估計更加合理。

場景六:四維印證基于WBS的估計

場景描述:

(1)有類似項目的曆史資料

(2) 有類似項目的編碼活動的生産率資料(不含管理工作量)

(3)有詳細需求

(4)實施了CMMI3級,有曆史項目的工作量分布資料(階段分布、工種分布、階段工種分布)

(5)項目采用了瀑布模型

估算步驟:

(1)産品分解,将系統分為子系統,子系統分解為子產品;

(2)估計産品元素的規模,可以采用代碼行法或功能點法,并估計每個産品元素的複雜度、複用率等;

(3)根據類似項目的編碼活動的生産率資料和産品元素的規模、複雜度、複用率等采用模型法計算每個産品元素的編碼工作量;

(4)根據曆史項目的按工種的工作量分布資料及第(3)步的估算的編碼工作量依次計算:

i)根據曆史項目的編碼的工作量占編碼階段的工作量的百分比與第(3)部計算出的編碼工作量計算編碼階段的總工作量;

ii)根據曆史項目的編碼階段各工種的工作量分布百分比計算編碼階段每個工種的工作量;

iii)根據曆史項目的其他階段的工作量與編碼階段的工作量比例計算其他階段的總工作量;

iv)根據曆史項目的其他階段的每個工種的工作量分布百分比及第iii)步的結果計算其他階段的每個工種的工作量;

(5)WBS分解,将任務分解到一個人或者一個小團隊可以執行的顆粒度;WBS分解時要識别出所有的傳遞物、項目管理活動、工程活動等。

(6)根據曆史的類似項目的資料及估算人的經驗估計所有活動的工作量,可以采用經驗法。

(7)彙總得到:每個階段每個工種的工作量、每個階段的工作量、每個工種的工作量、項目的總工作量。

(8)與第(4)步得出的工作量進行比較印證,如果偏差不大,則以第(6)步的結果為準,如果偏差比較大,要仔細分析原因,可能的原因舉例如下:

類似項目的生産率資料不适合本項目;

WBS分解的顆粒度不夠詳細;

估算專家的經驗不适合本項目;

具體任務的估計不合理;

針對原因,對估算的結果進行調整,使其趨向合理。

其他說明:

在該場景下,對于項目的總工作量有2個結果或者多個結果,并且采用2種方法都得到了每個階段的工作量、每個工種的工作量、每個階段每個工種的工作量、項目的總工作量,可以從上述的4個次元對這些結果進行互相印證,以發現估算過程中的不合理之處,是估計更加合理。

場景七:需求變更的工作量估計

場景描述:

(1)有變更的需求描述

(2)項目進行到了編碼階段

(3)有本項目的編碼的生産率

估算步驟:

(1)進行需求變更的波及範圍分析

(2)進行本次變更的的WBS分解

(3)對于變更引起的代碼變化進行規模、複雜度等其他屬性的估計

(4)根據本項目的編碼的生産率及估計的規模采用模型法估計工作量

(5)對于WBS分解中其他活動進行經驗估計

(6)彙總所有的工作量得到本次變更的工作量估計

轉載于:https://www.cnblogs.com/HappyQQ/archive/2008/01/06/1027749.html