軟件項目規模成本估算-課件_第1頁
軟件項目規模成本估算-課件_第2頁
軟件項目規模成本估算-課件_第3頁
軟件項目規模成本估算-課件_第4頁
軟件項目規模成本估算-課件_第5頁
已閱讀5頁,還剩106頁未讀, 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

軟件項目管理與質量保證chapter__70黑龍江大學軟件學院軟件開發項目管理第六章軟件項目規模成本估算chapter__61本章要點一、軟件項目規模成本的概念二、估算的過程三、估算的方法四、估算的誤差chapter__62成本管理過程資源計劃編制:確定項目需要的資源種類和數量成本估算:中心環節編制一個為完成項目各活動所需要的資源成本的近似估算成本預算:項目進度將總成本估算分配到各單項工作活動上成本控制:項目跟蹤控制項目預算的變更chapter__63關于估算估算不是很準確的,有誤差的經驗(歷史)數據非常重要不要太迷信數學模型chapter__64軟件項目規模軟件項目規模即工作量,是從軟件項目范圍中抽出的軟件功能,然后確定每個軟件功能所必須執行的一系列軟件工程任務包括:軟件規劃,軟件管理,需求,設計,編碼,測試,以及后期的維護等任務。chapter__65規模的單位LOC(LocofCode)源代碼程序長度的測量FP(FunctionPoint)用系統的功能數量來測量人月人天人年chapter__66軟件項目成本完成軟件規模相應付出的代價。待開發的軟件項目需要的資金。人的勞動消耗所需要的代價是軟件產品的主要成本開發成本是以一次性開發過程所花費的代價來計算的chapter__67軟件的規模和成本的關系軟件項目規模(工作量)是成本的主要因素,是成本估算的基礎有了規模就確定了成本,如一個項目需要20人月,3萬元/人月,則項目的成本是60萬。chapter__68成本估算定義對完成項目所需費用的估計和計劃包括預測開發一個軟件系統所需要的總工作量的過程。是一種量化的結果可以有一些誤差,通常需要一定的調節成本估算不同于項目定價貫穿于軟件的生存周期,只要WBS有變化就需要進行成本估算估計成本、資源、進度時需要經驗、歷史信息。chapter__69本章要點一、軟件項目規模成本的概念二、估算的過程三、估算的方法四、估算的誤差chapter__610成本估算過程估算輸入估算結果成本估算方法chapter__611成本估算輸入項目需求、WBS歷史項目度量資源要求(資源編制計劃)資源消耗率(資源單價):如人員成本:100元/小時進度規劃:項目總進度(一般是合同要求)學習曲線(項目組學習某項技術的時間)chapter__612資源規劃需要的資源種類、數量等chapter__613一個大型IT項目的示例資源直方圖chapter__614成本估算規模成本估算主要是對各種資源的估算,包括人力資源、設備、資料等。直接成本間接成本這些估算的算法下節講chapter__615直接成本與具體項目相關的成本(人員的工資、材料費、外包外購成本等),包括開發成本、管理成本、質量成本等。chapter__616間接成本不能具體到某個項目中的成本,可以分攤到各個具體項目中的成本,例如:培訓房租水電員工福利市場費用管理費其他等等chapter__617項目估算結果估算結果包括估算文件和估算說明估算文件包括資源,資源的數量,質量標準,估算成本等信息單位:一般是貨幣單位,或是規模單位BAC(BudgetAtcompletion預算完成)估算說明工作范圍,通常由WBS獲得估算的基礎和依據,即確認估算是合理的和估算是根據什么產生的確認為成本估算所做的任何假設的合理性估算的誤差變動等chapter__618本章要點一、軟件項目規模成本的概念二、估算的過程三、估算的方法四、估算的誤差chapter__619估算的基本方法代碼行、功能點、用例點類比(自頂向下)估算法自下而上估算法參數法估算法專家估算法chapter__620代碼行(LOC)從軟件程序量的角度定義項目規模。要求功能分解足夠詳細的有一定的經驗數據(類比和經驗方法)與具體的編程語言有關chapter__6211.靜態單變量估算模型這種模型在計算軟件開發的資源花費時,只需要設定被開發軟件的一種參數,故稱為單變量型。它的一般形式是:

資源=C1×(估計的軟件特征)C2其中,資源可以是開發工作量(E)、開發時間(T)或開發人數(P)等;估計特征可以用源程序長度(L)、或軟件的開發工作量(E);C1、C2為依賴于開發環境和軟件應用領域的兩個經驗常數。1.靜態單變量成本估算模型自1973年至l977年,Walston與Felix從60個軟件項目(源程序長度從4至467千行,工作量從l2至11758個人—月,使用了28種不同的高級語言)的統計中導出了以下的一組參數方程:

E(人—月)=5.1×L(千行)0.91T(月)=4.1×L(千行)0.36T(月)=2.47×E(人—月)0.35P(人)=0.54×E(人—月)0.6

文檔長度(頁)=49×L(千行)1.01這組方程在計算E、T、P等開發所需的資源時,使用L(千行)作為估計的特征。由L計算開發時間、工作量或文檔頁數,再由算出的工作量E來計算開發時間與所需人數。這類模型簡單易懂,常數C1、C2可以從歷史數據導出。但如果沒有適用于本單位情況的經驗常數,就不能直接搬用。2.Putnam成本估算模型Putnam模型是一種動態多變量資源模型,可以用下面的方程式來表示:L=cK1/3T4/3或K=L3/(c3T4)其中L(行)與T(年)仍分別代表源程序長度和開發時間。K表示全生存期(含維護在內)所需要的工作量(人—年)。對大型軟件而言,其大小約為開發工作量E的2.5倍,即E=0.4K。c是一個與開發環境有關的常數。對“優良”、“好”與“不好”的3種環境,c的典型值可分別取l2500、10000與6500。2.Putnam成本估算模型這個模型發表于1978年,是L.Putnam對50個大型軍用軟件(生存期工作量均在30人一年以上)研究得出的結果。后來又對另外l50個大型軟件進行驗證,也取得滿意的效果。一般認為,規模在10萬行以上的軟件,用這個模型是適當的。Putnam模型的特點,是在同一個模型中給出了K(或E)、L和T三者之間的關系。例如,給定了L和T,就可以用它來估計開發所需的工作量E。如果估計的程序長度有一個范圍(例如從L1~L2),則在保持工作量不變的情況下,可算出相應的開發時間T1與T2等。Putnam模型方程揭示了E與T之間的關系。根據這一方程,開發工作量E與開發時間T的4次方成反比。這表明,開發時間的小量變化,會引起開發工作量相當大的變化。如果把開發時間成倍延長,則一個原來需要100個人一月完成的項目,能夠把工作量降低到僅需6.5個人—月(=100/24)。3.COCOMO模型

(1)按照軟件的應用領域和復雜程度,將它們分為組織(Organic)、半獨立(Semide-tached)和嵌入(Embeded)3種類型,每類分別使用一組不同的模型方程,如表11-1中由上向下,程序的復雜度逐步提高,E和T的計算值也隨之增大。3.COCOMO模型(2)在模型中增加一個工作量調節因子EAF(EffortadjustmentFactor),反映各種有關因素對軟件開發的影響。Boehm把這些因素歸結為4類共l5種因子,如下表所示。每種因子的可根據實際情況在一定范圍內上下浮動。模型中使用的調節因子值,就是這15種因子的值的乘積,可以寫作EAF=(i=1,2,…,15)3.COCOMO模型示例示例(1)換用水平較低的開發人員本例中原來使用較高水平的分析員和程序員,一個人—月的花費是6000美元。如果換用5000美元/人—月的人員,則人員水平的兩個調節因子均將從0.86上升為1.00,整個EAF值將從原來的l.17變成l.17/0.86/0.86=1.58。開發成本不僅沒有節省,反比原來有所增長。請看下面的計算:原開發成本:6000×44.4×1.17=311400新開發成本:5000×44.4×1.58=350760示例(2)擴充內存儲器容量假定原有的內存容量為64KB,允許軟件使用的內存為46KB?,F決定增加l0000美元購買內存擴充板,使軟件可用的內存從46KB擴充為96KB。這樣,內存容量的調節因子值可從原來的l.06(見11.2末欄第5項)下降為1.00,從而使EAF從1.17下降為1.10。雖然新增加10000美元的投資,總開發成本仍可望下降。以下是新成本的算式:6000×44.4×1.10+10000=293000功能點(FP)用系統的功能數量來測量其規模與實現產品所使用的語言和技術沒有關系的兩個評估內部基本功能外部基本功能加權和量化chapter__632功能點的公式FP=UFC*TCFUFC:未調整功能點計數TCF:技術復雜度因子chapter__633UFC-未調整功能點計數功能計數項:外部輸入:由用戶提供的用來描述面向應用的數據項(如屏幕、表單、對話框、控件、文件等)外部輸出:那些向用戶提供的用來生成面向應用的數據項。外部查詢:要求回答的交互式輸入的項外部文件:對其他系統的機器可讀界面的項內部文件:系統里的邏輯主文件的項chapter__634UFC-未調整功能點計數功能計數項的復雜度等級復雜度權重因素項簡單一般復雜外部輸入346外部輸出457外部查詢346外部文件5710內部文件71015chapter__635功能點計算實例-UFC功能點項簡單一般復雜外部輸入6*32*43*6外部輸出7*47*50*7外部查詢0*32*44*6外部文件5*52*73*10內部文件9*70*102*15總計UFC301chapter__636TCF-技術復雜度因子TCF=0.65+0.01(sum(Fi)):Fi:0-5,TCF:0.65-1.35技術復雜度因子F1可靠的備份和恢復F2數據通信F3分布式函數F4性能F5大量使用的配置F6聯機數據輸入F7操作簡單性F8在線升級F9復雜界面F10復雜數據處理F11重復使用性F12安裝簡易性F13多重站點F14易于修改chapter__637技術復雜度因子的取值范圍調整系數描述0不存在或者沒有影響1不顯著的影響2相當的影響3平均的影響4顯著的影響5強大的影響chapter__638功能點計算實例假設一個軟件項目所有技術復雜度都是平均程度,即技術復雜度因子的值都為3,則計算功能點如下:FP=UFC*TCFUFC=301TCF=0.65+0.01(14*3)=1.07FP=301*1.07=322chapter__639功能點與代碼行的轉換語言代碼行/FPAssembly320C150COBOL105FORTRAN105PASCAL91ADA71PL/165PROLOG/LISP64SMALLTALK(面向對象之母)21SPREADSHEET(電子制表)640用例點估算模型chapter__341用例點估算模型chapter__342用例點估算方法的基本步驟計算未調整的角色的權值UAW;計算未調整的用例的權值UUCW;計算未調整的用例點UUCP;計算技術和環境因子TEF和ECF計算調整的用例點UCP;計算工作量(man-hours)。chapter__6431、計算未調整的角色的權值UAWUAW=chapter__6442、計算未調整的用例的權值UUCWUUCW=chapter__6453、計算未調整的用例點UUCPUUCP=UAW+UUCW:例如chapter__3464、計算技術因子TCFchapter__6475.環境復雜度因子(ECF)6、計算調整的用例點UCPchapter__649UCP=UUCP×TCF×ECF=110×1.02×0.62=70ECF為環境復雜度因子7、計算工作量如果:PF=20工時/用例點則:Effort=UCP×PF=70×20=1400h=175人天chapter__650估算的基本方法代碼行、功能點、用例點類比(自頂向下)估算法自下而上估算法參數法估算法專家估算法chapter__651類比-定義從項目的整體出發,進行類推,即估算人員根據以往的完成類似項目所消耗的總成本(或工作量),來推算將要開發的軟件的總成本(或工作量),然后按比例將它分配到各個開發任務單元中是一種自上而下的估算形式chapter__652類比—使用情況有類似的歷史項目數據信息不足(要求不是非常精確)的時候在合同期和市場招標時在高層對任務的總的評估chapter__653類比—特點簡單易行,花費少具有一定的局限性準確性差,可能導致項目出現困難chapter__654類比—舉例證券交易網站需求類似歷史數據:10萬學習曲線:5-8萬chapter__655估算的基本方法代碼行、功能點、對象點類比(自頂向下)估算法自下而上估算法參數法估算法專家估算法chapter__656自下而上—定義利用任務分解結構圖,對各個具體工作包進行詳細的成本估算,然后將結果累加起來得出項目總成本。chapter__657自下而上—使用情況在進入項目開始以后,WBS以后的開發階段需要進行準確估算的時候chapter__658自下而上—特點這種方法準確。它的準確度來源于每個任務的估算情況非常費時,估算本身也需要成本支持可能發生虛報現象chapter__659估算的基本方法代碼行、功能點、對象點類比(自頂向下)估算法自下而上估算法參數法估算法專家估算法chapter__660參數估算法—定義一種使用項目特性參數建立數據模型來估算成本的方法,是一種統計技術,如回歸分析和學習曲線。參考歷史信息根據實際情況,對參數模型按適當比例調整模型可以簡單也可以復雜,很少有通用性chapter__661參數估算法—使用情況存在成熟的項目估算模型應該具有良好的數據庫數據為基礎目前軟件企業估算很少使用通用的數學模型chapter__662參數估算法-估算單位每個任務必須至少有一個統一的規模單位,例如KLOC,FP人天,人月,人年參數:xx元/KLOC.xx元/FP,xx元/人天chapter__663參數估算法-特點比較簡單,而且也比較準確如果模型選擇不當或者數據不準,也會導致偏差chapter__664參量成本估算實例(適合單價合同)項目經理(30美元/小時)15,000美元分析家(20美元/小時)20,000美元技術員(13美元/小時)2,6000美元總勞動開支61,000美元一般管理費(35%)21,350美元總勞動費加管理費82,350美元額外費用(25%)16,470美元小計98,820美元交通費(四次旅行,1000/次)4000美元微機計算機費(2臺,3500/臺)7000美元打印與復制費2000美元總輔助費13,000美元總項目費用開支111,820美元chapter__665軟件成本估算模型理論導出:不成熟階段經驗導出:軟件估算常常采用chapter__666經驗導出成本模型提供工作量(規模)的直接估計通過過去項目數據,進行回歸分析,得出的回歸模型依據不同的細化程度,通過參數的輸入來進行成本估算。通常,輸入包括產品的預計規模產品的自然屬性組織能力項目性質chapter__667經驗導出成本模型整體公式:E=A+B*S^CE:以人月表示的工作量A,B,C:經驗導出的常數S:主要的輸入參數(通常是LOC,FP等)chapter__668經驗導出成本模型(續)面向LOC驅動的Walston-Felix(IBM)E=5.2*(KLOC)^0.91Balley-BasiliE=5.5+0.73*(KLOC)^1.16.COCOMOE=3.2*(KLOC)^1.05DotyE=5.288*(KLOC)^1.047chapter__669估算的基本方法代碼行、功能點、用例點類比(自頂向下)估算法自下而上估算法參數法估算法專家估算法chapter__670專家估算法由多位專家進行成本估算,一個專家可能會有偏見,最好由多位專家進行估算,取得多個估算值,最后得出綜合的估算值。chapter__671專家估算法-Deiphi組織者發給每位專家一份軟件系統的規格說明和一張記錄估算值的表格,請他們估算專家詳細研究軟件規格說明后,對該軟件提出3個規模的估算值最小ai最可能的mi最大bi組織者對專家的表格中的答復進行整理計算每位專家的Ei=(ai+4mi+bi)/6,chapter__672專家估算法-Deiphi(續)綜合結果后:E=(E1+E2+…En)/n(N:表示N個專家),再組織專家無記名填表格,比較估算差,并查找原因如果各個專家的估算差異超出規定的范圍(例如:15%),則需重復上述過程,最終可以獲得一個多數專家共識的軟件規模chapter__673專家估算法-舉例某多媒體信息查詢系統—專家估算專家1:1,8,9=〉(1+9+4*8)/6=7(萬元)專家2:4,6,8=〉(4+8+4*6)/6=6(萬元)估算結果=(6+7)/2=6.5(萬元)chapter__674估算方法總結初期類比專家估算計劃階段自下而上參數模型實施階段(包括變更發生)自下而上參數模型chapter__675成本估算方法綜述主要考慮三種模型:類比法,自下而上法,參數法.自下而上法費時費力,參數法比較簡單自下向上法與參數法的估計精度相似各種方法不是孤立的,應該注意相互的結合使用類比法通常用來驗證參數法和自下而上法的結果chapter__676實用軟件估算模型是一種自下而上和參數法的結合模型,步驟如下:對任務進行分解估算每個任務的成本Ei直接成本=E1+E2+……+Ei+……+En項目總估算成本=直接成本+間接成本項目總報價=項目總估算成本+風險利潤

風險利潤=利潤+風險基金+稅chapter__677估算每個任務的成本直接估算成本Ei先估算規模Qi,然后估算成本Ei=Qi*人力成本參數唯一估計值:Qi=AvgPERT算法:Qi=(Max+4Avg+Min)/6退出chapter__678直接成本估算直接成本組成開發成本管理成本質量成本直接成本=規模*人力成本參數簡易估算:開發(工作量)規模:Scale(Dev)(單位:人月)管理、質量(工作量)規模:Scale(Mgn)=a*Scale(Dev)a:比例系數:例如:20%--25%chapter__679直接成本估算直接成本=規模*人力成本參數例如:人力成本參數=2萬/人月,30人月的項目的直接成本是60萬退出chapter__680項目總估算成本估算成本=直接成本+間接成本間接成本估算:按照企業模型直接估算:簡易算法:間接成本=直接成本*間接成本系數間接成本=規模*人力成本參數*間接成本系數例如:間接成本系數=1.5--3chapter__681項目總估算成本估算成本=直接成本+間接成本估算成本=規模*人力成本參數(1+間接成本系數)成本系數=人力成本參數*(1+間接成本系數)簡易算法:估算成本=規模*成本系數例如:成本系數=3萬/人月退出chapter__682項目總報價項目總報價=項目總估算成本+風險利潤項目利潤=估算成本*a%風險基金=估算成本*a%稅=估算成本*b%(例如:b為5.5左右)項目總報價=x%*項目總估算成本chapter__683本章要點一、軟件項目規模成本的概念二、估算的過程三、估算的方法四、估算的誤差chapter__684估算準確度類型準確度說明量級估算:合同前Orderofmagnitude-25~~+75%概念和啟動階段決策預算估算:合同期Budget-10~~+25%編制初步計劃確定性估算:WBS后Definitive-5~~+10%工作分解后的詳細計劃chapter__685估算不準的原因基礎數據不足缺乏經驗的估算人員簽約前后不連貫低劣的推測技術估算對需求的敏感性chapter__686對付估算誤差避免低劣估算處理低劣估算帶來的后果chapter__687避免低劣估算避免無準備的估算留出估算的時間,并做好計劃使用以前的項目數據使用以開發人員為基礎的估算分類法估算詳細的較低層次上的估算使用幾種不同估算技術,并比較它們的結果chapter__688處理低劣估算帶來的后果通過數據說明資源不足,爭取更多資源強化變更管理程序確定目標的優先次序chapter__689估算的表達方式技巧加減限定6個人月,+3人月,-1人月范圍5-9人月chapter__690估算的表達方式技巧3.風險量化:見下例估算:6個人月,+3,-2+1人月:延遲交付轉換子系統-1人月:新成員的工作效率高+1人月:采用的新工具沒有預計的好-1人月:采用的新工具比預計的好+0.5人月:員工病事假+0.5人月:低估規模chapter__691估算的表達方式技巧4.情況:見下:案例估算的例子情況估算最佳情況100人月計劃情況110人月最差情況

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論