井濤 譚浩
摘要 研發(fā)過程可量化,是軟件開發(fā)的基礎,量化來自測量分析,測量分析選擇的測量指標、測量方法是否合理,會對評價組織軟件水平和軟件的研發(fā)效果帶來較大的影響,如何正確、科學的進行測量分析,建立正確的測量分析模型是軟件開發(fā)的重點和難點。
【關鍵詞】測量分析 測量分析建模 質(zhì)量評價
1 引言
隨著CMMI認證獲得普遍認可,軟件開發(fā)日益受到的關注,軟件開發(fā)在保證軟件質(zhì)量、提高軟件研發(fā)效率方面取得了矚目的成效,實施軟件開發(fā)已經(jīng)是大多數(shù)組織的常規(guī)做法。隨著軟件開發(fā)的普遍實施,軟件的監(jiān)控手段呈現(xiàn)多樣化,不再單純依賴對最終產(chǎn)品的檢驗、測試,這些監(jiān)控手段中,量化的測量是最直觀、見效最快的手段。本文通過選取合適的測量指標、測量方法,建立合適的測量分析模型,將軟件研發(fā)的效果以直觀的數(shù)字或者圖表的方式呈現(xiàn)出來,以減輕軟件研發(fā)的監(jiān)控盲目性,提高軟件開發(fā)的實施效果和軟件評價的客觀性。
2 項目生存周期內(nèi)的測量分析
軟件開發(fā)管理的目的,是為了軟件可控,也就是為了使軟件開發(fā)能夠按照預定的成本、進度、質(zhì)量完成研發(fā)。為此,軟件開發(fā)周期將研發(fā)過程劃分為不同的階段、并設置里程碑點,以監(jiān)控軟件開發(fā)的進展,在階段內(nèi)除了安排必須完成的任務,還要將階段再細分為周、雙周進行監(jiān)控等,通過對周、雙周、階段、里程碑等的測量,實現(xiàn)研發(fā)過程的全生存周期量化。
因此,在生存周期初期的策劃過程中,需要對工作產(chǎn)品和活動的估計,也就是對軟件開發(fā)進行預測量,依據(jù)預測量的結果,分配階段任務的工作量、進度、成本等,據(jù)此制定軟件開發(fā)計劃。軟件運行過程中,按監(jiān)控的頻次點、階段點、里程碑點等及時收集項目的工作量、進度、成本、規(guī)模等各項數(shù)據(jù),并對數(shù)據(jù)進行計算、分析,給出以圖表等展示的量化結果,通過量化的結果判斷過程和工作產(chǎn)品的完成情況,并據(jù)此對偏差采取返工等糾正措施,以控制軟件開發(fā)風險、保證按預期的要求開展研發(fā),確保研發(fā)過程受控。項目結束時,通過對軟件開發(fā)的各方面進行全面測量分析,并與初期測量的結果進行對比,以判斷軟件的研發(fā)過程是否達到預期,同時積累項目數(shù)據(jù)、修正預測量方法等。
3 軟件開發(fā)分析建模
在軟件開發(fā)周期內(nèi),一直發(fā)生軟件研發(fā)的各項活動,產(chǎn)出各項工作產(chǎn)品,測量也就會一直伴隨著各項活動和工作產(chǎn)品,由此軟件開發(fā)測量分為針對各項活動的過程測量和工作產(chǎn)品測量。過程測量主要測量進度和成本,工作產(chǎn)品測量主要測量質(zhì)量、效率。利用過程測量,可以監(jiān)控軟件開發(fā)的計劃進度、成本支出是否符合要求;利用工作產(chǎn)品測量可以監(jiān)控軟件的質(zhì)量是否符合設計要求,研發(fā)效率是否達到要求。
3.1 確定測量目標
軟件開發(fā)一般通過質(zhì)量、進度、效率、成本等進行表征,不同領域、不同組織,對軟件開發(fā)的表征項會有很大的差異,有的組織特別關注進度,有的組織特別關注成本,可以據(jù)此確定測量目標。本文中,按某組織關注的重要程度,確定為:進度、質(zhì)量、效率、成本。
3.2 確定測量項
測量目標確定后,需確定目標的量化表征,也就是確定可以采集到數(shù)據(jù)的測量項,實現(xiàn)研發(fā)工作的量化。
某組織的進度控制,主要是通過控制階段點和里程碑實現(xiàn),階段點和里程碑不延期,軟件開發(fā)就能滿足進度要求。階段點和里程碑是否符合要求如何表示呢?由策劃可知,軟件開發(fā)制定了軟件開發(fā)計劃并采集計劃中各項任務的完成信息,因此可以通過實際進度和計劃進度的偏差直觀的表征進度符合情況,同時進度性能指標是另一種表征進度情況的相對科學的方法,因此進度指標,可以由進度偏差、進度性能指標等組合表征。
質(zhì)量情況可以由bug和問題數(shù)表征,但是由于軟件開發(fā)的規(guī)模差異、復雜度差異等,絕對的bug和問題數(shù)無法直接表征質(zhì)量情況,需要用代碼缺陷率、產(chǎn)品檢查通過率的相對值表征會更準確,由于質(zhì)量不止是產(chǎn)品質(zhì)量,還有過程質(zhì)量,以及相同的代碼缺陷率、產(chǎn)品檢查通過率下,問題分布的不同質(zhì)量也會有很大的不同,因此需要綜合這些因素,共同表征軟件質(zhì)量。
效率主要是生產(chǎn)率,生產(chǎn)率提高,研發(fā)效率就會提高,但是在生產(chǎn)率相同的情況下,頻繁的需求變更會帶來實際的效率下降,因此效率需要通過生產(chǎn)率、需求變更及規(guī)模和工作量偏差共同表征。
成本的數(shù)據(jù)表征是客觀的,主要是采購成本和人工成本,通過控制階段成本偏差和成本性能指標控制軟件開發(fā)的支出。
4 測量項定義
軟件開發(fā)測量模型確定后,對每一測量項定義測量方法、計算公式、設置指標。
表l為控制軟件開發(fā)進度目標的測量項定義。
5 結束語
上述測量分析模型,已經(jīng)在某組織內(nèi)全面應用,得益于測量分析的實施,某組織2017年的軟件開發(fā)全部按預期完成并通過鑒定,從效果來看,測量活動給組織和軟件開發(fā)所帶來的受益遠遠大于測量活動所耗費的成本。當然,測量目標和測量項及其定義,應依據(jù)每個組織的具體情況進行確定,且需隨著軟件數(shù)據(jù)的積累及時改進。
參考文獻
[1]李明樹,王青,基于過程控制的軟件質(zhì)量管理[J].電子學報,2002, 30 (12A): 2033-2035.
[2]閆振興,鄭駿.軟件缺陷度量與軟件過程管理方法研究[J].計算機與數(shù)字工程,2010 (08).
[3]席曉強.關于軍工軟件研發(fā)度量的研究[J].信息化研究,2010,36 (09):1-3.