最新的毛片基地免费,国产国语一级毛片,免费国产成人高清在线电影,中天堂国产日韩欧美,中国国产aa一级毛片,国产va欧美va在线观看,成人不卡在线

基于代碼克隆分析的自動駕駛軟件缺陷預(yù)測方法及系統(tǒng)

文檔序號:41950386發(fā)布日期:2025-05-16 14:09閱讀:2來源:國知局
基于代碼克隆分析的自動駕駛軟件缺陷預(yù)測方法及系統(tǒng)

本發(fā)明屬于軟件缺陷預(yù)測領(lǐng)域,具體涉及一種基于代碼克隆分析的自動駕駛軟件缺陷預(yù)測方法及系統(tǒng)。


背景技術(shù):

1、近年來,隨著軟件系統(tǒng)復(fù)雜度的不斷增加,軟件缺陷預(yù)測技術(shù)已成為軟件工程研究的重點領(lǐng)域。傳統(tǒng)的軟件缺陷預(yù)測方法主要依賴于靜態(tài)代碼分析和軟件度量,如圈復(fù)雜度、代碼行數(shù)等,對軟件進(jìn)行多粒度(如模塊、方法、類)的缺陷預(yù)測分析。這些方法通常采用決策樹、支持向量機、邏輯回歸、樸素貝葉斯等機器學(xué)習(xí)算法。然而,這些傳統(tǒng)方法在處理大規(guī)模、高復(fù)雜度的軟件系統(tǒng)時往往顯得力不從心。

2、隨著人工智能技術(shù)的快速發(fā)展,自動駕駛成為科技領(lǐng)域的焦點。自動駕駛軟件作為一個典型的大規(guī)模、高復(fù)雜度、安全攸關(guān)的軟件系統(tǒng),其質(zhì)量直接關(guān)系到人身安全和財產(chǎn)安全。然而,自動駕駛軟件同樣面臨著軟件缺陷的挑戰(zhàn)。隨著其規(guī)模和復(fù)雜度的不斷增加,軟件維護(hù)的難度也隨之上升。在開發(fā)迭代過程中,軟件缺陷的產(chǎn)生似乎不可避免,而這些缺陷可能導(dǎo)致災(zāi)難性后果,且修復(fù)成本高昂。

3、在軟件開發(fā)中,復(fù)制現(xiàn)有的代碼片段并將它們粘貼到代碼的其他部分中是一種常見的行為,是代碼重用的一種體現(xiàn),復(fù)制的代碼稱為代碼克隆。已有研究表明,自動駕駛軟件中代碼克隆占比高達(dá)20%。雖然代碼克隆可以提高開發(fā)效率,但也會在一定程度上影響軟件質(zhì)量。然而,現(xiàn)有的缺陷預(yù)測方法很少考慮代碼克隆對軟件缺陷的影響。

4、此外,傳統(tǒng)的缺陷預(yù)測方法大多針對粗粒度的軟件單元,這在實際應(yīng)用中可能會耗費開發(fā)者大量的時間和精力進(jìn)行缺陷定位。而更細(xì)粒度的預(yù)測(如文件級別)雖然可以提高精確度,但如何在保證預(yù)測準(zhǔn)確性的同時提高效率仍是一個挑戰(zhàn)。


技術(shù)實現(xiàn)思路

1、本發(fā)明要解決的技術(shù)問題是:提供一種基于代碼克隆分析的自動駕駛軟件缺陷預(yù)測方法及系統(tǒng),能夠更精準(zhǔn)地定位缺陷,同時保證度量提取的便利性。

2、本發(fā)明為解決上述技術(shù)問題所采取的技術(shù)方案為:

3、作為本發(fā)明的第一方面,本發(fā)明提供一種基于代碼克隆分析的自動駕駛軟件缺陷預(yù)測方法,包括:

4、將缺陷預(yù)測對象克隆到本地;缺陷預(yù)測對象為自動駕駛軟件;

5、提取缺陷預(yù)測對象中的軟件度量特征;

6、設(shè)計和提取缺陷預(yù)測對象中各個文件的代碼克隆特征;

7、根據(jù)歷史提交記錄,對缺陷預(yù)測對象中的各個文件進(jìn)行缺陷標(biāo)記,標(biāo)記后的文件作為訓(xùn)練集;

8、將各個文件的代碼克隆特征和軟件度量特征作為特征集合,采用隨機森林算法構(gòu)建缺陷預(yù)測模型,利用訓(xùn)練集對缺陷預(yù)測模型進(jìn)行訓(xùn)練,直至達(dá)到訓(xùn)練要求;

9、將來自缺陷預(yù)測對象的新的文件,輸入到已訓(xùn)練好的缺陷預(yù)測模型進(jìn)行缺陷預(yù)測。

10、按上述方法,軟件度量特征利用靜態(tài)代碼分析軟件提?。?/p>

11、軟件度量特征包括代碼行數(shù)、總行數(shù)、圈復(fù)雜度、扇入、扇出與六項ck套件指標(biāo);其中,代碼行數(shù)不包含空白行和注釋行;代碼總行數(shù)包含空白行和注釋行。六項ck套件指標(biāo)包括wmc-類的加權(quán)方法數(shù)、dit-繼承樹的深度、noc-類的直接子類數(shù)、cbo-對象間的耦合度、rfc-類的響應(yīng)集的大小、lcom-方法內(nèi)聚性的缺失。

12、按上述方法,代碼克隆特征通過以下方式得到:

13、利用克隆代碼檢測軟件提取缺陷預(yù)測對象中的克隆代碼,然后進(jìn)行分析和計算,得到的代碼克隆特征包括克隆代碼行數(shù)、克隆代碼塊數(shù)、克隆代碼行數(shù)占比、克隆方法數(shù)、克隆方法數(shù)占比。

14、按上述方法,在計算克隆代碼行數(shù)時,對于存在于同一文件中的重復(fù)克隆代碼段,采用并集的方法來計算;

15、克隆代碼行數(shù)占比為文件中的克隆代碼行數(shù)占文件中的代碼總行數(shù)的百分比。

16、按上述方法,在計算克隆代碼塊時,將有交集的克隆代碼片段視為一個完整的克隆代碼塊。

17、按上述方法,在計算克隆方法數(shù)時,在本地配置tree-sitter庫及相關(guān)依賴,對文件進(jìn)行解析生成語法解析樹,統(tǒng)計各個文件包含的所有方法名、各方法的起始代碼行和終止代碼行;

18、判斷:克隆代碼段的起始行是否大于等于文件中某個方法的起始行,并且克隆代碼段的終止行是否小于等于該方法的終止行;若有方法尚未被統(tǒng)計,則認(rèn)為該方法涉及到代碼克隆;

19、在滿足以上條件的情況下,將該文件中的克隆方法數(shù)加一,并將該方法標(biāo)記為已統(tǒng)計。

20、按上述方法,在利用訓(xùn)練集對缺陷預(yù)測模型進(jìn)行訓(xùn)練之前,對訓(xùn)練集中的數(shù)據(jù)進(jìn)行預(yù)處理,預(yù)處理包括缺失值處理、異常值檢測和特征縮放;

21、利用resample方法,采用隨機抽樣并替換的策略來創(chuàng)建新樣本,得到缺陷文件和非缺陷文件比例范圍在一定誤差范圍內(nèi)的均衡訓(xùn)練集。

22、按上述方法,所述的缺陷預(yù)測模型采用隨機森林算法構(gòu)建。

23、按上述方法,在構(gòu)建缺陷預(yù)測模型時,采用主成分分析法對特征集合進(jìn)行數(shù)據(jù)降維處理,采用降維后的數(shù)據(jù)集合構(gòu)建缺陷預(yù)測模型。

24、作為本發(fā)明的第二方面,本發(fā)明提供一種基于代碼克隆分析的自動駕駛軟件缺陷預(yù)測系統(tǒng),包括:

25、克隆模塊,用于將缺陷預(yù)測對象克隆到本地;缺陷預(yù)測對象為自動駕駛軟件;

26、代碼克隆特征提取模塊,用于設(shè)計和提取缺陷預(yù)測對象中各個文件的代碼克隆特征;

27、軟件度量特征提取模塊,用于提取缺陷預(yù)測對象中的軟件度量特征;

28、訓(xùn)練集模塊,用于根據(jù)歷史提交記錄,對缺陷預(yù)測對象中的各個文件進(jìn)行缺陷標(biāo)記,標(biāo)記后的文件作為訓(xùn)練集;

29、缺陷預(yù)測模型構(gòu)建模塊,用于將各個文件的代碼克隆特征和軟件度量特征作為特征集合,采用隨機森林算法構(gòu)建缺陷預(yù)測模型,利用訓(xùn)練集對缺陷預(yù)測模型進(jìn)行訓(xùn)練,直至達(dá)到訓(xùn)練要求;

30、缺陷預(yù)測模塊,用于將來自缺陷預(yù)測對象的新的文件,輸入到已訓(xùn)練好的缺陷預(yù)測模型進(jìn)行缺陷預(yù)測。

31、本發(fā)明的有益效果為:

32、1、充分利用了自動駕駛軟件中普遍存在的代碼克隆現(xiàn)象,引入代碼克隆特征,與軟件度量特征一起作為缺陷預(yù)測模型的特征,同時融合歷史提交記錄中的缺陷結(jié)構(gòu),構(gòu)建更全面、更有代表性的特征集,提升自動駕駛軟件缺陷預(yù)測的精度;聚焦于文件級別的缺陷預(yù)測,比傳統(tǒng)的粗粒度預(yù)測更能精準(zhǔn)地定位缺陷,同時保證了度量提取的便利性,在精度和效率之間取得了平衡。

33、2、采用十折交叉驗證對缺陷預(yù)測模型進(jìn)行性能評估,選擇隨機森林算法構(gòu)建缺陷預(yù)測模型,進(jìn)一步提高缺陷預(yù)測的準(zhǔn)確度。



技術(shù)特征:

1.一種基于代碼克隆分析的自動駕駛軟件缺陷預(yù)測方法,其特征在于:包括:

2.根據(jù)權(quán)利要求1所述的基于代碼克隆分析的文件級缺陷預(yù)測方法,其特征在于:軟件度量特征利用靜態(tài)代碼分析軟件提取;

3.根據(jù)權(quán)利要求1所述的基于代碼克隆分析的文件級缺陷預(yù)測方法,其特征在于:代碼克隆特征通過以下方式得到:

4.根據(jù)權(quán)利要求3所述的基于代碼克隆分析的文件級缺陷預(yù)測方法,其特征在于:在計算克隆代碼行數(shù)時,對于存在于同一文件中的重復(fù)克隆代碼段,采用并集的方法來計算;

5.根據(jù)權(quán)利要求3所述的基于代碼克隆分析的文件級缺陷預(yù)測方法,其特征在于:在計算克隆代碼塊時,將有交集的克隆代碼片段視為一個完整的克隆代碼塊。

6.根據(jù)權(quán)利要求3所述的基于代碼克隆分析的文件級缺陷預(yù)測方法,其特征在于:在計算克隆方法數(shù)時,在本地配置tree-sitter庫及相關(guān)依賴,對文件進(jìn)行解析生成語法解析樹,統(tǒng)計各個文件包含的所有方法名、各方法的起始代碼行和終止代碼行;

7.根據(jù)權(quán)利要求1所述的基于代碼克隆分析的文件級缺陷預(yù)測方法,其特征在于:在利用訓(xùn)練集對缺陷預(yù)測模型進(jìn)行訓(xùn)練之前,對訓(xùn)練集中的數(shù)據(jù)進(jìn)行預(yù)處理,預(yù)處理包括缺失值處理、異常值檢測和特征縮放;

8.根據(jù)權(quán)利要求1所述的基于代碼克隆分析的文件級缺陷預(yù)測方法,其特征在于:所述的缺陷預(yù)測模型采用隨機森林算法構(gòu)建。

9.根據(jù)權(quán)利要求1所述的基于代碼克隆分析的文件級缺陷預(yù)測方法,其特征在于:在構(gòu)建缺陷預(yù)測模型時,采用主成分分析法對特征集合進(jìn)行數(shù)據(jù)降維處理,采用降維后的數(shù)據(jù)集合構(gòu)建缺陷預(yù)測模型。

10.一種基于代碼克隆分析的自動駕駛軟件缺陷預(yù)測系統(tǒng),其特征在于:包括:


技術(shù)總結(jié)
本發(fā)明提供一種基于代碼克隆分析的自動駕駛軟件缺陷預(yù)測方法及系統(tǒng),所述的方法包括:將缺陷預(yù)測對象克隆到本地;缺陷預(yù)測對象為自動駕駛軟件;設(shè)計和提取缺陷預(yù)測對象中各個文件的代碼克隆特征;提取缺陷預(yù)測對象中的軟件度量特征;根據(jù)歷史提交記錄,對缺陷預(yù)測對象中的各個文件進(jìn)行缺陷標(biāo)記,標(biāo)記后的文件作為訓(xùn)練集;將各個文件的代碼克隆特征和軟件度量特征作為特征集合,構(gòu)建缺陷預(yù)測模型,利用訓(xùn)練集對缺陷預(yù)測模型進(jìn)行訓(xùn)練,直至達(dá)到訓(xùn)練要求;將來自缺陷預(yù)測對象的新的文件,輸入到已訓(xùn)練好的缺陷預(yù)測模型進(jìn)行缺陷預(yù)測。本發(fā)明引入代碼克隆特征,構(gòu)建更全面的特征集,提升自動駕駛軟件缺陷預(yù)測的精度。

技術(shù)研發(fā)人員:莫然,周宸怡
受保護(hù)的技術(shù)使用者:華中師范大學(xué)
技術(shù)研發(fā)日:
技術(shù)公布日:2025/5/15
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1