軟件開發成本估算_第1頁
軟件開發成本估算_第2頁
軟件開發成本估算_第3頁
軟件開發成本估算_第4頁
軟件開發成本估算_第5頁
已閱讀5頁,還剩3頁未讀 繼續免費閱讀

下載本文檔

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

文檔簡介

軟件成本估算近年來由于軟件的價格越來越計算機系統中軟件所占的比重越來越大軟件價格估計的差錯對于一個計算機公司的盈虧起到舉足輕重的作用此件本的估計受到普遍的重視。軟件價格的計算不是一門精確的學科此們稱為成本估算受到許多因素的影響包人的技術和環境的影開發工作尚未開始之前作軟件成本估價就要冒險的公司采“段估價的法在開發初期的計劃階段訂出初步估算價要分析階段后給出一個修正估算價格設完成之后給出最終估算價格軟成本估算方面的工作大多數都從分析與軟件成本相關的因素入手。一、影響軟件成本的因素軟人員的業務水平軟件人員的素質經驗掌握知識的不同在工作中的表現有很大的差別有人作過試驗織一些不同程度的軟件人員開發同一課題發的程序進行統計分析果發現,完成得好的和差的生率相差倍甚至十幾倍可見軟件人員的業務水平對軟件產品的生產率影響是很大的。軟產品按開發的復雜性可分為三類:一類是應用程序,如用高級語言寫的科學計算、數據處理、企業管理等用戶程序。二類是實用程序,如用系統程序設計語言或匯編語言寫出的編譯程序、匯編程序、聯接編輯程序、輸入加載程序。三類是系統程序用編語言系統程序語言寫的操作系統時理控制系統等。這三類程序,以系統程序的生產率以應用程序開發復雜,可以畫出三類序的生產率和復雜性的比例關系圖表。見表2.3表2.3生產率和復雜性比例關系表項目系程序實程序應用程序生產率1復雜性9

——100B.Bohm授進一步給出了這三種軟件產品的程序規模和工作量的相互系的公式的規模是以源程序每千行語句(或指令)為單位。程序的工作量以一人一月為單位,記這三類程序,每個人每月生產程序的千行數為:應用程序是:PM=2.4*(KDSI)**1.05實用程序是PM=3.0*(KDSI)**1.12系統程序是PM=3.6*(KDSI)**1.20

(其中K為千行源代碼數)例如三類程序所選取的開發項都6行的程序所投入的人-數三類不同程序大體比例為了:::.8,工作量估計曲線大約如所示。估計工作量

300700900圖2.1工作量估計曲線3.I開發軟件所花費的時間估算:Boehm給出了類程序所花費的時間如下:應用程序所花的時間TDEV(AP)=2.5*(PM)**0.38實用程序所花的時間TDEV(UP)=2.5*(PM)**0.36系統程序所花的時間TDEV(SP)=2.5*(PM)**0.32

軟件產品規模上述三類程序都針對同樣規模的程序,設以上三類程序所要開發的時間基本相同。例如60KDSI程序都需個月,同時如果把開發時間;長或者縮短,則都需要更多的工作量,把這個時間稱為最佳開發時間。在研究6個發項目之后Boehm出結論,每個軟件項目所用的時間一個極限值此限值之外果用增加人員和設備的辦法來縮短開發時間是不可能達到目的的,這個極限值即為上述開發時間7。我們應該記Boehm提出的這條程序發規律,即每個程序項目有一個最佳時間,以這個時間來計劃開發過程,就可達到較好的經濟效益。、軟件開發的技術水平:軟開發水平,主要是指所用程序開發技術(包括系統分析和系統設計的方法,結構化設計方法,程序設計語言,遍查和評審、結構程序設計,系統測試和程序庫)。軟件開ASE工具和支撐環境水平的高低也系重大。軟件開發技術水平高則開發效率高如使用高級語言要比用匯編語言提至1倍,各種高級語言的效率也有很大差別。例ADA言有很強的類型檢設施、數據抽象、單獨編譯中處理、并行結構使軟件的生產率和可靠性均有提高在開發中使用工具可以提高生產率,工具也有基本工具和先進工具的區別,我們把它對軟件開發工具量的關系列表如7.5所。表2.5現代軟件設計技術和工具的使用對軟件開發工作量的影響系統使用情況未采用充分使用僅用基本工具使用先進開發工具

開發工程系數、軟件開發的可靠性要求軟件的可靠性是在計劃階段慮軟件可能失效的代價而確定下來的根開發和維護的價格,提出不同的可靠性要求,對軟件開發的工作量綜合地作出估計。給與五類軟件可靠性相應的開發工作量系數。表可性對軟件開發量的影響系數可靠性

失效的影響開工作數很低

不便使用

.低一般高很高

其損失易于挽回0.挽回損失有一定困難1很大的經濟損失.涉及到人的生命安全1為了保證軟件可靠性所花費的工作量要進行估計和綜合平衡如件復查的形式和次數,次數越多,成本越高,但可靠性就越高;次數越越少成本越低,而可靠性就越差。我們必須取得一個最合適的次數,使成本和可靠性都合理。

二、軟件成本的估計方法估計一個軟件的成本是一個難題的估算方法主要是根據實踐經驗和有關成本的歷史檔案來推算出當前軟件項目的近似價格和開發成本常有兩種估算方法種是自頂向下估計,首先對系統提出總要求,限制時間和總金額,然后再考慮各子系統。要對整個系統進行估價還涉及開發的軟件統所需要的資源力置管理質保證系統安裝、用戶培訓和文檔資料方面的成本種法是自底向上的估算系中每一個模每一個階段)的子系統的成本后合出總成本。在實際應用的時候,往往把兩種估算的結果進行比較。在比較中消除不合理的因素,求得一個理想的估算結果。在討論估算方法的細節之前先講生產率的含義際上件的許多特性都是可以度量的產的最簡單的度量是每個人一個月所生產的有效的源代碼行數這個度量的定義是有爭議的為它不能代表開發每一個階段的準確的度量大數成本估算都采用這個度量這度量只有在軟件發項目完成之后才能進行準確的估算們該廣義的理解它,可以這樣定義:在計劃和開發期間為了生產一行有效源代碼所花費的人力的工作量。它不是單指編碼的工作量,而是開發期間各階段工作量的一個平均數。為了理解生產率的定義,我們舉一個例來說明。考查某一個項目的軟件開發工作量如下所示:任務工量要求分析1.人設計3.0人編碼1.0人測試3.5人設此項目九個月共開發了900源代碼,并且交付了400代碼(剩下的500是用于模擬和測試而不是該軟件的工作程序),因而,這個項目的生產率是:生產率每人一月交付的有效源代行數=2400代碼行/個人月=267LOC/PM即代碼行人月)=267LOC/PM(即代碼行人月下面我們介紹兩種成本估算技術。。代碼行價格估算技術首先介紹這種方法的計算步驟。根據軟件計劃提出的軟件范圍和主要功能描述,代碼行估價技術的第一步擬定了源代碼實現的所有功能這些功能進行分解直到為實現該功能所要求的代碼行數可以作出可靠的估算為止。設功能總數為n。第二步求出代碼估算表前五列的值每個分解后的功能用歷史數據或者直觀知覺估算一個最有利的值a,一個最可能的值和最不利的值。我們又設L為它的期望值,它是用、、帶權平均計算的,公式為

這是一種最可能的估算,這種算法的平均差數為例如一個計算機輔助設計項目軟件包項目的范圍一章中簡了一些計算機圖形外圍設備如顯示終端、數字儀、繪圖儀)接口的使用微型機的開發項目,以下這些數據是根據歷史寫出的,如2所示。根據這些值按照公式分別算出望值數在該表的第四和第五列中且統計出估算的總期望值及總差數。第三步是估算每一代碼行的價格,它以美元/代碼行為單位,即表中的第五行數據也就是根據歷史資料和市場行情得出的數據,單位可寫$/。第四步數估算每一月完成多少行每不同的功能都應該使用不同的值可以使用平均值或修正的平均值。還可以由歷史資料獲得。

CCCC表

計算機輔助設計軟件項目成本價格表功能

最有利的最能

最不利

期望值

差數Ld$/行

價格$

月值功能接口控

的值m2400

的值2650

Le234014

數7.4制二維幾何圖形分析三維幾何圖形分析數據結構管理計算機圖形顯示外圍設備控制

52001076004.4690013600034006030013.9490010890021005992015.2設計分析

660084001815120028估算差數

估算總價

總月數估算LOC=333601100$656680144.6第五步求每一個分項目估算的價格由一代碼行價格乘上期望值來得出第乘上第6列第8列。然后再求每一個項目花費的月數,使用的方法是用每月的代碼行生產量除以期望值來得出用第7列數據去第4列數據得出的后由第列的各分項目的價格相加得出估算的整個項目的價格美由各分項目估算的工作量,即第項的數據求和得出估算的工作量為114.6個月。最后,我們來求一個日程表時間的粗略估計,主要是依據Putnam算模型公式∶123LKtd其中L為望值代碼總行數)為估計的人年數月人年

為技術水平常數,它反映“礙程序員前進的生產能力約束差的軟件開發環境下k

=好的開發環境下k

=,而佳開發環境下(例如采用自動工具情況下)

=。這里應該注意,對的擇必須十分慎重,B.W.給出了一個考慮生產率變化的度量表格,格如表,中生產率范圍=例如這個開發環境用較好的件工(公式中的分和使用較差的工具時的生產(式中的分母之比率為倍又如一個較好的開發小組,它的生產效率是一個較差的軟件開發小組效率的倍等等。也就是說在實際使用的時候要根據CK還乘上生產率變化比率才能代入公式計算。例如,在年IBM公的聯邦系統局的水平CK=4984,果工作在聯機交互式系統內需比較明確采結構化編碼技術機時間不受限制等條件下則可以把C的值增至10040。這個值適用于十萬行以上代碼的軟件項目。表軟件生成率的范圍比較語言經驗1.2與軟件

進度約束數據庫移交時間虛擬機經驗

1/24/31/24/3K有關的因

虛擬機可靠性軟件工具近代程序設計規程存儲約束

應用經驗實時約束可靠性要求產品的復雜度

開發工作人員/開發小組的經驗軟件生產率范圍將K=10000代計算機輔助設計項目,按公式,由

改寫為

Ktdk

L

使用表中的數L、E145人月=人年1.3(開發時間前面估計式中計差數為們也就可以估計由于偏離期望值值帶來的冒險,從而估計出時間差數,結果如.9所示。這里注意應把最不利的值和最有利的值作為LOC上下限進行計算。表2.9價和時間的估差LOC價格($)

開發時間估計最有利的值期望值最不利的值

$5122001.1年$650100年$8077001.5年表2中假設每個代碼行的價格19.70過最有利和最不利的情況估計個目的完成時間估計.1年到1.5年之間。COCOMO成推斷模型。它是一種自底向上的成本估算模型,它考慮了多種工作量系數,包括人的屬性、產品屬性、項目屬性和計算機屬性,各種相關的系數由給出。這個表中所列的系數是他在研究了六十三個軟件開發項目之后了迪菲的成本估計法而取得的數據菲主要思想是讓多個專家分別研究系統定義文件后自單獨進行成本估計,在綜合各位專家意見的基礎上出步估計值,把這個值讓專家們重新審查,進行新的一輪估計這種估計可能次進行直意見相近甚至意見一致種方法在各輪估計中不能互相交換意見,最后由協調人綜合意見,得出最后結果。中COCOMO型還作了一些假定,它所考慮的項目屬于中小型問大約二千到三萬二千D對軟件人員要求熟悉所開發的應用領域,而且只考\從設計到驗收的成本,還括文檔資料和評審的成本但不包括注釋語句和未經修改的實用子程序的一個人月是指一個程序員工152小時。此外,還有一些有關軟件項目的性質和假定。表2.10工量系數表

工作量系數

取值范圍

產品屬性要求的可靠性數據庫規模產品復雜性

計算機屬性執行時間限制主存限制虛擬機易失性計算機解題周期

人員屬性分析員的能力程序員的能力實踐經驗使用程序語言經驗

項目屬性使用現代程序設計方法使用工具要求的開發速度

Boehm給出的本估算例子是一個商用微型機遠程通訊的嵌入式軟件,規模我們下面給出嵌入式遠程通訊項目的工作量系數取值的情況,見7.11然后,代入公式中計算,表后即為計算的情況。表2.10工作量系數表工作量系數

取值范圍

產品屬性要求的可靠性數據庫規模產品復雜性

計算機屬性執行時間限制主存限制虛擬機易失性

計算機解題周期0.87~1.15

人員屬性分析員的能力程序員的能力實踐經驗

使用程序語言經驗

項目屬性使用現代程序設計方法使用工具要求的開發速度

Boehm給出的本估算例子是一個商用微型機遠程通訊的嵌入式軟件,規模為10KSDI我們下面給出嵌入式遠程通訊項目的工作量系數取值的情況,見。然后,代入公式中計算,表后即為計算的情況。表2嵌式遠程通訊項目的工作量系數取值工作量系數系取值的依據實取值

20322032可靠性

只用于局部地區(額定值1.00恢復問題不嚴重數據庫復雜性

20000節遠程通訊處理

(低)0.94(很高定時存儲

使用7處理時間高)64K中使用()機器

商用微處理機

(額定值)周轉時間平二時

(額定值1.00分析員程序員

優秀人員優秀人員

(高)(高)經驗經驗經驗經驗工具工期調整因子

遠程通訊工作三年(低)1.00微型機工作六個月(額定值)使用語言十二個月(額定值)使用現代技術一年以上高0.91基本的微型機軟件(低)1.10九個月(估.4個月)(額值)

代入前面的計算公式,程序的工作量開發軟件所用時間

4人—月)(=8.(月)把調整因子乘上去后調整后的序工作量5(—月而調整的開發時間8個月。如果程序員和分析員的工資都按每千美元算該目開發人員工資的總成本費為(51×(元/人月)=311軟件成本估計是一個復雜的問題以難找到一種既準確又簡便的方法同的估算方法所得的結果不相同時可能差別很大就促

溫馨提示

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

評論

0/150

提交評論