分析軟件工程經濟學的發展現狀論文

學識都 人氣:3.03W

從小學、初中、高中到大學乃至工作,許多人都有過寫論文的經歷,對論文都不陌生吧,通過論文寫作可以培養我們的科學研究能力。相信寫論文是一個讓許多人都頭痛的問題,以下是小編精心整理的分析軟件工程經濟學的發展現狀論文,歡迎大家分享。

分析軟件工程經濟學的發展現狀論文

軟件是相關程序、過程和文檔的完整集合,而工程則是科學與數學的應用,並使物質的屬性、自然能源在結構、機械、產品、系統和過程上變得對人類有益要做到對人類有益,軟件開發及其軟件系統必須是在社會能負擔得起的成本基礎上滿足人的需求,畢竟軟件開發是一種社會行爲軟件成本估算將一般的經濟學分析概念、技術和特殊的軟件工程世界聯繫起來通過成本估算,可以使項目的管理者對軟件的成本及其變化趨勢做到正確把握,從而爲進一步的決策提供科學而直觀的依據。

軟件工程的目的是通過有關學科的應用使人們開發出來的軟件系統成爲對用戶有用的產品。然而軟件工程效果不僅取決於計算機科學、軟件工程方法學以及軟件工具與環境的使用,還取決於它是否滿足經濟學和社會效益的需要。軟件工程經濟學就是依據經濟學的觀點來研究如何有效地分析、開發、發佈軟件產品及其支持用戶使用等,爲軟件的成本進度估算提供必要的手段和方法,並妥善地協調技術、經濟和人之間的關係。

一、軟件工程面臨的經濟學問題

縱觀軟件工程全過程,都或多或少與經濟學有關從經濟學的角度來看,也都不同程度地存在以下問題:

(1)項目負責人沒有可靠的依據來確定每個軟件階段和每個軟件開發活動需要多長時間和多大的工作量,因此,也就難以判斷軟件開發是否按計劃進行,甚至意味着項目從一開始就失控了。

(2)軟件分析人員難以在分析設計階段做出現實的軟硬件比較分析,導致設計中硬件成本降低,最終卻以更高的軟件成本爲代價。

(3)軟件開發人員無法使相關經理、客戶或銷售人員相信他們承諾的預算與時間進度表是現實的。

(4)項目組內部對軟件開發過於樂觀,而對外則在競爭性的軟件合同競標中報出低價,最終必然導致費用超支或性能折衷

(5)軟件開發的成本很高,且難以控制嚴重時,導致整個項目失敗(被迫取消或放棄)的指導,使得項目最終達不到預期的目的,甚至還有可能導致用戶成本上升、可靠性或服務質量下降、需要増加額外的人員、員工的工作積極性下降、員工的流動性上升等。因此,在實際的軟件工程中,不僅包括軟件開發的方法和技術問題,還包括很多經濟學方面的問題,如使用、預算、進度以及決定用戶需求的相對優先級等問題實踐證明,好的軟件工程必須協調好人與經濟的問題。

二、軟件工程經濟學的研究內容

2.1 軟件工程經濟學研究的基本問題

軟件工程經濟學是軟件工程學科與經濟學(微觀經濟學)有機結合的產物,它利用經濟學中成熟的`概念、技術和方法爲軟件工程決策服務因此,軟件工程經濟學面臨的問題是如何利用成本估算等技術來幫助項目管理者做出正確的選擇,以及利用何種經濟學方法幫助人們做出正確的決策。因此,軟件工程經濟學研究的基本問題是:

(1)成本、工作量生產率等因素的估算技術與方法以及估算模型的建立與使甩這是一個核心問題

(2)軟件工程中不同決策的“成本效益”分析,及其與此相關的規模經濟與不經濟問題

(3)多目標決策分析,以便識別目標、調協與決策相互衝突的目標、管理多個同時存在的目標等。

(4)成本、工作量、人力分佈及其資源配置問題

(5)不確定性的處理和風險分析問題

(6)進度估計和工期控制問題

(7)數據收集與管理以及模型的校準等問題

(8)相關工具問題

2.2 成本估算的方法、理論與模型

軟件生命週期中包括了若干個主要的階段與活動軟件成本估算的方法之一就是建立一個迴歸模型(線性的、非線性的或有參的、無參的等)。對模型的基本要求是它能夠描述軟件成本和成本驅動因子間的關係,並用這一模型對樣本數據進行擬合,得出其參數值模型建立後,應對其可用性進行評價,並按如下幾個方面進行:

(1)定義:模型明確定義了它要估算的成本;

(2)精確性:估算結果接近項目的實際花費;

(3)客觀性:模型避免了將大部分軟件成本因子歸屬於難以校準的主觀因素;

(4)建設性:幫助用戶理解需要做的工作;

(5)詳盡:模型能適應哪些軟件系統的估算,能給出階段和活動的細分結構;

(6)穩定性:輸入的細微變化引起輸出的變化很小;

(7)範圍:模型涵蓋了需要估計成本的軟件項說明;

(8)可預期性:模型可避免引入那些直到項目結束才能知道的信息;

(9)精簡性:模型可避免哪些冗餘的或者對結果沒影響的因素已有的軟件成本估算方法有算法模型、專家判斷?類比推理帕金森原理、價格策略、自頂向下、自底向上等這些方法都有其特點,但沒有一種可選方法在所有方面都比其他方法好,他們的優缺點互補。

2.3 成本估算要注意的問題

針對軟件工程經濟學中的成本估算需要特別注意以下幾個方面:

(1)軟件的成本和進度估算非常複雜,涉及的因素很多。面對不同的開發環境、管理方式、開發模式,要選擇不同的估算模型,即便是同一估算模型,具體使用時也要根據經驗和具體情況進行校準

(2)好的估算模型並不能保證能做出好的成本估算,因爲它很可能是一個“垃圾輸入-立圾輸出”的工具:如果輸入不着邊際,那麼輸出也就離譜

(3)影響成本估算的風險因素包括:對目標系統的功能需求、開發環境等情況的瞭解程度;所運用歷史數據及模型參數的可靠性;系統分析中的邏輯模型的抽象程度、業務處理流程的複雜程度及軟件的可度量程度;軟件新技術對成本估算方法的影響;用戶在軟件開發中的參與程度,開發隊伍的素質及所採用開發模式對開發成本的影響;對軟件開發隊伍複雜因素的認識程度;軟件開發人員的穩定性;軟件開發進度、時間等非技術性因素的變更所帶來的風險等。

(4)軟件成本估算並非完全資金意義上的估算。項目成本中相當一部分爲支付開發人員腦力勞動報酬的費用,而這部分費用因軟件開發機構的不同而存在着很大的差別。

(5)軟件產品及其開發過程的特殊性決定了軟件開發成本的估算方法既不同於製造業產品的成本估算方法,也不同於建設項目的財務評價方法(6)軟件成本估算技術研究的重大突破需要堅實的理論基礎缺乏大量的實驗作基礎,要開展理論研究顯然也是不切實際的。

過去的若干年裏,人們在成本、進度估算方面做了很多工作,提出了一系列的方法與模型,典型的模型有SDCTRWWolvertonCOCOMO等等這些模型各有特點,同時也存在侷限性與不足實際應用時,至少還要做好以下兩方面的工作:一是模型?做好本地化工作。

2.4 分析技術

2.4.1 成本效益分析

軟件工程經濟學在做成本效益分析時,應注意其特殊1性因爲作爲軟件工程項目的效益,除了經濟效益外,還有一個很重要的社會效益問題,它需要協調人與經濟的關係軟件工程中的規模經濟指通過投資生產專用工具來獲得大型項目的規模經濟,如測試工具、診斷工具、文檔工具、預處理程序等。而在小項目中這些工具的成本很難收回。另外,我們應更關注軟件項目的“規模不經濟”問題特別地,項目中的人越多,個體之間的分歧、編程風格差異和工作習慣上衝突的機會就會越多,這些將降低團隊的整體生產率。對此,我們應該認真分析軟件工程經濟學中導致規模不經濟的主要原因,並提出相應的對策。

2.4.2 淨值和邊際分析

本文指的“淨值”與經濟學中通常所討論的“淨值”不同,本文指的淨值方法假設所有收益相關的組成部分(僱員的需求滿足,客戶的良好願望,用戶的信息保密,對操作員的易用性)都被轉換成貨幣的形式邊際分析用來分析自變量每増加一單位將如何影響和決定因變量的量值本文運用成本驅動因子的敏感性分析方法。

2.4.3 現值技術現值概念

爲決策者提供了一個一致的框架,能將軟件工程未來不同時刻發生的現金流換算成單一的現值貨幣。現值分析主要應用於可行性分析階段,在可選的系統方案之間做出生命週期的成本比較,以便做出成本效益最好的決策另一個與此相關的決策是購買系統硬件設備的時間問題買早會導致設備閒置和資金被佔用;反之導致軟件開發成本的増加與進度的推遲除利率之外,這種決策還應考慮到稅、保險實施和維護等費甩通常,這些因素可合併成一個複合的貼現率來分析。

2.4.4 風險分析項目

風險存在於項目的始終,並且許多項目失敗於不恰當的風險管理據文獻記載,軟件系統中的風險可以檢測到,90%的風險可以避免,風險管理的投資回報率一般在在收益和風險之間取得平衡是決策中的重要問題風險分析可幫助人們做出穩妥的決策方案,風險分析可按如下步驟進行:首先,依據項目計劃基本模型,利用各種概率分佈函數描述項目中任務的不確定性;其次,可採用蒙託卡羅和拉丁海波庫比等抽樣技術,隨機地從每個不確定因素中抽取樣本,進行計算,模擬各種不同的不確定性組合,獲取各種不同組合下的計算結果;最後,藉助於統計學原理,對於這些結果數據進行分析,找出項目變化的規律,確定最大值、最小值、平均值、標準差、方差、偏度等,並在此基礎上對每個不確定性因素可能對項目進展影響程度作敏感性分柝其它分析方法和技術可用於軟件工程的經濟學分析方法還有系統分析、均衡分析和約束優化等。

三.軟件工程經濟學的特殊性問題

3.1 軟件工程管理的特殊性

軟件工程管理和其它工程管理相比有其特殊性傳統項目的學科基礎只需依賴某些基本原理集和自然法則就能控制系統的行爲並指導開發過程,而軟件是知識產品,軟件開發者的自由度較大,進度和質量都較難度量,生產效率也較難保證,並且軟件系統的複雜程度也是超乎想象的因此軟件仍然是在危機中生存和發展,生存源自於時代的需求,發展得益於人們的不懈努力。所以必須認識到軟件工程與傳統工程的本質區別從經濟學角度看,軟件具有如下的特點:

(1)軟件是由許多人共同完成的、高強度智力勞動的結晶,是建立在知識、經驗和智慧基礎上的具有獨創性的產物軟件具有價值和使用價值

(2)軟件產品是無形的,通過載體進行交易。軟件的交換價值,是載體自身價值與軟件價值之和,主要是軟件的價值。

(3)軟件產品的複製(批量生產)相應簡單,其複製成本與開發成本相比,幾乎可以忽略不計。

(4)軟件產品一般沒有有形損耗,僅有無形損耗

(5)軟件維護在其生命週期中佔有重要地位,是軟件價值的増值過程。

3.2 與定量經濟學的區別

有關研究表明,解決問題的人類經濟學方法與經典的材料經濟學方法之間有着顯著差別。軟件工程經濟學不能侷限於純定量的、最大利潤的材料經濟學範疇,而要在更廣闊的人類經濟學背景下思考問題從面向生產到面向服務的經濟轉變的全球趨勢對每個行業提出了新的要求和挑戰,軟件工程更是如此此所以,軟件工程經濟學強調人類經濟學方法就顯得非常重要,它需要擴展純定量的?面向貨幣的材料經濟學方法,並在設計決策時認真考慮經濟和人這兩個重要的因素。

3.3 成本估算的準確性

影響成本估算準確性的因素主要有以下方面:

(1)項目的複雜程度雖然有一些定性的方法可用來度量工程的複雜度,但只能用在設計階段或代碼實現階段,很難用於計劃階段目前只能用一些主觀的方法來估計一個項目的複雜程度

(2)工程規模。隨着軟件規模的増大,各模塊之間的相關性急速地増加。

(3)結構確定性程度它是指用戶需求的明確程度、功能模塊劃分的難易程度以及所要處理的信息的層次特性結構的不確定性越大,估算的風險就越大

(4)可供使用的歷史數據不全

(5)軟件需要創造性以及人與人之間的合作,但個人或團隊的行爲通常很難預料。

(6)軟件缺乏相關的定量的歷史經驗基礎,小規模的受控實驗意義不大

(7)過去的若干年裏,大量有價值的研究和數據收集已爲適當準確的成本估算模型提供了一定的基礎,但仍然需要進一步改進。

四.結束語

作爲交叉學科,軟件工程經濟學既要借鑑經濟學中成熟的經驗技術和方法爲軟件工程決策服務,也要充分認識到軟件工程本身的特殊性,更要關注人與經濟的協調性儘管國內學者在該領域已經做了不少工作,但總的來說還不夠,也欠系統,希望引起人們足夠的重視。