軟件開(kāi)發(fā)COD引入缺陷預(yù)測(cè)模型的建立
來(lái)源:http://www.attrakmagnet.com/ 作者:余氯檢測(cè)儀 時(shí)間:2019-10-11
摘 要:本文論述了基于ACV-Average Competency Value和系統(tǒng)圈復(fù)雜度系數(shù)構(gòu)建COD階段缺陷預(yù)測(cè)模型的過(guò)程和思路,通過(guò)建立的預(yù)測(cè)模型軟件項(xiàng)目管理者可以預(yù)測(cè)預(yù)先設(shè)定的項(xiàng)目QCD目標(biāo)實(shí)現(xiàn)概率,提前預(yù)測(cè)風(fēng)險(xiǎn)并適時(shí)增強(qiáng)項(xiàng)目團(tuán)隊(duì)的開(kāi)發(fā)力量。
中國(guó)論文網(wǎng) /8/view-3801726.htm
關(guān) 鍵 詞:ACV;圈復(fù)雜度;缺陷預(yù)測(cè)模型
借鑒人力資本管理領(lǐng)域中關(guān)鍵能力項(xiàng)的統(tǒng)計(jì)學(xué)識(shí)別方法,我們識(shí)別出對(duì)于A業(yè)務(wù)方向嵌入式項(xiàng)目質(zhì)量有重大影響的因素有:C語(yǔ)言技術(shù)&編碼的能力水平和軟件的復(fù)雜程度(圈復(fù)雜度)。從邏輯上分析,由于在車載導(dǎo)航軟件開(kāi)發(fā)中基本使用的都是C語(yǔ)言的開(kāi)發(fā)技術(shù),在中小型開(kāi)發(fā)項(xiàng)目中,C語(yǔ)言技術(shù)&編碼的能力水平和軟件的復(fù)雜程度確實(shí)對(duì)于項(xiàng)目的質(zhì)量會(huì)有很大的影響。在這里我們引入一個(gè)新的概念A(yù)CV-Average Competency Value及項(xiàng)目成員關(guān)鍵能力平均值,在我們此次車載導(dǎo)航軟件開(kāi)發(fā)研究的范圍內(nèi)關(guān)鍵能力項(xiàng)為C語(yǔ)言技術(shù)&編碼。
基于CMMI軟件成熟度模型和實(shí)際軟件開(kāi)發(fā)過(guò)程,軟件開(kāi)發(fā)的主要過(guò)程分為幾個(gè)階段:RD(需求開(kāi)發(fā))、RU(需求理解)、SD(系統(tǒng)設(shè)計(jì))、PD(概要設(shè)計(jì))、DD(詳細(xì)設(shè)計(jì))、COD(編碼)、UT(單元測(cè)試)、IT(集成測(cè)試)、ST(系統(tǒng)測(cè)試)和QC階段。軟件項(xiàng)目的一個(gè)關(guān)鍵目標(biāo)就是質(zhì)量,ST階段的缺陷密度是項(xiàng)目質(zhì)量的關(guān)鍵度量項(xiàng)[1]。但是,在ST階段發(fā)現(xiàn)的缺陷往往是由其他之前的階段引入的,這些可能引入缺陷的階段包括COD、DD、IT、PD等[2]。我們使用了Crystal Ball工具對(duì)相關(guān)數(shù)據(jù)進(jìn)行了敏感度分析,包括ST、COD和DD階段的缺陷引入對(duì)于項(xiàng)目的質(zhì)量目標(biāo)都有相當(dāng)?shù)挠绊憽?br> 為了達(dá)成軟件開(kāi)發(fā)的質(zhì)量目標(biāo),我們必須想辦法控制各階段引入的缺陷數(shù)量。從敏感度分析結(jié)果上看,COD階段的缺陷密度對(duì)于QC指標(biāo)的影響比較大,同時(shí),如果能在ST階段更多地發(fā)現(xiàn)和處理實(shí)際已經(jīng)存在的軟件缺陷,QC目標(biāo)達(dá)成的可能性會(huì)大大增加。
各階段引入的缺陷數(shù)量也與軟件程序本身的復(fù)雜度有關(guān),在軟件測(cè)試的概念里,圈復(fù)雜度用來(lái)衡量一個(gè)模塊判定結(jié)構(gòu)的復(fù)雜程度,數(shù)量上表現(xiàn)為獨(dú)立路徑條數(shù),即合理的預(yù)防錯(cuò)誤所需測(cè)試的最少路徑條數(shù),圈復(fù)雜度大則說(shuō)明代碼可能質(zhì)量低且難于測(cè)試和維護(hù)[3]。經(jīng)驗(yàn)表明:一般圈復(fù)雜度越高,Bug發(fā)生的可能性越高。
圈復(fù)雜度過(guò)高會(huì)造成下列問(wèn)題:
1.復(fù)用困難。代碼復(fù)雜度過(guò)高,說(shuō)明一個(gè)函數(shù)內(nèi)覆蓋的邏輯過(guò)多,程序耦合性(各個(gè)模塊之間接口的復(fù)雜度)較高,所以也不易于移植復(fù)用。
2.測(cè)試?yán)щy。圈復(fù)雜度代表路徑覆蓋的條數(shù),即case數(shù)。所以,需要更多的測(cè)試才能覆蓋一個(gè)復(fù)雜度較高的程序。
3.易讀性差。代碼復(fù)雜度過(guò)高的程序不易于閱讀。
4.缺陷率高。一般復(fù)雜度越高,缺陷密度越高。代碼復(fù)雜度過(guò)高的程序,變更時(shí)更容易產(chǎn)生缺陷。
從圖1的兩個(gè)例子中,我們可以使用一種簡(jiǎn)單的方法來(lái)計(jì)算兩段程序的圈復(fù)雜度。在Example 1中,while循環(huán)圈復(fù)雜度加1,if語(yǔ)句圈復(fù)雜度加1,每個(gè)&&語(yǔ)句圈復(fù)雜度加1,總體程序執(zhí)行圈復(fù)雜度加1,圈復(fù)雜度總和為5。在Example 2中,if語(yǔ)句圈復(fù)雜度加1,else語(yǔ)句圈復(fù)雜度加1,總體程序執(zhí)行圈復(fù)雜度加1,圈復(fù)雜度總和為3。這種方法的基本計(jì)算原則是:程序中出現(xiàn)下列關(guān)鍵字的次數(shù)再加1,關(guān)鍵字主要包括for、if、while、switch、&&、||、goto和case等。
以上是比較簡(jiǎn)單的圈復(fù)雜度計(jì)算方法,另外一種計(jì)算方法是利用有向圖理論(Sequense)計(jì)算由一段代碼演化來(lái)的有向圖中線性獨(dú)立的路徑的個(gè)數(shù),來(lái)得出圈復(fù)雜度的數(shù)值。
圈復(fù)雜度=E-N+2 (1)
其中,E:程序流程有向圖中邊的個(gè)數(shù);N:程序流程有向圖中節(jié)點(diǎn)的個(gè)數(shù)。
目前可以使用的計(jì)算圈復(fù)雜度工具有:
1.JAVA平臺(tái):PMD靜態(tài)分析源代碼工具(付費(fèi))、JavaNCSS(開(kāi)源)、CheckStyle(付費(fèi));
2..NET平臺(tái):FxCop(開(kāi)源)、NDepend(付費(fèi));
3.C/C++平臺(tái):QAC(付費(fèi))、Source Monitor(開(kāi)源)。
我們?cè)趯?shí)際的項(xiàng)目開(kāi)發(fā)中主要使用Source Monitor開(kāi)源工具,進(jìn)行函數(shù)圈復(fù)雜度研究和統(tǒng)計(jì)。
基于之前對(duì)于項(xiàng)目開(kāi)發(fā)者能力水平和軟件圈復(fù)雜度的研究,我們嘗試進(jìn)行數(shù)據(jù)收集分析并構(gòu)建COD階段引入缺陷密度、ACV(C語(yǔ)言技術(shù)&編碼)和圈復(fù)雜度之間的數(shù)學(xué)預(yù)測(cè)模型。
基于ACV和圈復(fù)雜度建立COD引入缺陷模型構(gòu)建的目標(biāo)如下:
1.在項(xiàng)目策劃或者COD階段活動(dòng)之前,項(xiàng)目經(jīng)理參考此模型調(diào)配項(xiàng)目組成員、安排項(xiàng)目級(jí)培訓(xùn),策劃在設(shè)計(jì)階段控制圈復(fù)雜度,并基于此進(jìn)行程序設(shè)計(jì)工作。
2.COD階段開(kāi)始后,項(xiàng)目管理人員可以根據(jù)代碼復(fù)雜度管理表中的相關(guān)要求進(jìn)行實(shí)際圈復(fù)雜度數(shù)據(jù)的收集,并利用此模型進(jìn)行預(yù)測(cè),進(jìn)行COD過(guò)程中的動(dòng)態(tài)編碼控制,適當(dāng)降低系統(tǒng)和程序文件的圈復(fù)雜度。
基于上述的研究目標(biāo)進(jìn)行了建模方法的研究,確定了相應(yīng)的預(yù)測(cè)前提和思路。
1.通過(guò)對(duì)動(dòng)態(tài)PPM中數(shù)據(jù)的敏感度計(jì)算結(jié)果,COD階段的引入缺陷數(shù)對(duì)項(xiàng)目質(zhì)量的敏感度最大,對(duì)項(xiàng)目質(zhì)量目標(biāo)的達(dá)成有較大的影響。
2.同時(shí)根據(jù)相關(guān)專家前期對(duì)COD階段引入缺陷數(shù)及相關(guān)因素的相關(guān)性分析結(jié)論,COD階段引入缺陷數(shù)與代碼規(guī)模、圈復(fù)雜度、開(kāi)發(fā)人員職級(jí)平均值有較強(qiáng)的相關(guān)性。
3.基于上述結(jié)論和成果,考慮選擇使用開(kāi)發(fā)人員的具體關(guān)鍵能力預(yù)測(cè)COD階段缺陷數(shù)量,以期待獲得更加可控的PPM模型,采用回歸分析的方法建立預(yù)測(cè)模型。
在基礎(chǔ)數(shù)據(jù)收集方面,為了保證數(shù)據(jù)的同質(zhì)性,選擇同一業(yè)務(wù)線相關(guān)項(xiàng)目進(jìn)行分析,保證模型的針對(duì)性和有效性。實(shí)際選擇A業(yè)務(wù)線,基于2008年度至2010年度20余個(gè)項(xiàng)目數(shù)據(jù)進(jìn)行分析。 使用MiniTab 15.1軟件中的Pearson計(jì)算方法計(jì)算了上述相關(guān)數(shù)據(jù)的相關(guān)性,最終發(fā)現(xiàn)COD引入缺陷密度、項(xiàng)目平均圈復(fù)雜度和編碼&C能力均值有較強(qiáng)的相關(guān)性,而項(xiàng)目有效代碼行數(shù)與COD引入缺陷密度無(wú)明顯的相關(guān)性。
基于模型建立的思路和統(tǒng)計(jì)分析結(jié)果,初步設(shè)定數(shù)學(xué)模型的公式為:
Y=a+b×X1+c×X2 (2)
其中,Y:COD階段引入缺陷密度;X1:項(xiàng)目平均圈復(fù)雜度;X2:ACV—項(xiàng)目COD階段所有開(kāi)發(fā)人員的關(guān)鍵能力項(xiàng)(編碼&C)的平均值。
在相關(guān)性分析的基礎(chǔ)上,使用MiniTab 15.1進(jìn)行回歸分析,能夠初步得到COD階段引入缺陷密度Y、項(xiàng)目平均圈復(fù)雜度X1和項(xiàng)目COD階段所有開(kāi)發(fā)人員的關(guān)鍵能力項(xiàng)(編碼&C)的平均值X2之間的數(shù)學(xué)關(guān)系。
通過(guò)回歸方法得到最后的回歸方程為:
Y=4.81+1.37×X1-3.17×X2 (3)
從最后的回歸方程中我們可以推斷:
1.項(xiàng)目COD階段所有開(kāi)發(fā)人員的關(guān)鍵能力項(xiàng)(編碼&C)的平均值X2越大,COD階段引入的缺陷密度就越小,那么項(xiàng)目的總體質(zhì)量就會(huì)越好;
2.項(xiàng)目平均圈復(fù)雜度X1越小,COD階段引入的缺陷密度就越小,那么項(xiàng)目的總體質(zhì)量就會(huì)越好。
下面是使用MiniTab 15.1工具進(jìn)行回歸分析的結(jié)果。
利用上述模型我們可以在合適的項(xiàng)目中進(jìn)行應(yīng)用,比如我們可以在項(xiàng)目策劃階段就開(kāi)始使用模型,通過(guò)計(jì)算同類項(xiàng)目的平均圈復(fù)雜度、擬進(jìn)入項(xiàng)目組的開(kāi)發(fā)成員的C&編碼能力水平來(lái)對(duì)項(xiàng)目質(zhì)量進(jìn)行預(yù)測(cè)(COD階段引入缺陷密度)。
如果預(yù)測(cè)的項(xiàng)目質(zhì)量目標(biāo)沒(méi)有達(dá)到客戶和組織的要求,項(xiàng)目經(jīng)理可以根據(jù)情況調(diào)整項(xiàng)目組的成員,將在C&編碼能力方面具有更高水平的人員調(diào)入項(xiàng)目,以便減少在COD階段引入的缺陷數(shù)量,降低COD階段引入缺陷密度。同時(shí),我們還可以在系統(tǒng)設(shè)計(jì)、概要設(shè)計(jì)和詳細(xì)設(shè)計(jì)階段不斷優(yōu)化軟件設(shè)計(jì)水平,通過(guò)降低程序圈復(fù)雜度的方式提升項(xiàng)目質(zhì)量,降低COD階段引入的缺陷數(shù)量和缺陷密度。
在COD階段開(kāi)始之前項(xiàng)目經(jīng)理或者技術(shù)總監(jiān)可以通過(guò)模型預(yù)測(cè)COD階段的缺陷密度,如果發(fā)現(xiàn)項(xiàng)目質(zhì)量存在高風(fēng)險(xiǎn)的問(wèn)題可以提前采取措施進(jìn)行缺陷預(yù)防。
以上提到基于能力的項(xiàng)目質(zhì)量預(yù)測(cè)模型在車載導(dǎo)航軟件開(kāi)發(fā)中具有一定的普遍意義,相關(guān)的分析思路和模型建立的方法可以被應(yīng)用到軟件開(kāi)發(fā)的其他業(yè)務(wù)領(lǐng)域之中。通過(guò)質(zhì)量預(yù)測(cè)模型的建立和應(yīng)用,組織可以不斷定量分析、控制其質(zhì)量目標(biāo)的制定和達(dá)成。
參考文獻(xiàn)
[1] Jamaiah H.Yahaya,Aziz Deraman.Measuring the Unmeasurable Characteristics of Software Product Quality[J].IJACT,2010,2(4):95-106.
[2] Hajar Mat Jani,Salama A. Mostafa.Implementing Case-Based Reasoning Technique to Software Requirements Specifications Quality Analysis[J].IJACT,2011,3(1):23-31.
[3] Zhang Xue-mei,Hoang Pham.An analysis of factors affecting software reliability[J].The Journal of Systems and Software,2000,50(1):43-56.
——本文由豐臨科技整理發(fā)布,內(nèi)容供參考,如有侵權(quán),請(qǐng)聯(lián)系刪除,謝謝!上海豐臨科技有限公司為你提供濁度儀(濁度計(jì))、在線濁度儀、余氯儀、余氯分析儀、工業(yè)在線pH計(jì)、cod測(cè)定儀、pH計(jì)等多種水質(zhì)檢測(cè)儀,水質(zhì)分析儀,歡迎您前來(lái)選購(gòu),豐臨科技竭誠(chéng)為您服務(wù)!
水質(zhì)檢測(cè)分析儀
熱銷儀器
- 細(xì)菌濁度儀WGZ-XT_麥?zhǔn)蠞岫葍x
- 消解器、消解儀
- WSB-3C型臺(tái)式高精度白度儀(白度計(jì))
- JFS-1100高速變頻分散機(jī)
- 筆式酸度計(jì)PH-20
- 筆式酸度計(jì)PH-20W.220W
- PH四氟電極PH耐高溫、耐腐蝕電極
- HX-B系列-手持式總氮快速測(cè)定儀_便攜式總氮檢測(cè)分析儀_HX-B-TN型
- 便攜式雙量程濁度儀WGZ-200B
- WM-8712型鎘在線水質(zhì)監(jiān)測(cè)分析儀
- WM-8718型氟化物水質(zhì)在線自動(dòng)分析儀
- 微量氧溶氧儀_工業(yè)鍋爐水溶解氧檢測(cè)分析儀DOG8218
- WM-8708型六價(jià)鉻水質(zhì)在線自動(dòng)監(jiān)測(cè)分析儀
- CY-CU05型銅水質(zhì)在線自動(dòng)監(jiān)測(cè)分析儀
- 金屬錳檢測(cè)儀_WM8711型錳水質(zhì)在線自動(dòng)監(jiān)測(cè)分析儀
- AG-TN07在線總氮水質(zhì)檢測(cè)分析儀
- AG-TP07型在線總磷水質(zhì)檢測(cè)分析儀
儀器知識(shí)百科
- 濁度計(jì)測(cè)定精煉菜籽油中蠟含量
- 二氧化氯緩釋劑對(duì)畜禽飲用水消毒的應(yīng)用研究
- 濁度計(jì)使用注意事項(xiàng)
- 快速COD分析方法在污水處理中的應(yīng)用
- 水質(zhì)自動(dòng)監(jiān)測(cè)系統(tǒng)的運(yùn)行管理和質(zhì)量控制
- 在線監(jiān)測(cè)儀為礦區(qū)污水排放提供診斷
- 如何將測(cè)量水質(zhì)的電導(dǎo)率轉(zhuǎn)化為濃度
- 水質(zhì)COD測(cè)定過(guò)程中幾個(gè)常見(jiàn)問(wèn)題
- 新時(shí)期加強(qiáng)自來(lái)水水質(zhì)監(jiān)測(cè)的有效策略
- [濁度儀]光纖濁度儀ZD610210在自來(lái)水廠濾后水中的應(yīng)用
- NT8000G/TSS801N-400型在線濁度儀
- 水質(zhì)微量重金屬在線復(fù)合傳感器研究
- 南充市西充河水質(zhì)變化及污染防治探討
- 濁度計(jì)的使用、校準(zhǔn)和標(biāo)定方法
- 濁度儀測(cè)量的濁度與含沙量的關(guān)系分析
- BP神經(jīng)網(wǎng)絡(luò)與粒子群算法的水質(zhì)檢測(cè)評(píng)價(jià)方法
相關(guān)資訊更多>>
- 二氧化氯消毒工藝在中小水廠中的應(yīng)用
- 化學(xué)需氧量(COD)、總有機(jī)碳(TOC)已廣泛應(yīng)用于污廢水工藝處理行業(yè)
- 水中COD的測(cè)定
- 中水回用處理系統(tǒng)投運(yùn)后COD超標(biāo)問(wèn)題分析與解決
- 新時(shí)期加強(qiáng)自來(lái)水水質(zhì)監(jiān)測(cè)的有效策略
- 分光光度計(jì)上測(cè)定吸光度及化學(xué)需氧量值
- 泳池衛(wèi)生情況如何余氯含量高了低了都不行
- 二氧化氯應(yīng)用于工業(yè)循環(huán)水處理中的探討
- 激光光譜技術(shù)的水質(zhì)監(jiān)測(cè)系統(tǒng)研究
- 松北濕地水質(zhì)中糞大腸菌群的測(cè)定
- PAC與PAM聯(lián)用處理低溫低濁度原水
- 生活飲用水中渾濁度指標(biāo)對(duì)余氯消毒效果的影響
- 微波消解―分光光度法測(cè)定廢水中COD
- 濁度是衡量水質(zhì)好壞的重要指標(biāo)之一-出廠水要求濁度<1度(ntu)
- 高溫季節(jié)泥鰍養(yǎng)殖池塘主要水質(zhì)因子變化規(guī)律
- 湖水濁度高光譜定量反演模型