999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

軟件開發勞動計量方法與軟件成本估算

2010-12-31 00:00:00魏法杰
中國管理信息化 2010年13期

[摘要]通過對軟件開發成本的分析,發現軟件開發勞動量是軟件成本函數的重要變量,準確計量軟件開發勞動對于提高軟件成本估算的準確性具有重要意義。根據勞動計量的基本原理,分析發現現有軟件開發勞動計量方法存在不足。結合軟件開發勞動過程的特點,本文提出了軟件開發勞動計量的新方法——綜合計量法。最后探討了綜合計量法對軟件成本估算的意義。

[關鍵詞]軟件開發;成本估算;勞動計量

中圖分類號:F245;

軟件項目成本的估算對于投資決策、項目成功具有重要的意義。它是軟件項目可行性分析的基礎,是制定軟件項目成本計劃和進度計劃的前提;還是進行軟件項目風險管理的依據。然而現實中軟件開發項目存在嚴重的成本超支的問題。據standish Group 2004年50000 多個軟件項目的統計結果顯示平均預算超支 89%,對軟件開發成本估算大大不足是其主要原因之一。[1]因此軟件項目的成本估算成為軟件項目管理研究的熱點問題。

現有的軟件成本估算研究,取得了一系列成果。比如軟件成本估算的鼻祖Boehm提出了CoCoMo算法、CoCoMoII算法。 Putman提出了大型軟件項目工作量的估算算法,以及布魯內耳大學的Shepper將類推算法用于軟件成本估算。還有一些學者利用回歸算法、專家判定法、工作矩陣分解法、遺傳算法、人工神經網絡法估算軟件成本。他們不僅對估算算法進行研究,還對數據的來源、普適性、缺失數據處理、預測精度、提高精度方法等問題進行了深入研究。然而在國內外鮮有文獻從勞動計量的角度研究軟件成本估算問題。通過成本分析可以看出軟件成本的主要構成是人力成本,軟件開發勞動的計量,是核算人力成本的基礎。因此研究軟件開發的勞動計量對于提高軟件開發成本估算的準確度具有重要的理論和實際意義。由于軟件產品的獨特性和腦力勞動的復雜性,軟件開發勞動量的估算較為困難,現有的對軟件開發勞動量估算主要靠經驗,本文試圖根據勞動價值理論對軟件開發勞動計量方法進行初步探索。

深入研究勞動計量問題的文獻最早可追溯到馬克思的勞動價值理論。之后,泰勒從提高勞動生產率角度探討了如何具體地對勞動進行計量,并將之運用于實踐。吉爾布雷斯夫婦就勞動動作簡化問題作了細致的研究,甘特提出用甘特圖作勞動計劃、計件獎勵工資制。實際工作中人們對于軟件開發勞動的計量,有以開發所耗的人月數表示的,也有以功能點估算工作量的,還有用代碼行表示勞動量的。如 COCOMO方法以代碼行為基礎,Albrechet以功能點為基礎進行估算.基于勞動價值理論的勞動計量方法是軟件開發勞動計量的理論基礎,從勞動計量的理論角度分析,這些計量方法都存在不足之處:將復雜勞動簡單化,用計量體力勞動的方法計量腦力勞動。本文以下組成首先分析軟件開發成本的構成,然后對現有軟件開發勞動計量方法進行評述,在提出新的軟件開發勞動計量方法,最后利用COCOMO數據,驗證該方法的有效性。

二、軟件開發成本的構成

從馬克思的勞動價值理論、生產要素分類、成本與產量的關系三個方面解析,可以看出勞動力成本是軟件開發成本的重要組成部分,勞動量是軟件開發成本函數的重要變量。

按照經典勞動價值理論的的觀點:軟件開發成本是企業為了生產軟件所作出的價值犧牲。w=c+v+m ……(2)

其中w-商品價值,c-生產資料轉移的價值,v-勞動者為自己勞動所創造的價值,m-剩余價值。c+v構成理論成本。

為了說明在軟件開發中哪種生產手段對成本的形成起主要作用,按生產要素類型對c+v劃分:

c+v=t+y+l+g……(3)

其中t-土地成本,y-原材料及附加成本、l-勞動力成本、g-固定資產費用。即:

可以看出:

c = t+y+g,v=l……(4)

土地成本包括購買土地所需資本及附加費用,一般土地被認為不會失去其原有價值,不存在折舊問題,因此土地成本可以忽略。原材料及附加成本包括光盤等存儲介質的購買價格、紙張、墨粉等耗材費用、庫存費用、電費、通訊費等。勞動力成本由勞動者的工資性收入、社會保險及其它支付給個人的費用構成。固定資產費用主要由辦公房屋折舊或租賃費、辦公家具、空調、打印機的折舊、電腦、軟件工具的折舊和維護升級費用構成。軟件復制所需光盤、紙張價格低廉,購買方便,可以實現零庫存生產,于是,原材料及附加成本也可以忽略。即:

,v=l,則 (5)

可見,軟件企業生產軟件成本主要由g、l構成。為了分析軟件產品產量和成本的關系,再將成本g+l按照成本與產量的關系劃分為固定成本f和半變動成本d、變動成本b。得到:

(6)

固定資產費用g中,辦公房屋折舊或租賃費、辦公家具、空調、打印機的折舊,在各期的支出水平比較穩定,視為f; 電腦、軟件工具隨著軟件項目增加可能會增加,隨著項目規模增加也可能增加,因此折舊和維護升級費用在各期的支出水平既同產量成一定的正相關關系,同時在各期支出水平也比較穩定,視為d;由于y 被忽略了l即b。由此也就得出了一個結論:從產量和成本的關系看,在軟件生產中,變動成本b或勞動力成本l是影響成本的重要因素。而勞動力成本l是軟件開發勞動量e的函數, 。可以將軟件成本(設為s)估算的過程看作以軟件開發勞動量為變量的函數關系求解過程:

(7)

根據固定資產折舊的方法可以計算出折舊成本g, 是人力成本,也就是軟件生產勞動成本,欲求出s,首先要計量e,然后根據當今的薪酬水平得到 。

于是,勞動量是軟件開發成本函數的重要變量,在軟件項目成本管理中,準確計量軟件生產勞動量e是有效地估算軟件成本的前提和關鍵。

二、軟件開發勞動計量方法評介

隨著項目管理在軟件工程中的廣泛應用,已經形成了以下三種軟件開發勞動量計量尺度和方法。

(一)工作量的人月數或人時數

用參加開發工作的人月數或人時數(以下簡稱pm )來表示軟件開發勞動量 (effort)是非常直觀和簡單易行的。根據COCOMO算法的假設,1人月指除去節日、假期和病假外余下的實際月平均工作時間,1人月=152人時=19人日=1/12人年。pm以時間作為度量勞動量的天然尺度,采用計時制原理,對流動勞動進行計量,屬于工作測定法中的測時法。

但是用測時法計量軟件開發勞動量存在兩點不足。首先,時間作為勞動計量的尺度是有前提的,即把所有的勞動都抽象成無差別的社會勞動。而在軟件生產中,系統可行性分析、需求分析、概要分析、詳細設計、實現、測試、維護等勞動無論在其勞動的責任、強度、所需技能還是在勞動環境方面都存在較大差別,只有抽象成無差別的勞動后用pm計量才能較準確地反映實際勞動量。即將復雜勞動抽象成簡單勞動,或做相應的折算。但人們在計量時,都僅僅是簡單地用pm表示工作量,也就是說,運用時間度量勞動的前提未滿足。第二,以pm計量軟件開發勞動,簡化了勞動者之間勞動的差別,忽略了潛在勞動和勞動計量的要素綜合尺度,未考慮知識的儲備、技能、思維能力的差別。而現實中軟件開發中處于不同崗位、不同生命階段的人們的潛在勞動的差別也是相當明顯的。

(二)功能點法

用軟件的功能點數來表示軟件開發勞動量,是基于用戶的功能觀點,20世紀70年代IBM的Albrecht提出功能點模型FPA,之后人們紛紛改進和繼續開發功能點方法,提出了模型的變體,如MarkII FPA、完全功能點、SPR的特征點、對象點。IFPUG發展推進了Albrecht的FPA,并且定期發布計算指南。功能點方法的基本思想是根據用戶需求和高層邏輯設計提供給用戶的功能來計量,用輸入、輸出、用戶查詢、文件數、外部界面數5個信息量的加權和CT與14個復雜性調節因子Fi(I=1,…,14)計算功能點FP。

由于功能點在軟件開發前期需求分析時可以基本確定,而且與語言無關,因此,可以用于前期估算軟件開發工作量。但是功能點法采用了成果計數法,存在致命的不足。成果計數法通過測算勞動者在單位時間內完成的勞動成果的數量,來計量勞動量的大小,適合計量簡單可重復的體力勞動,而用輸入、輸出、用戶查詢、文件數、外部界面數計件表示軟件開發勞動成果顯然是不合適的。也就是說,功能點法用計量體力勞動的方法計量軟件開發勞動這種復雜腦力勞動。

(三)代碼行方法

代碼行方法從開發者的技術觀點出發,是技術度量,是軟件開發者最早進行規模測量的方法之一,人們并未直接提出用代碼行(Loc)數表示軟件開發勞動量,但在用軟件的代碼行(Loc)數度量軟件規模時,隱含了用代碼行數表示軟件開發勞動量。因為人們進一步用它來度量軟件開發的生產率: 。其中 表示軟件項目的生產率,用每人月完成的代碼行數度量。 是軟件項目的代碼行數,用千行代碼kLOC度量. 是軟件項目的工作量,用人月(pm)度量。人們對術語LOC進行定義指源代碼行數,早先是計算所有的代碼行數,不管是空行、注視行、聲明還是可執行語句。后來做了一些改變。LOC有許多變體,如SLOC代碼的源行、DSLOC已交付的代碼的源行、自然源行、邏輯源語句。代碼行方法計量的優點是簡單易行,且在軟件開發結束后直接度量可視的源代碼,顯得客觀。但是這個優點也直接導致了它的主要不足:適于在項目完成后進行勞動計量,而在軟件開發前或初期估算代碼行數十分困難。不僅如此,代碼行法依賴語言功能和表達能力,只適宜采用面向過程的語言,對采用面向對象的語言估算不太適用。從勞動計量的角度看,代碼行也是軟件生產勞動成果的物化表示,代碼行法以勞動成果作為計量尺度,仍然采用適合體力勞動計量的成果計數法。同時,n行賦值語句與n行用某算法的仿真程序設計勞動差別也很大,但是代碼行法區分不了這種差別。也就是說代碼行法將一般腦力勞動和復雜腦力勞動的同等對待,不能體現勞動者知識和技能的儲備、運用和創新。

三、軟件開發勞動分析

軟件開發是利用軟件工具形成功能、性能相對完備的信息商品的過程。與一般以材料為基礎的勞動相比,軟件開發勞動存在自身的特殊性,使得軟件開發勞動的計量較為復雜。

首先,軟件開發的勞動對象具有抽象性。其對象主要是是存儲在記憶中的知識,而對勞動者所掌握的知識的測度、計量、評價本身還是一個難題。因此通過計量勞動對象計量軟件開發勞動十分困難;第二,軟件開發的勞動工具呈現高技術性。其工具為統一的圖表、抽象的編程語言、各種形式的計算機,對勞動主體的知識、技能、經驗要求比較高,付出的潛在勞動比較多,因此在計量軟件開發勞動時,需要按照綜合要素尺度充分考慮勞動主體的勞動能力;第三,勞動過程的無形性、不確定性。由于軟件開發是對儲備知識和技能的組合、應用、創新的過程,主要是思維的活動,本身是不可見的,因此單純用計量流動勞動的時間尺度來計量也顯得不夠精確。思維活動的模糊性,又使計量結果不確定,存在隨機性。第四、勞動的有序性。軟件開發勞動按照軟件生存期可以劃分為不同的階段,從總體上看,這些階段之間的關系是以時間為坐標,順序延伸的,開發勞動是有序進行的。盡管各個階段之間的關系不可能完全是順序的、線性的,而可能是帶有反饋的迭代。但是每一次迭代內部的循環來看,需求定義、概要設計、詳細設計、實現、組裝測試、確認測試、維護一系列勞動總是有序的;本次的確認測試決不會在其詳細設計之前進行。第五,勞動成果抽象性。軟件開發的成果是軟件,軟件是邏輯產品,智力產品,軟件的質量度量、復雜性度量、可靠性度量本身又比較復雜,所以無論單獨是用人月數、代碼行法還是功能點法,都顯得比較粗造,都難以準確、有效地反映軟件開發勞動量。

四、軟件開發勞動計量新方法-綜合計量法

(一)模型的構建

由于腦力勞動的復雜性、軟件產品的復雜性,無論是哪一種方法,都不能單獨準確計量軟件生產勞動,為了較全面地反映軟件生產勞動,可以綜合應用多種度量尺度的方法稱為綜合計量法。綜合計量法如下:

根據崗位評定法,以潛在勞動為尺度,考慮軟件生產人員的不同的綜合素質,按照所從事不同崗位的勞動,進行評定。按照軟件生產的不同階段,可分為三大類崗位:軟件定義、軟件設計、編程實施崗位。類可以再分為種崗位:軟件定義類分為軟件系統可行性分析崗、需求分析崗;軟件設計類分為概要設計崗、詳細設計崗、編程類分為實現崗、組裝測試崗、確認測試崗。一共7種不同的崗位,根據崗位職責評定勞動。用向量 表示,

,I=1,…,7。

然后考慮時間尺度,采用計時方法,以第一種方法為基礎,用不同崗位投入的人月數計量工作量 , 。

按照開發成果計量,即功能點和代碼行,得到 、 ,i=1,…7。其中 擴展為文檔代碼行。因為軟件在不同階段的表現形式不同,在 、 、 、 不涉及代碼的崗位用文檔行來表示,在 、 、 涉及代碼的崗位用代碼行來表示。

綜合計量法得到軟件開發勞動計量模型如下:

(二)模型的特點

從縱向e可以看作7個列向量: 、 、… ,每一個列向量 都有三個元素 、 、,其值呈正相關關系。

從橫向看,e為3個行向量, 、 、 ,分別代表軟件開發各個崗位所需的人月數、所涉及的功能點數、文檔代碼行數。每個行向量都有79個元素。其中 應服從Rayleigh-Norden曲線。

五、綜合計量法對軟件成本估算的意義

(一)減少人數,可以降低軟件成本

綜合計量模型中 ,j=1,…7,是一個復合量,可以有多種組合。如 =24人月,其組合數可為:1人×24月、2人×12月…12人×1月,不同的組合代表的生產能力和所需的成本并不一樣。因為軟件產品的是智力產品、邏輯產品,隨著人數的增加,會增加溝通成本和管理成本,一些大型的項目,往往在一定的時間內,一個人或幾個人完成不了,而隨著人數的增加,出現的溝通、管理問題非常突出,使得項目成本超支、進度拖延。因此,在計量工作量時,以進度安排為約束,用最少的人數,可以減少通信工作量,從而使實際成本降低。

(二)合理劃分 結構,可以降低軟件成本

按照崗位估算工作量時,定義、開發、維護不同的崗位工作量結構要合理,因為軟件生產勞動是有序的,產品前一個階段的工作是后面的基礎和根據,如果在軟件前期可行性分析做得不夠、需求分析不清,軟件調試完畢后提出很多意見,再從前面的概要設計、詳細設計進行返工、修改所需工作量會大大增加,成本幾乎會成倍增加。因此在估算開發工作量的人時數時,合理劃分不同崗位工作量,使前期崗位占有合適的比例,整個工作量人時數呈合理的結構,可以減少修改次數,從而降低估算和實際的成本。Putman提出的大型軟件人時數分布模型與Rayleigh-Norden曲線非常相似,因此可以按照該曲線估算 結構。

(三)由于計量的不確定性,軟件成本估算適合采用區間估計

在計量軟件開發勞動時采用了以崗位評定為基礎的人時數、功能點、文檔代碼行,崗位評定法本身是以專家打分為基礎,帶有很強的主觀性和模糊性;又由于腦力勞動過程無形、不可見,使得軟件開發勞動計量存在很多不確定性因素,以勞動量為因變量的軟件成本估算值具有不確定性,估算值落在某個合適的區間,而不是點估計,可提高估算的準確度。

(四)需要進一步研究的問題

軟件開發勞動的創造性本質和其內在機理的未知性給計量帶來很大的困難。在實際應用中,軟件開發前用綜合計量法估算出勞動量e,進而計算軟件成本。這21個因素對于成本的影響、估算成本對各因素的敏感性分析都是這一問題應該進一步研究的內容。

主要參考文獻

[1] 樂群星,魏法杰:勞動計量理論與方法研究[J].生產力研究,2004,( 2).

[2] Magne, Jorgensen. Martin, Shepperd. A Systematic Review of Software Development Cost Estimation Studies[J].IEEE TRANSACTIONS ON SOFTWARE ENGINEERING, 2007, 1 (33).

[3] 李明樹,何梅,楊達,舒風笛,王青:軟件成本估算方法及應用[J]. 軟件學報, 2007, 18(4) .

[4] 甘早斌,聶正茂,盧正鼎:軟件開發成本估算技術綜述[J].計算機工程與科學, 2005,27( 6) .

[5] Nikolaos, Mittas. Marinos, Athanasiades. Lefteris, Angelis. Improving analogy-based software cost estimation by a resampling method[J].Information and Software Technology, article in pressavailable online 14 April 2007 .

[6]Panagiotis, Sentas. Lefteris,Angelis. Categorical missing data imputation for software cost estimation by multinomial logistic regression[J].The Journal of Systems and Software, 2006,79(3).

主站蜘蛛池模板: 青草午夜精品视频在线观看| 日韩免费视频播播| 亚洲第一网站男人都懂| 国产成人啪视频一区二区三区 | 美女国产在线| 免费国产小视频在线观看| 日韩精品成人网页视频在线| 欧美日韩成人| 全免费a级毛片免费看不卡| 婷婷六月综合网| 亚洲男人的天堂视频| 人妻丝袜无码视频| 丁香五月婷婷激情基地| www.91中文字幕| 熟妇无码人妻| 91精品国产综合久久不国产大片| 国产成人91精品| 欧美伊人色综合久久天天| 亚洲欧美综合在线观看| 波多野结衣久久高清免费| 国产成人福利在线视老湿机| 亚洲日韩国产精品综合在线观看| 国产三级毛片| 成人无码区免费视频网站蜜臀| 日韩精品高清自在线| 91区国产福利在线观看午夜| 五月婷婷丁香色| 色悠久久久| 内射人妻无套中出无码| 美女啪啪无遮挡| 国产精品久久久久久久久久久久| 国产va视频| 91最新精品视频发布页| 午夜性刺激在线观看免费| 在线观看热码亚洲av每日更新| 中文字幕永久在线看| 日韩欧美视频第一区在线观看| 国外欧美一区另类中文字幕| 在线观看国产黄色| 欧美国产综合色视频| 色综合久久综合网| 欧美中出一区二区| 中字无码精油按摩中出视频| 欧美日本在线一区二区三区| 亚洲欧美国产高清va在线播放| 国产69精品久久久久孕妇大杂乱| 亚洲综合天堂网| 欧美另类视频一区二区三区| 亚洲天堂区| 中文字幕色在线| 国产精品视频白浆免费视频| 欧洲极品无码一区二区三区| 四虎永久在线精品影院| 日韩精品无码免费专网站| 久久综合五月婷婷| 国产jizzjizz视频| 热99精品视频| 久久综合亚洲色一区二区三区| 国产00高中生在线播放| 精品国产免费第一区二区三区日韩| 国产成人亚洲毛片| 欧美中文字幕在线二区| 中国国产A一级毛片| 中文字幕永久在线观看| 日韩一区精品视频一区二区| 国产欧美高清| 久久精品日日躁夜夜躁欧美| 91无码人妻精品一区二区蜜桃| 精品国产一区二区三区在线观看| 精品在线免费播放| 国产成人a在线观看视频| 欧美另类一区| 丰满人妻被猛烈进入无码| 国产成人精品第一区二区| 在线精品自拍| 国产精品亚洲精品爽爽| 亚洲欧美不卡视频| 天堂成人av| 亚洲欧美成aⅴ人在线观看| 一级高清毛片免费a级高清毛片| 欧美啪啪网| 国产在线一区视频|