軟體技術論文範文
軟體技術是一個發展變化非常快的行業,軟體人才要按照企業和領域需求來確定培養的方向。下面是由小編整理的,謝謝你的閱讀。
篇一
淺談軟體專案估算技術
摘 要:由於軟體產品自身的特殊性,導致軟體專案的估算工作進行困難,估算結果準確性差。為了解決這一問題,產生了很多不同的軟體專案估算技術,本文對各種估算技術的主要思想及其優缺點進行簡單的闡述。尤其是對功能點估算技術,本文做了詳細的介紹,並通過例項加以說明其應用方法。
關鍵詞:規模估算;成本估算;例項應用
中圖分類號:TP311.5
軟體專案的估算曆來是比較複雜的事,因為軟體本身的複雜性、歷史經驗的缺乏、估算工具缺乏以及一些人為錯誤,導致軟體專案的估算往往和實際情況相差甚遠。因此,估算錯誤已被列入軟體專案失敗的四大原因之一。由此,也證明了正確對軟體專案進行估算是何等重要。
在軟體專案管理中,估算就是對專案將持續多長時間或花費多少成本的預測。所以說,估算正是一種對未來的預測。從這裡也看以看出估算的重點就在“工作量估算”或“成本估算”,而在對這兩者進行估算的過程中大多數情況下都少不了“軟體規模”這個條件,所以本文將軟體估算分為兩種型別,第一個種是軟體專案規模的估算,第二種是將估算得出的規模轉換為工作量的估算或成本的估算。目前使用比較廣泛的規模估算技術,如:程式碼行估算技術、功能點估算技術;而使用比較廣泛的成本估算技術,如:COCOMO演算法模型估算技術。
除了上述所列舉的幾種技術外,還有幾種估算技術既可以用於估算規模,也可直接應用與估算工作量或估算成本,如:Delphi估演算法、類比估算技術、PERT估算技術。這幾種估算技術不似前面所列的技術,比較有針對行,且有具體的計算過程、計算公式。這幾種技術只是一種思想,依據某個選定的科目進行估算。下面本文將簡單介紹上述提到的幾種估算技術,並通過具體的例項重點闡述功能點估算技術。
1 估算技術簡介
1.1 程式碼行估算技術。程式碼行***LOC***指所有的可執行的原始碼行數,包括可交付的工作控制語言***JCL:Job Control Language***語句、資料定義、資料型別宣告、等價宣告、輸入/輸出格式宣告等[1]。程式碼行估算技術主要是估算軟體的規模,即通過該技術估算待研發軟體專案有多少行程式碼。一般為了方便表示,使用較大的單位千程式碼行***KLOC***來表示待研發軟體專案的規模大小。這種方法比較適用於有經驗積累和開發模式穩定的公司。如果是新成立公司,使用這種估算技術則會存在很大誤差,加大專案失敗的風險。
1.2 功能點估算技術。功能點法是一種經過實踐驗證的方法,但應用成本很高,估算的工作量投入也較大。功能點估算技術最終結果是規模,仍然需要知道專案的生產率資料才能得出實際的工作量。功能點估算技術將系統功能分為輸入、輸出、查詢、外部檔案和內部檔案5種類型。其中,輸入是一個數據跨越系統邊界,從外部到內部的基本資料處理過程。資料的來源可以是人機輸入介面/介面,或是另一個應用系統;輸出是一個衍生資料跨越系統邊界,從內部到外部的基本資料處理過程。這些輸出的資料可能會產生報表,或發到其他外部系統的輸出檔案;查詢是一個不包含衍生資料和資料維護的基本資料處理過程,包括輸入和輸出兩部分;內部檔案存在於系統邊界之內,使用者可識別的一組邏輯上相互關聯的資料;外部檔案存在於系統邊界之外,使用者可識別的一組邏輯上相互關聯的資料。使用功能點估算技術估算的大概步驟為:
***1***通過需求分析將系統功能按照上述5種類型進行分類。
***2***分析每個功能項的複雜程度,大致分為一般、簡單、複雜三種類型,每一種型別都對應一個權重值,具體如表1。
***3***根據每個功能項的複雜權重值,求出功能項的加權和,即為未調整功能點數***UFC***。
***4***分析該系統的技術複雜度,功能點估算將與系統相關的技術影響因素分為14組***用Ai表示***,每個分為6個級別,權重分別從0至5。根據分析結果及公式計算技術複雜度因子***TCF***,即TCF=0.65+0.01***SUM***Ai******。
***5***將UFC與TCF相乘即為功能點數。
1.3 COCOMO演算法模型。Cocomo模像是一個分層次的系列軟體成本估算模型,包括基本模型、中級模型和詳細模型3個子模型。3個模型採用同一個計算公式,即E=asb×EAF[2]。其中,E是以人月為單位的工作量;S是以KLOC為單位的程式規模;EAF是一個工作量調整因子,在基本模型中該項值為1,中級模型和詳細模型中根據成本驅動因素確定;a和b是隨開發模式而變化的因子,這裡開發模式被分為3中型別,即有機式、半分離式和嵌入式。
Cocomo演算法模型是一種精確易用的估算方法,如果專案沒有足夠多的歷史資料,會使得各調整因子和係數很難確定,進而使得估算比較困難。但是一旦專案建立起這種模型,則通過Cocomo模型得出的專案工作量和專案週期具有更高的準確度。
1.4 Delphi估算技術。Delphi估算技術又被成為專家估算技術,它是由一個被認為是該任務專家的人來進行估算,且估算過程很大一部分是基於不清晰,不可重複的推理過程,也就是直覺。所以該技術中專家“專”的程度及對專案的理解程度是該技術的重點,也是難點,它的好壞直接影響估算結果的準確程度。
Delphi估算技術估算過程並不像功能點估算技術或COCOMO演算法模型那樣,有明確的計算方法或計算公式。它是將待估算的專案的相關資訊發給專家,專家估算後由專門的負責人進行彙總,然後再發給專家估算,反覆幾次後得到一個估算結果,可見只是一種思想,所以它除了用來估算規模,也可以用來估算成本、風險等,即對選定的某個科目進行估算。
1.5 類比估算技術。“類比估算”,顧名思義是通過同以往類似專案***如應用領域、環境和複雜程度等***相比較得出估算結果。類比估算技術是一種粗略的估算方法,它估算結果的精確度取決於歷史專案資料的完整性和準確度。類比估算技術與Delphi估算技術類似,它的用途不僅僅用在規模估算上,也可以估算成本、工作量等。 1.6 PERT估算技術。PERT估算技術,又稱為計劃評審估算技術,它對需要估算的科目***如規模、成本、工期等***按三種不同情況估算:一個樂觀估算結果,一個最可能估算結果,一個悲觀估算結果。再通過這三個結果計算得到一個期望規模和標準偏差。這種估算技術可以用於估算規模,同樣也可以用於估算工期,相比較來說PERT技術估算的結果比類比估算技術的結果要更準確。
2 功能點估算技術應用例項
假設某員工管理系統,經過需求分析得知,該系統所包含功能如下:
***1***員工資訊維護:新增員工、修改員工資訊、查詢員工資訊;
***2***部門資訊維護:新增部門、修改部門資訊;
***3***工資統計:統計員工年薪,並列印輸出。
其中,在該系統中新增一個員工資料,會使用到員工的基本資訊:員工ID***標籤控制元件***、姓名、性別、年齡、婚否、部門ID;教育情況:學校名稱、所學專業、學歷。對部門的維護會使用到部門的資訊:部門ID***標籤控制元件***、部門名稱。員工工資資訊由另外一個財務系統提供,工資表資訊有員工的基本資訊:員工ID***標籤控制元件***、姓名、部門名稱;工資資訊:工資級別、工資金額。
根據功能點估算技術估算步驟,首先計算未調整功能點數,即各種型別功能項的加權和,分析該系統6個功能項所屬型別及其複雜權重值如表2:
假設該專案的14個技術複雜度因子均為“有一定影響”,即權重值均為2,則該專案功能點數為:FP=45×***0.65+0.01×14×2***=41.85。如果知道該專案使用何種語言,可以將功能點數轉換為程式碼行數。
3 結語
本文對目前比較流行的幾種軟體專案估算技術做了簡單介紹。重點講述了功能點估算技術,並通過一個例項演示了功能點估算技術的應用方法。通過本文描述可以看出每種專案估算技術都有其自己的優缺點,如果想要得到比較準確的估算結果,不能僅靠一種估算技術,而應該綜合運用各種估算技術,才能得到比較全面的資訊和比較準確的結果。目前,也有一些基於這些估算技術的思想的自動化估算工具產生,相信通過不斷的發展,將解決軟體專案成本估算難的問題。
參考文獻:
[1]朱少民.軟體專案管理[M].北京:清華大學出版社,2009-11.
[2]覃徵等.軟體專案管理[M].北京:清華大學出版社,2004.
[3]李明樹,何梅,楊達,舒風笛,王青.軟體成本估算方法及應用[J].Journal of Software,Vol.18, No.4, April 2007,775-795.
[4]The David Consulting Group ,Function Point Counting Practices Manual Release 4.2.1,January 2005,
[5]劉謙.軟體專案估算方法在敏捷開發中的實踐.中國管理網,2010-06-18.
作者簡介:王穎,女,研究生,軟體工程專業;江文焱,男,研究生,軟體工程專業。
點選下頁還有更多>>>