[發(fā)明專利]隱式編程規(guī)則過濾方法及裝置有效
| 申請?zhí)枺?/td> | 201810953480.1 | 申請日: | 2018-08-21 |
| 公開(公告)號: | CN109117129B | 公開(公告)日: | 2021-11-19 |
| 發(fā)明(設(shè)計(jì))人: | 崔展齊;鄭麗偉;馬旭;謝章偉 | 申請(專利權(quán))人: | 北京信息科技大學(xué) |
| 主分類號: | G06F8/33 | 分類號: | G06F8/33 |
| 代理公司: | 北京路浩知識產(chǎn)權(quán)代理有限公司 11002 | 代理人: | 王瑩;李相雨 |
| 地址: | 100192 北*** | 國省代碼: | 北京;11 |
| 權(quán)利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 編程 規(guī)則 過濾 方法 裝置 | ||
本發(fā)明實(shí)施例提供的一種隱式編程規(guī)則過濾方法及裝置,通過獲取目標(biāo)隱式編程規(guī)則,對所述目標(biāo)隱式編程規(guī)則進(jìn)行提取獲得規(guī)則信息,根據(jù)所述規(guī)則信息獲得向量化規(guī)則信息,根據(jù)所述向量化規(guī)則信息進(jìn)行過濾判斷,獲得過濾結(jié)果,做到不需要使用程序代碼信息,可自動對候選隱式編程規(guī)則進(jìn)行過濾,確認(rèn)誤報(bào)和真實(shí)的隱式編程規(guī)則,降低人工確認(rèn)候選隱式編程規(guī)則的開銷,從而有效提高現(xiàn)有隱式編程規(guī)則挖掘方法的實(shí)用性。
技術(shù)領(lǐng)域
本發(fā)明涉及信息處理技術(shù)領(lǐng)域,尤其涉及一種隱式編程規(guī)則過濾方法及裝置。
背景技術(shù)
程序中通常會隱含大量缺少規(guī)范文檔描述的編程規(guī)則,例如:關(guān)閉文件方法fclose()應(yīng)該在打開文件方法fopen()之后調(diào)用、在調(diào)用字符串拷貝方法strcpy()之前,應(yīng)該檢查是否存在緩沖區(qū)溢出風(fēng)險(xiǎn)等。此類規(guī)則數(shù)量眾多,且受到開發(fā)時(shí)間和進(jìn)度的限制,軟件工程師很少使用規(guī)范細(xì)致的文檔來描述此類規(guī)則。此外,部分編程規(guī)則隱藏較深,采用傳統(tǒng)的代碼評審等方法難以發(fā)現(xiàn)違反此類規(guī)則的缺陷。如果程序員在編程過程中忽視或違反了這類規(guī)則,則可能會引發(fā)軟件缺陷。
隱式編程規(guī)則可用于缺陷檢測、方法/參數(shù)推薦、自動生成文檔等,具有較高的應(yīng)用價(jià)值。現(xiàn)有的隱式編程規(guī)則生成技術(shù)主要采用數(shù)據(jù)挖掘的方法分析方法執(zhí)行序列、源代碼、數(shù)據(jù)流等,從中挖掘出候選隱式編程規(guī)則,其形式可以為關(guān)聯(lián)規(guī)則、pre/post條件規(guī)約、行為模型調(diào)用規(guī)約等。通過各種方法挖掘出的候選隱式編程規(guī)則在使用之前都需要人工確認(rèn),這一過程開銷巨大且易引入錯(cuò)誤。例如:PR-Miner從Linux中挖掘出32283條隱式編程規(guī)則,若不對其進(jìn)行篩選,直接用于缺陷檢測,則即使用過程間分析技術(shù)對疑似缺陷進(jìn)行了核查和約減,仍報(bào)告了1447個(gè)疑似缺陷,難以完成人工確認(rèn);WN Miner報(bào)告的758條隱式編程規(guī)則中,經(jīng)確認(rèn)有683條為誤報(bào),誤報(bào)率高達(dá)90%。因此,對隱式編程規(guī)則挖掘工具報(bào)告的候選隱式編程規(guī)則進(jìn)行自動確認(rèn)和過濾,顯得尤為必要。
發(fā)明內(nèi)容
本發(fā)明提供一種隱式編程規(guī)則過濾方法及裝置,用于解決現(xiàn)有技術(shù)中過濾隱式編程規(guī)則效率低誤報(bào)率高的問題。
第一方面,本發(fā)明實(shí)施例提供一種隱式編程規(guī)則過濾方法,包括:
獲取目標(biāo)隱式編程規(guī)則,對所述目標(biāo)隱式編程規(guī)則進(jìn)行提取獲得規(guī)則信息;
根據(jù)所述規(guī)則信息獲得向量化規(guī)則信息;
根據(jù)所述向量化規(guī)則信息進(jìn)行過濾判斷,獲得過濾結(jié)果。
可選地,所述對所述目標(biāo)隱式編程規(guī)則進(jìn)行提取獲得規(guī)則信息,包括:
對所述目標(biāo)隱式編程規(guī)則進(jìn)行提取獲得規(guī)則元素,所述規(guī)則元素包括方法名和變量名;
對所述規(guī)則元素中的每個(gè)元素進(jìn)行切分獲得對應(yīng)的單詞集合;
根據(jù)每個(gè)元素的單詞集合獲得所述規(guī)則信息。
可選地,所述根據(jù)所述規(guī)則信息獲得向量化規(guī)則信息,包括:
對每個(gè)元素對應(yīng)的單詞集合中的單詞進(jìn)行向量化處理,獲得對應(yīng)的單詞向量;
根據(jù)每個(gè)元素對應(yīng)的單詞集合中所有單詞向量采用第一計(jì)算公式獲得每個(gè)元素對應(yīng)的元素向量;
根據(jù)所有元素向量獲得所述向量化規(guī)則信息。
可選地,根據(jù)所述向量化規(guī)則信息進(jìn)行過濾判斷,獲得過濾結(jié)果,包括:
根據(jù)所述元素向量和預(yù)設(shè)的第二計(jì)算公式獲取各個(gè)元素之間的歐式距離;
將各元素作為節(jié)點(diǎn),根據(jù)各元素之間的歐式距離獲得各元素內(nèi)最短哈密頓回路距離;
根據(jù)所述最短哈密頓回路距離和預(yù)設(shè)的第三計(jì)算公式獲得目標(biāo)隱式編程規(guī)則中元素間的平均距離;
根據(jù)所述平均距離和預(yù)設(shè)閾值進(jìn)行過濾判斷,獲得過濾結(jié)果。
該專利技術(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/201810953480.1/2.html,轉(zhuǎn)載請聲明來源鉆瓜專利網(wǎng)。
- 規(guī)則發(fā)現(xiàn)程序、規(guī)則發(fā)現(xiàn)處理和規(guī)則發(fā)現(xiàn)裝置
- 不規(guī)則瓶蓋
- 相關(guān)規(guī)則分析裝置以及相關(guān)規(guī)則分析方法
- 分析規(guī)則調(diào)整裝置、分析規(guī)則調(diào)整系統(tǒng)以及分析規(guī)則調(diào)整方法
- 規(guī)則抽取方法和規(guī)則抽取設(shè)備
- 終端規(guī)則引擎裝置、終端規(guī)則運(yùn)行方法
- 布(規(guī)則)
- 規(guī)則呈現(xiàn)方法、存儲介質(zhì)和規(guī)則呈現(xiàn)裝置
- 可編寫規(guī)則配置模塊、規(guī)則生成系統(tǒng)、及規(guī)則管理平臺
- 不規(guī)則圍棋





