[發明專利]一種基于深度學習的面向對象程序方法命名異味檢測方法在審
| 申請號: | 202210059016.4 | 申請日: | 2022-01-18 |
| 公開(公告)號: | CN114398076A | 公開(公告)日: | 2022-04-26 |
| 發明(設計)人: | 吳小囡;蘇航;高紅雨 | 申請(專利權)人: | 北京工業大學 |
| 主分類號: | G06F8/72 | 分類號: | G06F8/72;G06F8/41;G06N3/04;G06N3/08 |
| 代理公司: | 北京思海天達知識產權代理有限公司 11203 | 代理人: | 沈波 |
| 地址: | 100124 *** | 國省代碼: | 北京;11 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 基于 深度 學習 面向 對象 程序 方法 命名 異味 檢測 | ||
本發明公開了一種基于深度學習的面向對象程序方法命名異味檢測方法,將方法名作為方法體和方法上下文信息的“翻譯”序列,即從輸入的方法體和方法上下文信息序列中翻譯出合適的方法名以檢測方法命名是否有異味。發明具體分為五個步驟,分別是初始化、信息提取、預訓練、預處理和方法名預測模型構建。本發明綜合考慮了方法名所依賴的上下文信息和方法體信息,并根據兩者結構特點應用了不同的處理方式。此外在模型的設計上也綜合考慮了輸入信息結構的特點。
技術領域
本發明涉及計算機軟件代碼質量分析領域,具體涉及一種基于深度學習的方法命名異味檢測。
背景技術
在軟件開發的過程中,開發人員通常將注意力放在代碼能否成功運行上,經常會忽視可能會引起軟件質量問題的一類代碼。代碼中的任何可能導致深層次問題的癥狀被稱作代碼異味。幾乎現有的代碼異味都沒有被很好的解決,其中就包含困惑的名稱,即有關標識符命名異味。命名異味主要指的是代碼中的標識符如類名、方法名和變量名中出現的令人困惑或者模糊的名稱。此類命名的特點是無法清晰明了的概括修飾變量的作用。據相關研究發現一個軟件系統源代碼中70%都由標識符組成,且在實踐中多數開發人員往往忽視對文檔的編寫,而不得不需要閱讀源碼或者注釋來理解代碼。一個好的標識符能夠減輕程序員在軟件維護方面的負擔,減少軟件后期維護的成本。因此代碼中標識符的正確命名對于之后軟件的升級維護都有著一定的促進作用。
目前,針對現有的代碼命名異味,研究者們提出了眾多的處理方法,傳統的方法如基于邏輯/規則、基于上下文/反饋只能簡單的從其語法結構判斷或者采用半自動識別命名異味。隨著深度學習應用到該領域,自動化檢測命名的語義信息成為了可能。基于深度學習的方法區別集中在輸入信息以及模型上。在輸入信息中,幾乎所有的方法都考慮到方法體。一部分方法會嘗試加入新的信息,比如類名,類中成員變量名稱等,也都取得了較好的結果。但是綜合來看,這部分方法所添加的信息比較零碎,都沒有充分有效利用方法體之外的附加信息。在輸入方法體的結構上,大多數的方法采用了保留方法體原有順序的策略,忽略了代碼中的結構信息。在模型的設計上,現有的深度學習模型在最終效果上提升的空間還很大。綜上所述,雖然現有的深度學習方法在各個方面較之過去有了一定的提升,但是其效率還有很大的提升空間。為了更為準確的檢測出方法命名中的異味,本發明提出了一種基于TBCNN+雙向LSTM神經網絡模型的面向對象程序方法的命名異味檢測。
發明內容
為了提高方法命名異味檢測的準確度,本發明提出了一種基于TBCNN+雙向LSTM神經網絡模型的面向對象程序方法的命名異味檢測。該方法可以通過方法名的預測提高識別的準確度。
為了實現本發明的目的,采用的技術方案概述如下:
一種基于TBCNN+雙向LSTM神經網絡模型的面向對象程序方法的命名異味檢測方法,其輸入為代碼數據集,輸出為是否包含異味結果。其特征主要包括以下步驟:
步驟1:初始化
初始化本方法需要的參數,如下:
Ml:方法上下文長度的最大值,默認為50,當長度大于max_len時,做截斷處理;
Ms:一個方法的抽象語法樹所包含子樹的最大值,默認為50;
Mn:子樹中所包含的節點數量的最大值,默認值為70;
Mc:子樹中一個節點所包含的孩子節點數量的最大值,默認為10;
Bs:一次讀入數據大小,即批處理大小,默認128;
Nf:表示特征向量的維度,默認100;
Es:訓練性能不再提升時,繼續幾輪后停止訓練,默認值5;
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于北京工業大學,未經北京工業大學許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/202210059016.4/2.html,轉載請聲明來源鉆瓜專利網。
- 上一篇:一種提高鋼板凸型瓢曲的矯直方法
- 下一篇:一種內窺鏡節育避孕裝置





