[發(fā)明專利]結(jié)合代碼演化信息構(gòu)造代碼壞味訓(xùn)練數(shù)據(jù)集的方法有效
| 申請?zhí)枺?/td> | 201711365477.X | 申請日: | 2017-12-18 |
| 公開(公告)號: | CN108108168B | 公開(公告)日: | 2021-02-02 |
| 發(fā)明(設(shè)計)人: | 王逸君;周曉聰 | 申請(專利權(quán))人: | 中山大學(xué) |
| 主分類號: | G06F8/41 | 分類號: | G06F8/41;G06N3/08;G06K9/62 |
| 代理公司: | 廣州粵高專利商標(biāo)代理有限公司 44102 | 代理人: | 林麗明 |
| 地址: | 510275 廣東*** | 國省代碼: | 廣東;44 |
| 權(quán)利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 結(jié)合 代碼 演化 信息 構(gòu)造 訓(xùn)練 數(shù)據(jù) 方法 | ||
1.結(jié)合代碼演化信息構(gòu)造代碼壞味訓(xùn)練數(shù)據(jù)集的方法,其特征在于:包括有以下步驟:
A、從網(wǎng)絡(luò)源代碼倉庫中獲取一個軟件的基線版本的源代碼和基線版本之后的對照版本的源代碼;
B、使用代碼壞味自動檢測工具對基線版本和對照版本的源代碼實(shí)體進(jìn)行檢測,并提取基線版本中的變化壞味實(shí)體和無壞味實(shí)體,然后將變化壞味實(shí)體標(biāo)注為具有壞味的實(shí)體,將無壞味實(shí)體標(biāo)注為不具有壞味的實(shí)體;其中變化壞味實(shí)體指的是在基線版本中被工具識別為有壞味而在對照版本中被工具識別為沒有壞味的實(shí)體,而無壞味實(shí)體指的是在基線版本和對照版本中都被工具識別為沒有壞味的實(shí)體;
C、利用基于抽樣的方法,隨機(jī)抽取數(shù)量與變化壞味實(shí)體數(shù)量相當(dāng)?shù)臒o壞味實(shí)體;
D、計算變化壞味實(shí)體和無壞味實(shí)體在基線版本源代碼中的度量特征;
E、實(shí)體包括類和方法兩種粒度上的實(shí)體,實(shí)體全類名或方法名作為標(biāo)識符,變化壞味實(shí)體和無壞味實(shí)體的標(biāo)識符、度量特征、標(biāo)注組成變化壞味訓(xùn)練數(shù)據(jù)集;
F、利用遺傳算法對變化壞味訓(xùn)練數(shù)據(jù)集內(nèi)的實(shí)體的度量特征進(jìn)行降維,降維后的變化壞味實(shí)體和無壞味實(shí)體組成代碼壞味訓(xùn)練數(shù)據(jù)集。
2.根據(jù)權(quán)利要求1所述的結(jié)合代碼演化信息構(gòu)造代碼壞味訓(xùn)練數(shù)據(jù)集的方法,其特征在于:步驟A所選的基線版本和對照版本之間需要經(jīng)歷至少一個主版本號變更或多個次版本號變更。
3.根據(jù)權(quán)利要求1所述的結(jié)合代碼演化信息構(gòu)造代碼壞味訓(xùn)練數(shù)據(jù)集的方法,其特征在于:所述步驟C采用不充分抽樣對無壞味實(shí)體進(jìn)行隨機(jī)抽取,抽取的無壞味實(shí)體數(shù)量與變化壞味實(shí)體數(shù)量的比例在1∶1到2∶1之間。
4.根據(jù)權(quán)利要求1所述的結(jié)合代碼演化信息構(gòu)造代碼壞味訓(xùn)練數(shù)據(jù)集的方法,其特征在于:所述步驟D計算的度量特征包括軟件規(guī)模度量、內(nèi)聚度度量、耦合度度量和繼承度量。
5.根據(jù)權(quán)利要求1~4任一項所述的結(jié)合代碼演化信息構(gòu)造代碼壞味訓(xùn)練數(shù)據(jù)集的方法,其特征在于:所述步驟F進(jìn)行降維的具體過程如下:
S1.使用二進(jìn)制序列對變化壞味訓(xùn)練數(shù)據(jù)集內(nèi)的變化壞味實(shí)體或無壞味實(shí)體的度量特征進(jìn)行表示,其中,0代表不選擇度量特征中的某一度量,1代表選擇度量特征中的某一度量;
S2.為變化壞味訓(xùn)練數(shù)據(jù)集內(nèi)的變化壞味實(shí)體和無壞味實(shí)體的度量特征初始化一個二進(jìn)制序列種群;
S3.將二進(jìn)制序列種群內(nèi)的二進(jìn)制序列個體作為輸入,利用有監(jiān)督的機(jī)器學(xué)習(xí)分類算法,建立代碼壞味預(yù)測模型,使用十折交叉法計算預(yù)測模型的準(zhǔn)確率作為個體的適應(yīng)度值;
S4.判斷二進(jìn)制序列個體的平均準(zhǔn)確率是否已經(jīng)處于穩(wěn)定的階段,若是,則輸出適應(yīng)度值最高的二進(jìn)制序列個體作為最優(yōu)的二進(jìn)制序列對實(shí)體的度量特征進(jìn)行降維;若否則采用輪盤賭選擇親代,通過均勻交叉及位翻轉(zhuǎn)變異產(chǎn)生新的二進(jìn)制序列個體,然后重復(fù)步驟S3;
其中均勻交叉指的是后代二進(jìn)制序列個體的每個位都有50%的機(jī)會來自第一個親代或其第二個親代,位翻轉(zhuǎn)變異指的是二進(jìn)制序列個體的每一位在變異時是以一定變異率由0翻轉(zhuǎn)到1,或從1翻轉(zhuǎn)到0。
6.根據(jù)權(quán)利要求5所述的結(jié)合代碼演化信息構(gòu)造代碼壞味訓(xùn)練數(shù)據(jù)集的方法,其特征在于:所述步驟B使用到的代碼壞味自動檢測工具為iPlasma、inFusion、JDeodorant、CheckStyle、PMD的一種。
該專利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專利權(quán)人授權(quán)。該專利全部權(quán)利屬于中山大學(xué),未經(jīng)中山大學(xué)許可,擅自商用是侵權(quán)行為。如果您想購買此專利、獲得商業(yè)授權(quán)和技術(shù)合作,請聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201711365477.X/1.html,轉(zhuǎn)載請聲明來源鉆瓜專利網(wǎng)。
- 一種軟件體系結(jié)構(gòu)并行演化沖突的檢測方法
- 基于Agent的動態(tài)演化系統(tǒng)及方法
- 粒子刻蝕或沉積演化仿真方法、裝置和計算機(jī)可讀介質(zhì)
- 一種基于Petri網(wǎng)的Web服務(wù)組合演化方法
- 一種基于演化切片的演化影響集預(yù)測方法
- 一種挖掘重疊社區(qū)動態(tài)演化關(guān)聯(lián)規(guī)則的方法
- 一種智能電網(wǎng)發(fā)電側(cè)微分演化博弈競價方法
- 基于混合結(jié)構(gòu)的指揮控制超網(wǎng)絡(luò)動態(tài)演化模型構(gòu)建方法
- 一種基于頭腦風(fēng)暴優(yōu)化算法求解演化博弈問題的方法
- 基于演化變點(diǎn)的社會網(wǎng)絡(luò)演化分析方法
- 信息記錄介質(zhì)、信息記錄方法、信息記錄設(shè)備、信息再現(xiàn)方法和信息再現(xiàn)設(shè)備
- 信息記錄裝置、信息記錄方法、信息記錄介質(zhì)、信息復(fù)制裝置和信息復(fù)制方法
- 信息記錄裝置、信息再現(xiàn)裝置、信息記錄方法、信息再現(xiàn)方法、信息記錄程序、信息再現(xiàn)程序、以及信息記錄介質(zhì)
- 信息記錄裝置、信息再現(xiàn)裝置、信息記錄方法、信息再現(xiàn)方法、信息記錄程序、信息再現(xiàn)程序、以及信息記錄介質(zhì)
- 信息記錄設(shè)備、信息重放設(shè)備、信息記錄方法、信息重放方法、以及信息記錄介質(zhì)
- 信息存儲介質(zhì)、信息記錄方法、信息重放方法、信息記錄設(shè)備、以及信息重放設(shè)備
- 信息存儲介質(zhì)、信息記錄方法、信息回放方法、信息記錄設(shè)備和信息回放設(shè)備
- 信息記錄介質(zhì)、信息記錄方法、信息記錄裝置、信息再現(xiàn)方法和信息再現(xiàn)裝置
- 信息終端,信息終端的信息呈現(xiàn)方法和信息呈現(xiàn)程序
- 信息創(chuàng)建、信息發(fā)送方法及信息創(chuàng)建、信息發(fā)送裝置





