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