用於軟體專案工作量估算的方法有以「估」為主的專家法和類推法,以「算」為主的模擬法和方程法。在軟體估算的實踐中,模擬法和類推法也是普遍使用的估算方法,但很多人搞不清二者的應用範圍和估算步驟,現在筆者就對這兩種估算方法做一下詳細介紹。
1、模擬法
模擬法是指將本專案的部分屬性與類似的一組基準資料進行比對,進而獲得待估算專案工作量、工期或成本估算值的方法。模擬法是基於大量歷史專案樣本資料來確定目標專案的**值,通常是以50百分位數為參考而非平均值。選擇模擬法進行估算,應根據專案的主要屬性,在基準資料庫中選擇主要屬性相同的專案進行比對。
模擬法適合評估那些與歷史專案在應用領域、系統規模、環境和複雜度方面相似的專案,通過新專案與歷史專案的比較得到估計資料。模擬法估算結果的精確度取決於歷史專案資料的完整性和準確度。因此,用好模擬法的前提條件之一是組織建立起較好的專案後評價與分析機制,對歷史專案的相關屬性建立基線資料。
適用範圍:
當需求極其模糊或不確定時,如果此時有與本專案類似屬性(如規模、應用型別、複雜度、開發團隊經驗等)的一組基準資料,則可直接採用模擬法,充分利用基準資料來估算工作量。模擬法可以在整個專案級上做基準比對,也可以在子系統級上進行。
估算過程:
1) 確定待估算專案所具有的屬性特點,如系統的規模、複雜度、應用型別、業務領域、開發人員的經驗和能力等。
2) 查詢歷史資料庫並篩選「最相似」的專案屬性資料。
3) 如果待估算專案屬性與歷史專案的主要屬性類似,則可依據歷史專案的基線資料直接得出待估算專案的工作量合理範圍。
4) 如果同時滿足待估算專案主要屬性的歷史專案太少,則可針對待估算專案的每個屬性與歷史專案相應屬性的基準資料分別比對,再分別計算得出p25/p50/p75的平均值作為估算值。
5) 一般情況下,取p50的工作量資料作為待估算專案工作量最可能的值。
應用示例1:
專案範圍描述:為某銀行新開發應用駕駛艙專案,以支援金融相關業務資料的圖形化展示和決策分析,如經營指標、績效指標、財務指標、風險指標、監管指標等,使用儀錶盤技術,綜合展示現狀及目標完成進度以幫助了解目前經營指標是否均衡發展,市場規模是否具有良好發展態勢。
對待估算專案的主要屬性進行識別,分別為:應用型別(bi)、業務領域(銀行)、新開發專案。
經查詢企業基準資料庫後發現,公司做過55個與待估算專案屬性基本相同的專案。
查詢結果如下:
從表中資料可得出待估算的專案最可能的工作量為3845人時(p50),合理的工作量範圍在3366人時(p25)和4210人時(p75)之間。
應用示例2:
專案範圍描述:為某集團企業開發一套結算報銷審核和資產管理系統,以支援該單位的報銷單據的填寫、審核和審批,並支援固定資產採購的申請、審批和資產的借用、分配和淘汰管理。
對待估算專案的主要屬性進行識別,可以識別出專案的3個主要屬性是新開發型別、業務領域和應用型別,分別為「新開發」、「集團企業」、「業務處理」。
經查詢企業基準資料庫後發現,同時符合3個篩選條件的專案只有5個,數量過少,參考價值不大。因此選擇單一屬性分別比對,查詢結果如下:
從表中資料可計算出,該專案最可能的工作量為5238人時,計算方法為(5500+5240+4975)/3。工作量估算的合理範圍在4744人時和5938人時之間(採用p25和p75的值分別計算平均值)。
2、類推法
類推法是指將本專案的部分屬性與高度類似的乙個或幾個已完成專案的資料進行比對,適當調整後獲得待估算專案工作量、工期或成本估算值的方法。選擇類推法進行估算,通常只參照1~2個高度類似的專案,同時根據待估算專案與參照專案的差異,進行適當調整。
適用範圍:
1) 當需求極其模糊或不確定時,較難估算工作量,如果此時具有高度類似的歷史專案,則可直接採用類推法,充分利用歷史專案資料進行估算。
2) 適用評估一些與歷史專案在業務領域、應用型別、環境和複雜度等方面的相似專案,通過新專案與歷史專案的比較進行估計。
3) 該方法估算結果的精確度取決於已完成專案資料的完整性、準確度,以及兩個專案之間的相似度。如果沒有類似的專案,該方法就不能應用。
估算過程:
1) 識別出待估算專案的主要屬性。
2) 查詢本組織曾經做過的類似的歷史專案。
3) 對比歷史專案,標記差異點,經過調整後計算出待估算專案的工作量。
應用示例:
採用頭插法和尾插法建立單鏈表
面說一下如果用c語言建立單鏈表,分為頭插法和尾插法兩種。該方法從乙個空表開始,生成新結點,並將讀取到的資料存放到新結點的資料域中,然後將新結點插入到當前鍊錶的表頭,即頭結點之後,如圖2 4所示。圖2 4 頭插法建立單鏈表 頭插法建立單鏈表的演算法如下 複製 純文字複製 linklist creatl...
包裝類和回溯法
j a為8個基本資料型別boolean byte char int short long float double,提供了8個包裝類boolean byte character integer short long float double。並提供了自動裝箱和自動拆箱,允許把基本型別值直接賦給對應的...
linux下如何模擬按鍵輸入和模擬滑鼠
裝置有著自己特殊的按鍵鍵碼,我需要將一些標準的按鍵,比如0 9,x z等模擬成標準按鍵,比如key 0,key z等,所以需要用到按鍵模擬,具體方法就是操作 dev input event1檔案,向它寫入個input event結構體就可以模擬按鍵的輸入了。linux input.h中有定義,這個檔...