摘要:度量分析是軟件質(zhì)量管理中的重要組成部分,是實(shí)現(xiàn)軟件數(shù)據(jù)管理的基礎(chǔ),可作為體現(xiàn)企業(yè)軟件項(xiàng)目管理水平的關(guān)鍵指標(biāo)。文章詳細(xì)介紹了軟件度量分析的流程、模型,研制了適合企業(yè)應(yīng)用的軟件度量工具,實(shí)現(xiàn)數(shù)據(jù)收集、度量實(shí)施及度量分析等活動(dòng),以及使企業(yè)快速提升度量分析能力。軟件度量分析工具將項(xiàng)目實(shí)施過程中的進(jìn)度、資源、過程穩(wěn)定性等參數(shù)量化,讓項(xiàng)目管理人員通過數(shù)據(jù)把控項(xiàng)目質(zhì)量。
關(guān)鍵詞:度量分析;軟件管理;量化
中圖法分類號(hào):TP311 文獻(xiàn)標(biāo)識(shí)碼:A
1 引言
度量分析是一種分析和測量數(shù)據(jù)的方法,旨在幫助人們更好地了解數(shù)據(jù)并從中獲取有用信息。隨著計(jì)算機(jī)技術(shù)的發(fā)展,數(shù)據(jù)復(fù)雜性的增加使得傳統(tǒng)的統(tǒng)計(jì)方法不再足夠有效,度量分析變得越來越重要。度量分析提供了一種更高效、更精確和更可靠的方法來處理數(shù)據(jù),并從中獲得有用的信息。隨著軟件規(guī)模的不斷擴(kuò)大,伴隨而來的軟件質(zhì)量問題也越來越多。為解決這些問題,提高軟件的質(zhì)量,軟件質(zhì)量管理也越來越受到軟件企業(yè)的關(guān)注。如何科學(xué)合理地開展質(zhì)量管理,利用數(shù)據(jù)事實(shí)輔助決策,這就需要依賴度量分析。度量始于度量項(xiàng)的數(shù)據(jù)積累,量化展示項(xiàng)目運(yùn)行過程,用數(shù)據(jù)輔助分析控制項(xiàng)目的進(jìn)度,從而合理地分配資源,提高軟件質(zhì)量和項(xiàng)目的成功率。為了更加合理地實(shí)踐應(yīng)用度量分析,本文對(duì)度量分析進(jìn)行了理論研究及應(yīng)用實(shí)踐。
2 度量分析定義
度量分析包含度量和分析2 個(gè)部分,是從項(xiàng)目開始到結(jié)束的一個(gè)持續(xù)性數(shù)據(jù)采集和量化分析的過程,包括項(xiàng)目過程管理數(shù)據(jù)、開發(fā)數(shù)據(jù)、測試數(shù)據(jù)等,覆蓋整個(gè)項(xiàng)目生命周期。其目的在于對(duì)項(xiàng)目的開發(fā)和過程加以理解、評(píng)估、預(yù)測、控制,最終實(shí)現(xiàn)持續(xù)改進(jìn)的能力。
3 度量分析流程
度量分析流程由選擇和定義度量、制定度量計(jì)劃、數(shù)據(jù)采集、分析等活動(dòng)組成,通過過程的穩(wěn)定性分析識(shí)別數(shù)據(jù)穩(wěn)定和不穩(wěn)定的原因,并制定措施、執(zhí)行改進(jìn),落實(shí)到研制過程,以提升軟件能力。度量分析流程[1] 如圖1 所示。
4 軟件度量分析主要活動(dòng)
4.1 度量計(jì)劃
軟件度量分析從制定計(jì)劃出發(fā)。編制度量計(jì)劃分為4 個(gè)步驟:確認(rèn)目標(biāo)目的、確定過程問題、選擇與定義度量以及集成到軟件過程中。其具體如圖2所示。
度量計(jì)劃的編制需要按照步驟進(jìn)行,先從確認(rèn)目標(biāo)和范圍出發(fā),梳理目標(biāo)與軟件過程之間的關(guān)聯(lián),以確保度量結(jié)果能夠?yàn)闆Q策提供有用信息;再找出過程問題,整理出各個(gè)過程和目標(biāo)中可能發(fā)現(xiàn)問題的區(qū)域,對(duì)可能存在的問題進(jìn)行分組,定位過程問題;在確認(rèn)問題后,選擇與目標(biāo)實(shí)現(xiàn)相關(guān)聯(lián)的數(shù)據(jù),并對(duì)數(shù)據(jù)進(jìn)行定義,保證定義后的度量項(xiàng)可以被量化、收集和分析;最終,將已定義度量活動(dòng)與軟件過程結(jié)合[2] 。
常用的度量分類有質(zhì)量、成本、進(jìn)度。質(zhì)量方面度量項(xiàng)通常包括評(píng)審問題率、代碼走查問題率、測試缺陷率、需求變更率等。成本方面度量項(xiàng)包括毛利率、外協(xié)占比率、采購占比率、人工成本占比率等。進(jìn)度方面有里程碑性能、工作進(jìn)度、工作偏差等。
度量數(shù)據(jù)收集是開展度量分析工作的前提,數(shù)據(jù)分析和在分析結(jié)果上采取的措施都是以數(shù)據(jù)為基礎(chǔ)。
在確定度量項(xiàng)、制定度量計(jì)劃以及實(shí)施措施計(jì)劃后,就開始執(zhí)行收集數(shù)據(jù)。
在數(shù)據(jù)收集前,需約定統(tǒng)一采集人員、采集時(shí)間和頻率、數(shù)據(jù)記錄規(guī)范等[3] 。
4.2 實(shí)施度量
在全面部署實(shí)施度量項(xiàng)前,需要對(duì)度量項(xiàng)選擇項(xiàng)目進(jìn)行一段時(shí)間的試點(diǎn),并且總結(jié)試點(diǎn)效果,采取試點(diǎn)有效的度量項(xiàng)。分析度量計(jì)算數(shù)據(jù)是否符合實(shí)際、度量要求是否明確,其中最重要的是要主觀判斷數(shù)據(jù)說明是否滿足需求,收集試點(diǎn)度量的成本數(shù)據(jù),分析試點(diǎn)情況,驗(yàn)證收集準(zhǔn)確度,度量單位是否合適等,以及試點(diǎn)項(xiàng)目的關(guān)聯(lián)性、相似性、樣本范圍是否覆蓋全部項(xiàng)目類型等[4] 。
4.3 度量分析
在度量數(shù)據(jù)分析時(shí),需結(jié)合度量目的、過程基線以及期望值。分析應(yīng)從2 方面進(jìn)行,一方面是支持軟件過程活動(dòng)的設(shè)施;另一方面是保證軟件組織擁有執(zhí)行和支持過程所需的能力。針對(duì)度量結(jié)果及時(shí)做出有效的決策,度量結(jié)果只有在被有效利用時(shí)才能產(chǎn)生價(jià)值。因此,在實(shí)施度量后,需要確保度量結(jié)果能夠被合理解釋和使用,以做出有益的決策。
常見的度量分析工具包括Excel, SPSS,MATLAB,R 等。本文度量分析工具的優(yōu)點(diǎn)是直接導(dǎo)入軟件項(xiàng)目開發(fā)過程積累的數(shù)據(jù),直接生成統(tǒng)計(jì)報(bào)表,易學(xué)易用,便于用戶進(jìn)行高級(jí)分析。設(shè)定統(tǒng)計(jì)分析周期自行執(zhí)行并可郵件通知,缺點(diǎn)是前期需要基于開發(fā)工具做二次開發(fā)接入數(shù)據(jù)源??紤]后續(xù)長期使用及節(jié)約成本,度量分析工具的研究與實(shí)現(xiàn)是非常有必要且可行的。
5 度量分析工具實(shí)現(xiàn)及應(yīng)用
基于IBM 公司的協(xié)作開發(fā)平臺(tái)RTC(RationalTeam Concert)和Gitlab 開發(fā)平臺(tái),結(jié)合軟件公司度量分析現(xiàn)狀開發(fā)設(shè)計(jì)一款度量分析工具。
度量分析工具使用“ eclipse 工具+ java 語言+SpringMVC 框架”進(jìn)行實(shí)現(xiàn)和開發(fā),實(shí)現(xiàn)用戶登錄驗(yàn)證、用戶權(quán)限管理、新項(xiàng)目信息導(dǎo)入、已有項(xiàng)目基本信息展示、以周為周期存儲(chǔ)項(xiàng)目信息、按照計(jì)算公式處理項(xiàng)目數(shù)據(jù)衍生出派生度量項(xiàng),以及項(xiàng)目信息導(dǎo)出到Excel。
數(shù)據(jù)采集:目前RTC/ Gitlab 是作為度量分析工具的數(shù)據(jù)來源。使用javacsv 讀取RTC 中csv 文件,以表單的形式導(dǎo)入Sqlite 數(shù)據(jù)庫。將csv 文件的表頭轉(zhuǎn)換成英文,并加入時(shí)間屬性,以便MySQL 數(shù)據(jù)庫的操作(服務(wù)器的數(shù)據(jù)庫為MySQL)和使用。該數(shù)據(jù)再經(jīng)過度量數(shù)據(jù)采集工具的處理,存儲(chǔ)在服務(wù)器中,以做進(jìn)一步的分析。
通過對(duì)數(shù)據(jù)的分析,得出進(jìn)度、資源、產(chǎn)品規(guī)模和穩(wěn)定性、產(chǎn)品質(zhì)量、過程性能5 類統(tǒng)計(jì)結(jié)果,以便度量分析人員有針對(duì)地選擇方向并進(jìn)行深入分析。度量分析人員可以對(duì)不同的度量指標(biāo)之間的關(guān)系進(jìn)行分析,以幫助用戶找出影響軟件質(zhì)量的因素。
分析過程行為:在使用度量數(shù)據(jù)采集工具對(duì)某項(xiàng)目的數(shù)據(jù)進(jìn)行導(dǎo)出后,經(jīng)過質(zhì)量管理人員的整理分析,最終形成對(duì)應(yīng)項(xiàng)目的度量分析報(bào)告。度量分析工具可以根據(jù)用戶需求定制報(bào)表,以便用戶查看所關(guān)心的度量指標(biāo)。該報(bào)告由項(xiàng)目負(fù)責(zé)人和相關(guān)領(lǐng)導(dǎo)進(jìn)行審閱,并針對(duì)對(duì)應(yīng)項(xiàng)目制定相應(yīng)的舉措,從而合理控制項(xiàng)目進(jìn)度。
定期對(duì)項(xiàng)目數(shù)據(jù)進(jìn)行采集分析,通過使用度量分析工具,大大減少了度量分析人員數(shù)據(jù)采集、整理的時(shí)間,提高了過程分析效率。度量分析工具可以對(duì)歷史數(shù)據(jù)進(jìn)行趨勢分析,預(yù)測后續(xù)發(fā)展趨勢,提示風(fēng)險(xiǎn);可設(shè)置預(yù)警值,提示異常;也可設(shè)置郵件發(fā)送范圍,定期以度量分析報(bào)告形式將度量分析結(jié)果反饋給相關(guān)人員,幫助項(xiàng)目管理人員及時(shí)發(fā)現(xiàn)項(xiàng)目異常,及時(shí)識(shí)別項(xiàng)目風(fēng)險(xiǎn),做好應(yīng)對(duì)措施,提高軟件開發(fā)效率和質(zhì)量,減少開發(fā)風(fēng)險(xiǎn)。
常見的度量異常包括數(shù)據(jù)異常、精度異常、邏輯異常、穩(wěn)定性異常。度量工具可以處理簡單的數(shù)據(jù)異常和精度遺產(chǎn),規(guī)避邏輯異常,但是對(duì)于穩(wěn)定性異常需要度量分析人員開展針對(duì)性分析。這些異??赡軙?huì)影響軟件度量的準(zhǔn)確性和有效性,因此需要對(duì)異常數(shù)據(jù)進(jìn)行分析和處理,以確保軟件度量數(shù)據(jù)的可靠性。
6 結(jié)束語
實(shí)施度量分析能夠合理控制項(xiàng)目的進(jìn)度、成本、規(guī)模和質(zhì)量,監(jiān)控項(xiàng)目穩(wěn)定性、提高過程性能等,節(jié)約了人工處理度量數(shù)據(jù)的時(shí)間成本,可直接生成度量分析報(bào)告。其有效提高了項(xiàng)目的效益,也使得項(xiàng)目的整個(gè)過程是可視可控的,便于客戶理解和交流,保證了項(xiàng)目按時(shí)完成,提高了軟件質(zhì)量。目前,基于RTC 和Gitlab 的度量分析工具可以直觀展示項(xiàng)目研制過程中存在的問題,但項(xiàng)目售后過程數(shù)據(jù)未完全覆蓋,可以以此為基礎(chǔ),合理優(yōu)化度量分析,不斷改進(jìn),以實(shí)現(xiàn)提高軟件質(zhì)量的目標(biāo)。
參考文獻(xiàn):
[1] 孫垂云.基于CMMI 的軟件質(zhì)量度量研究[D].北京:北京交通大學(xué),2009.
[2] 孫晶.基于CMMI 的軟件質(zhì)量度量模型及工具原型研究[D].大連:大連海事大學(xué),2006.
[3] 周曉瑩.基于軟件過程的度量方法設(shè)計(jì)與研究[D].上海:上海師范大學(xué),2013.
[4] 李國峰.基于CMMI 的軟件開發(fā)項(xiàng)目質(zhì)量管理研究[D].北京:北京郵電大學(xué),2014.
作者簡介:林贛秀(1991—),本科,工程師,研究方向:項(xiàng)目管理、智慧城市、信息化與信息安全。