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

一種用于軟件采購定價的成本估算系統

2008-01-01 00:00:00湯子楠舒風笛
計算機應用研究 2008年3期

摘要:介紹了一種可用于軟件采購定價的成本估算系統。首先引入了一個兩階段的成本估算模型框架。該框架利用一個裁剪的COCOMO Ⅱ模型估算開發總工作量,再利用一個貝葉斯網絡模型估算開發總成本。并以某科技計劃項目為例,對貝葉斯網絡模型參數進行了定義和校準。在此基礎上,開發了基于B/S結構的成本估算系統。應用實例表明,該系統擁有較高的估算精度。

關鍵詞:軟件采購;成本估算;COCOMO Ⅱ;貝葉斯網絡;輔助工具

中圖分類號:TP311文獻標志碼:A

文章編號:1001-3695(2008)03-0795-04

軟件采購是指公司、政府或其他組織為了開展日常活動或提供相關服務的需要,以法定的方法和程序,從市場上購買商品軟件的行為[1]。隨著政府和公司對操作系統、辦公套件,以及其他各類應用軟件需求的不斷擴大,軟件采購的重要性日益上升。2004年,中國政府用于軟件采購的年資金已達94億元。對于采購方而言,在投標或購買前,以待采購軟件的規模和主要特征為依據,對其進行準確的成本估算,并據此確定采購價格,是獲取價格合理的軟件的有效保障。因此,軟件成本估算是軟件采購中的重要環節,也是決定采購能否成功的關鍵因素。

現階段,國內的企業和政府部門在估算軟件成本時,采用的方法比較單一,主要依靠領域專家的知識和經驗,或是以歷史項目為參照。類似的專家經驗方法或類比方法過多地依賴人的主觀判斷,因此估算結果的個體差異明顯,并且難以再現。更為主要的是,這類方法缺乏統一可靠的標準對估算過程和結果進行監督和衡量,因此在實踐中遇到了越來越多的問題。

如何進行精確可靠的軟件成本估算一直以來都是軟件工程學術界普遍關注的問題。在過去的數十年中,軟件工程學的研究者建立了大量的估算模型,如COCOMO[2] COCOMO Ⅱ[3]、SLIM[4]、PRISES[5]、Checkpoint[6]等,用于預測軟件開發的成本。這些模型一般采用預期的軟件規模作為主要的成本驅動因子,同時考慮軟件和軟件運行平臺的屬性,軟件開發人員和開發過程的特征等多種影響軟件成本的因素,建立成本驅動因子與預期工作量之間的數學關系。并利用以往的軟件項目作為樣本,采用多元線性回歸、貝葉斯分析等方法對模型參數進行校準。基于參數模型的估算方法在一定程度上克服了專家經驗方法和類比方法的主觀性問題,同時,這類方法一般采用固定的、可重現的估算流程,便于估算過程的監督和控制。因此,以上述模型為核心的各種商業估算工具在工業界得到了越來越廣泛的應用。

目前我國尚沒有合適的軟件成本估算體系和流程,尤其缺乏可用于軟件采購定價的成本估算方法和工具。這使得采購方在面對眾多投標方的報價時無法確定合理的市場價格,在一定程度上制約了軟件采購的順利進行和軟件產業的健康發展。本文介紹了一個可用于軟件采購定價的兩階段成本估算模型框架。在此基礎上,開發了一個基于B/S結構的成本估算系統。文末給出了應用系統進行估算的若干實例。

1成本估算模型的建立

1.1模型框架

作為一個知識密集型的活動,軟件開發的最主要成本是直接人力成本,即工作量與開發人員工資的乘積。工作量估算是直接人力成本和總成本估算的基礎。基于這種想法,建立了一個兩階段的成本估算模型作為估算內核。首先估算總工作量,再根據直接人力成本估算開發總成本。模型框架如圖1所示。

第一階段的估算所使用的是通過對COCOMO Ⅱ進行減裁和參數重新分類校準所得到的工作量估算模型(pruned COCOMO Ⅱ effort estimation model,PCEEM),以估計的軟件規模、與軟件系統和開發過程相關的項目信息作為輸入,以估算工作量作為輸出。減裁的目的是使COCOMO Ⅱ更好地適應軟件投標或采購階段的要求,分類校準則是為了提高模型對不同類型軟件的估算精度。

第二階段的估算使用一個基于貝葉斯網絡的成本估算模型(Bayesian network cost estimation model,BNCEM),以估算工作量、組織成本信息、項目風險信息等作為輸入,綜合考慮了軟件開發可能涉及的其他費用,如調研費、場地費、設備費等,以總開發成本作為輸出結果。考慮到各種軟件項目類型和各個軟件開發組織的開發費用構成有較大的差異,一個具體的模型中無法全部涵蓋,選取了某類科技計劃項目作為研究對象,確定了網絡結構與節點之間關系。

利用大量、有代表性的歷史軟件項目數據對估算模型進行校準是提高模型估算精度、改進估算效果的重要手段。為校準和驗證估算模型,采用問卷調查、現場詢問、文檔查閱和網上搜索等多種方式,從不同的渠道獲取了一些國內、國外軟件項目歷史數據,包括國內軟件企業歷史數據、上述科技計劃項目歷史數據、ISBSG數據庫的樣本數據等共550個項目。利用這些數據,對COCOMO Ⅱ的模型參數和貝葉斯網絡的節點概率分布表取值進行了校準。

1.2工作量估算模型建立

1.2.1COCOMO Ⅱ簡介

COCOMO Ⅱ模型[3]是目前最優秀和著名的軟件成本估算模型之一。其設計者為模型提供了一個開放性的結構,允許用戶根據各種場合的不同需求對模型的成本驅動因子進行減裁和擴充,以及對模型參數進行重新校準,這使得COCOMO Ⅱ可以適用于不同組織和多種類型的軟件項目,因此在學術界和工業界都得到了普遍認可和廣泛應用。

COCOMO Ⅱ包括應用集成、早期設計和后體系結構三個子模型。其中后體系結構模型最為詳細,它以軟件規模的估算值(size,以千源代碼行(kSLOC)為單位,同時模型也支持未調整功能點(UFP)向kSLOC的轉換)作為主要依據,使用17個工作量乘數(EM)與5個規模因子(SF)對size進行調整,估算項目開發的工作量(Effort,以人月為單位),其數學形式如式(1)所示。其中:A、B為模型常數;SF說明了不同規模的軟件項目具有的相對規模經濟和不經濟性;EM則反映了軟件項目在項目過程、運行平臺、人員、產品四個方面的特征。

Effort=A×sizeE×17i=1EMi

其中:E=B+0.01×sj=1SFj(1)

1.2.2驅動因子減裁

對于軟件采購而言,在估算軟件成本時考慮的成本驅動因子應該是獨立于軟件組織的,即僅僅考慮軟件自身屬性對成本的影響,而不應考慮開發組織的屬性對成本的影響;否則,對于那些因為員工經驗豐富、過程管理能力突出、企業成熟度高,開發成本低于行業平均水平的企業而言顯然是不公平的。因此,有必要對COCOMO II模型進行減裁。對模型進行減裁時,主要遵循三個原則:

a)可獲取性。保留的成本驅動因子在項目早期可以獲取,并且可以度量。

b)可評估性。能夠評估投標組織申報的信息(即保留的成本驅動因子)的準確性。

c)有效性。保留的成本驅動因子體現項目特征,并且不體現軟件組織的特征。

按照上述原則對COCOMO II模型進行減裁后得到篩選后的八個成本驅動因子為:開發靈活性(flex)、要求的軟件可靠性(rely)、數據庫規模(data)、產品復雜性(cplx)、可復用開發(ruse)、執行時間約束(time)、主存儲約束(stor)、平臺易變性(pvol)。

1.2.3模型參數分類校準

為了提高模型的估算精度,利用最新的ISBSG項目數據對剪裁后的模型的參數A和B進行了分類校準。在校準前對項目集合進行分類,可以各類消除項目屬性如開發語言、體系結構等帶來的規模與工作量之間的差異。校準過程分為兩步:

a)利用數據中包含的項目信息選擇若干分類,包括開發類型(全新開發、升級與增強開發)、開發語言(第3代、第4代)、開發平臺(大型機、非大型機)、體系結構(單機、C/S、Web)等。

b)利用上述分類標準將項目集合分成不同的子集,利用最小二乘法對每個子集合分別進行回歸,得到A、B值。校準后發現,某些分類的子集合中,分類后校準得到的規模和工作量的函數關系與分類前相差不大,而有些則差異顯著(差異在20%以上)。根據經驗,前者的分類對于提高估算精度沒有太大幫助而舍去,最后保留的有效分類為開發平臺和體系結構。

根據保留下來的分類,將項目集分為六個子集合:非大型機單機、非大型機B/S、非大型機C/S、大型機單機、大型機B/S、大型機C/S,并分別校準了每個有效子類的模型參數。

1.3成本估算模型BNCEM的建立

貝葉斯網絡[7]是描述數據變量之間依賴關系的一種圖形模式。其網絡結構是一個有向無環圖(directed acyclic graph)。其中:每個節點代表一個屬性或數據變量;節點間的弧代表屬性或數據變量間的概率依賴關系。一條弧由一個節點A指向另外一個節點B,說明節點A的取值可以對節點B的取值產生影響。每一個節點均對應著一個條件概率分布表(conditional probability table)。該分布表指明了該變量與父節點之間的條件獨立以及依賴關系。貝葉斯網絡是對不確定性和因果關系進行建模的有力工具,近年來已被廣泛用于醫療診斷、統計決策、專家系統等領域。

貝葉斯網絡建模涉及兩方面的工作,即確定網絡拓撲結構與節點之間的關系。經過分析,選取了估算工作量、人員工資、軟件開發所涉及的各類人員工作量比重、風險影響、各項開發成本比重等對軟件成本有較大影響的信息作為輸入節點。

為確定人員工資和人員工作量比重,首先需要了解軟件開發從業人員的構成,參考軟件產業普遍認可的RUP過程以及ISBSG、COCOMO中軟件人員和活動的分類[8],制訂了軟件開發人員分類表格。在此基礎上,參考軟件咨詢公司對國內(北京地區)軟件工資的調查報告,制訂了國內(北京地區)軟件從業人員工資表格;參考美國軟件生產率研究所統計約9 000個軟件項目后,分析得出的各類人員工作量占總開發工作量的比例信息[19],制訂了軟件開發人員工作量比例分布表格。為了獲取影響開發成本的風險信息,參考了國內外軟件風險分析的專著和論文[10,11],并在北京市的一些軟件企業和軟件所軟件質量管理平臺[12,13]的示范企業作了有針對性的調查,最后確定了模型采用的風險因子:軟件的需求易變性、軟件的復雜與易錯性、外部風險和技術風險。

為了盡可能準確地描述軟件開發所涉及的各項成本,同時盡量控制網絡規模以便于計算,選取了某類科技計劃項目作為研究對象,確定了各項開發成本的構成,并對該類項目的歷史數據進行回歸分析,得到了各項成本的比例關系。

在確定輸入節點后,利用輸入節點之間的關系建立了貝葉斯網絡的中間節點(如總風險、總人力成本等)和輸出節點,以及總開發成本和各項分類成本。同時,根據上述研究的成果、節點之間存在的邏輯關系等確定了各個節點的概率分布表。這些概率分布表的取值還可以利用歷史項目信息進行訓練,以提高估算精度。

模型的輸出形式為一條正態分布的概率曲線,其均值和方差由輸入節點的取值決定。以曲線輸出的估算結果比較直觀,也可以為估算者提供更多的信息,如項目實際成本高于(或低于)某個值的可能性有多大;當項目預算確定時,還可以了解項目預算超支的可能性有多大等。

BNCEM的拓撲結構如圖2所示。其中深色節點為模型的輸入節點,淺色節點為模型的輸出節點。

模型的運轉機制如下:

a)根據待開發軟件的具體類型,利用各類軟件開發人員的工作量比例分布信息對第一階段估算得到的總工作量進行拆分,得到各類人員的工作量估計值,綜合人員工資信息后得到總人力成本。

b)對四種風險因子的發生概率和影響程度進行加權計算,得到總風險系數。

c)利用總風險系數對總人力成本值進行調整,同時利用歷史項目信息估算各類費用在總預算中的比例,結合總人力成本后可得到開發總成本和各項分類成本的概率分布。

圖2中,以E.開頭的縮寫表示各類工作在總工作量中所占的比例,以W.開頭的縮寫表示上述工作的人員工資信息;R代表需求分析,D代表設計,C代表編碼,T代表測試,CM代表配置管理,DE代表文檔編輯,PM代表項目管理。

2成本估算系統的實現

2.1整體結構設計

成本估算系統采用Struts處理頁面跳轉和業務邏輯,采用Hibernate技術建立持久層對象與數據庫交互,底層數據庫使用MySQL,Web服務器使用Tomcat。Struts+Hibernate架構是目前流行的基于B/S結構的Web應用開發技術方案。采用這種組合,成本估算系統可以較好地實現多用戶多權限控制、異地訪問、在線更新等功能要求。系統總體結構如圖3所示。

2.2模塊功能簡介

成本估算系統共包括有四個模塊:估算項目管理、經驗庫項目管理、參數設置和用戶管理。其用例圖如圖4所示。

2.2.1用戶管理模塊

該模塊實現用戶信息維護和用戶權限管理功能。成本估算系統共涉及三個角色,即一般用戶、經驗庫管理員和系統管理員。系統管理員可以使用系統的用戶管理功能為系統添加、刪除用戶,或更改用戶信息和權限。一般用戶可以訪問系統的常規功能,如估算項目管理的工作量估算和成本估算功能。經驗庫管理員擁有比一般用戶更高的權限,除系統常規功能外,還可以訪問系統的高級功能,如經驗庫項目管理和參數設置。

2.2.2估算項目管理模塊

該模塊實現軟件項目開發的工作量估算和成本估算功能。它允許用戶新建、瀏覽、刪除一個或多個軟件項目。對于每個軟件項目,用戶可以反復進行新建、查看、刪除工作量估算和成本估算操作。成本估算所需的工作量輸入值支持手工填寫和從歷史工作量估算結果導入兩種方式。該模塊同時提供了生成報表操作,供用戶將估算信息以報表的形式輸出。圖5顯示了工作量估算的輸入/輸出(文字表示)界面。

2.2.3經驗庫項目管理模塊

該模塊實現歷史項目的管理功能。并其允許用戶通過手工填寫和從已完成的估算項目自動導入兩種方式建立新的經驗庫項目,并對經驗庫項目進行瀏覽、修改、刪除操作。經驗庫中的項目可以為未來的估算提供指導,并可用于校準模型參數。估算人員可以根據組織和待估算項目的實際情況,選取類似的經驗庫項目對模型參數進行新的回歸校準,使估算結果更加真實準確。該模塊提供經驗庫項目的統計分析操作,用戶可以通過該操作了解某個經驗庫項目的估算誤差以及多個經驗庫項目的誤差分布情況,也提供經驗庫項目的生成報表操作。圖6顯示了經驗庫項目列表統計分析結果界面。

2.2.4參數設置模塊

參數設置模塊實現了系統使用的估算模型的參數管理功能,包括COCOMO Ⅱ參數設定、工資參數設定、風險參數設定。用戶可以通過重新設定模型參數值提高估算精度。對COCOMO Ⅱ的參數設定支持兩種方式,除根據專家經驗手工修改外,該模塊可以對選取的經驗庫項目集進行多元線性回歸,根據擬合結果得到新的參數a、b的值。圖7顯示了風險參數設定界面。

3系統使用實例

成本估算系統的使用步驟如下:

a)利用組織歷史項目數據校準模型參數(可選);

b)獲取工作量估算所需信息,即估計的軟件規模,項目開發語言、開發平臺、體系結構等特征信息,成本驅動因子;

c)利用PCEEM估算開發工作量;

d)獲取總成本估算所需信息,即人員工作量、項目類型、風險事件概率和影響度,以及經驗數據庫的預算支出信息;

e)利用BNCEM估算總成本;

f)在軟件投標前,隨著對估算所需信息了解的不斷深入,或由于需求變更等原因使得這些信息發生變化,可重復進行b)→c)和d)→e)的步驟,直到估算精度滿足要求或軟件投標開始;

g)將已完成的項目加入經驗庫,用于指導未來的估算或校準模型參數(可選)。

系統開發完成后,對其工作量估算功能和成本估算功能分別進行了驗證,表1和2顯示了部分測試數據的測試結果。圖8顯示了成本估算驗證的四個項目估算的總成本概率分布圖。

4結束語

本文提出了一個可用于軟件采購定價的兩階段成本估算模型框架,采用一個通過對COCOMO Ⅱ模型進行減裁和參數重新分類校準所得到的工作量估算模型PCEEM和一個基于貝葉斯網絡的軟件總成本估算模型BNCEM依次估算工作量和總成本,并以一條概率分布曲線作為輸出。這種輸出可以更好地描述估算結果的風險。以某類科技計劃項目為例,定義了貝葉斯網絡的結構和節點關系,并據此開發了一個基于B/S結構的成本估算系統。該系統支持工作量估算、成本估算、估算改進、經驗庫管理等一系列功能,可以很好地輔助管理者對軟件采購定價進行決策。

目前系統處于試用階段。下一步主要工作是繼續收集大量、高質量的歷史數據對所作工作進行進一步的校準和驗證,提高其估算精度和實用性,盡早將其應用到軟件采購的實踐當中。

參考文獻:

[1]MEYERS B C,OBERNDORF P.Managing software acquisition:open systems and COTs products[M].MA: AddisonWesley,2001.

[2]BOEHM B W,BROWN A W,ABTS C,et al.Software cost estimation with COCOMO Ⅱ[M].Englewood Clifs,NJ: PrenticeHall Press,2000.

[3]BOEHM B W.Software engineering economics[M].Englewood Cliffs, NJ: PrenticeHall Press,1981.

[4]PUTNAM L H,MYERS W.Measures for excellence:reliable software on time,within budget[M].Englewood Cliffs:Yourdon Press, 1992.

[5]PARK R.The central equations of the PRICE software cost model[C]//Proc of the 4th COCOMO Users Group Meeting.1988.

[6]JONES C.Applied software measurement[M].NY: McGraw Hill, 1997.

[7]PENDHARKAR P C,SUBRAMANIAN G H,RODGER J A.A probabilistic model for predicting software development effort[J].IEEE Trans on Software Engineering,2005,31(7):615-624.

[8]LOKAN C,WRIGHT T,HILL P,et al.Organizational benchmarking using the ISBSG data repository[J].IEEE Software,2001,18(5): 26-32.

[9]JONES C.Software assessments, benchmarks, and best practices[M].Boston, MA: AddisonWesley Longman Publishing Co,2000.

[10]KITCHENHAM B,PICKARD L M,LINKMAN S,et al.Modeling software bidding risks[J].IEEE Trans on Software Engineering,2003,29(6): 542-554.

[11]KITCHENHAM B,LINKMAN S.Estimates,uncertainty, and risk[J].IEEE Software,1997,14(3): 69-74.

[12]WANG Qing,LI Mingshu.Software process management:practices in China[M].Berlin,Heidelberg:Springer,

2005:317-331.

[13]袁榮,舒風笛,湯子楠,等.基于度量工具的軟件成本估算模型使用方法[J].計算機工程與應用,2007,43(8): 88-91.

“本文中所涉及到的圖表、注解、公式等內容請以PDF格式閱讀原文”

主站蜘蛛池模板: 好吊日免费视频| 伊人久久精品无码麻豆精品| 久久精品一品道久久精品| 亚洲bt欧美bt精品| 一级片免费网站| 国产激爽爽爽大片在线观看| 亚洲综合片| 一区二区自拍| 国产噜噜噜视频在线观看| 国产精女同一区二区三区久| 黄色a一级视频| 亚洲色图在线观看| 欧美综合中文字幕久久| 伊人婷婷色香五月综合缴缴情| 国产精品美女免费视频大全| 免费A∨中文乱码专区| 国产另类乱子伦精品免费女| 国产精品太粉嫩高中在线观看| 就去色综合| 日韩一区二区三免费高清| 国产黄在线免费观看| 凹凸国产熟女精品视频| 伊人无码视屏| 国产日韩精品欧美一区灰| 国产高清不卡视频| 亚洲男人天堂网址| 欧美另类图片视频无弹跳第一页| 91精品人妻互换| 久久公开视频| 欧美一级黄色影院| 国产毛片基地| 91丝袜美腿高跟国产极品老师| 欧美人与动牲交a欧美精品| 自慰网址在线观看| 欧美日韩一区二区三区四区在线观看| 欧美区一区二区三| 久久香蕉国产线| 久久久久亚洲AV成人人电影软件| 天堂在线www网亚洲| 国产在线观看精品| 亚洲第一成人在线| 久久a级片| 国产精品视频猛进猛出| 久久精品视频亚洲| 国产成人精品一区二区| 国产一级特黄aa级特黄裸毛片| 国产精品无码一区二区桃花视频| 青青草原偷拍视频| 亚洲日本中文字幕乱码中文| 亚洲天堂精品视频| 亚洲av色吊丝无码| 亚洲系列中文字幕一区二区| 国产大片喷水在线在线视频| 91精品情国产情侣高潮对白蜜| 97青青青国产在线播放| 亚洲AV无码一二区三区在线播放| 国产一区自拍视频| 欧美成一级| 欧美色综合网站| 国产精品开放后亚洲| 浮力影院国产第一页| 国产在线日本| WWW丫丫国产成人精品| 91福利片| 色综合中文综合网| 九色在线观看视频| 亚洲永久色| 天堂久久久久久中文字幕| 色综合久久无码网| 精品无码专区亚洲| 国产自在线播放| 亚洲国产精品不卡在线| 国产亚洲美日韩AV中文字幕无码成人| 国产呦视频免费视频在线观看| 一级全黄毛片| 国产黄色视频综合| 国产精品林美惠子在线观看| 伊人久久大香线蕉成人综合网| 欧美成人在线免费| 1024你懂的国产精品| 国产一区二区三区在线精品专区| 91在线无码精品秘九色APP|