[發(fā)明專利]一種基于程序分析和神經(jīng)網(wǎng)絡(luò)的注釋定位方法在審
| 申請?zhí)枺?/td> | 201911321441.0 | 申請日: | 2019-12-19 |
| 公開(公告)號: | CN111104159A | 公開(公告)日: | 2020-05-05 |
| 發(fā)明(設(shè)計)人: | 張衛(wèi)豐;李小滿;周國強(qiáng);王子元;張迎周 | 申請(專利權(quán))人: | 南京郵電大學(xué) |
| 主分類號: | G06F8/73 | 分類號: | G06F8/73 |
| 代理公司: | 暫無信息 | 代理人: | 暫無信息 |
| 地址: | 210023 *** | 國省代碼: | 江蘇;32 |
| 權(quán)利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 一種 基于 程序 分析 神經(jīng)網(wǎng)絡(luò) 注釋 定位 方法 | ||
本發(fā)明為一種基于程序分析和神經(jīng)網(wǎng)絡(luò)的注釋定位方法,步驟如下:首先構(gòu)建需要分析的項(xiàng)目;提取Java項(xiàng)目中的每個方法的注釋,進(jìn)行人工標(biāo)注類別,構(gòu)建注釋分類器的訓(xùn)練集;訓(xùn)練注釋分類器,對注釋進(jìn)行分類,提取其中描述方法實(shí)現(xiàn)細(xì)節(jié)的注釋;獲取每個方法體內(nèi)的所有變量;將方法里的變量和方法的注釋進(jìn)行匹配,找出注釋里存在的變量;根據(jù)注釋里的變量從方法體內(nèi)提取與之相關(guān)的代碼片段,構(gòu)建注釋定位模型的訓(xùn)練集;訓(xùn)練注釋定位模型,并且通過該模型來計算注釋與代碼片段的相似度,以此來構(gòu)建代碼與注釋之間的映射關(guān)系。本發(fā)明主要將注釋與其對應(yīng)的代碼進(jìn)行關(guān)聯(lián),可以幫助開發(fā)人員理解代碼功能,提高開發(fā)效率。
技術(shù)領(lǐng)域
本發(fā)明屬于軟件工程領(lǐng)域,尤其涉及一種基于程序分析和神經(jīng)網(wǎng)絡(luò)的注釋定位方法,主要對源代碼中的代碼和注釋進(jìn)行提取,通過神經(jīng)網(wǎng)絡(luò)構(gòu)建映射關(guān)系。
背景技術(shù)
隨著軟件開發(fā)過程不斷復(fù)雜化,開發(fā)人員之間的協(xié)作變得更加重要,一個項(xiàng)目的開發(fā)往往需要多名開發(fā)人員共同協(xié)作,經(jīng)常需要與其他開發(fā)人員進(jìn)行交互,或調(diào)用別的開發(fā)人員所提供的接口來進(jìn)行協(xié)作開發(fā)。在開發(fā)過程中也可能伴隨著人員的更換,在項(xiàng)目交接的過程中需要閱讀其他開發(fā)人員所編寫的代碼來理解業(yè)務(wù)功能。因此,正確理解已有的API就十分重要,能提高開發(fā)效率減少引入重復(fù)的BUG,為了理解程序,開發(fā)人員主要是通過閱讀代碼中已有的注釋,來了解代碼所要表達(dá)的意圖。
高質(zhì)量的代碼注釋可以準(zhǔn)確的說明代碼的核心功能,減少維護(hù)人員理解代碼的時間。不過開發(fā)過程中,雖然往往會要求開發(fā)人員對方法或變量添加注釋進(jìn)行說明,并以此生成維護(hù)文檔。但是因?yàn)榫帉懻_且高質(zhì)量的注釋成本太高,因此開發(fā)人員傾向于不添加注釋,或者僅從自己的角度出發(fā),編寫方便自己理解的注釋,從而導(dǎo)致代碼注釋的可讀性很差,無法確定所寫的注釋具體描述的是哪一段代碼,需要花費(fèi)更多的精力來理解代碼。
針對這些問題的一個有效解決方案是在軟件開發(fā)人員閱讀代碼時,可以將每一條注釋定位到具體的一段代碼。這種定位功能,可以幫助開發(fā)人員更好地理解代碼的功能,從而提高開發(fā)的效率和準(zhǔn)確性。但是目前還沒有這一項(xiàng)注釋定位技術(shù),因此,本發(fā)明的主要目標(biāo)是研究一種能夠自動生成注釋與代碼之間的定位信息,幫助開發(fā)者理解代碼,更好地完成開發(fā)任務(wù)。
發(fā)明內(nèi)容
本發(fā)明的目的是針對現(xiàn)有問題,提出一種基于程序分析和神經(jīng)網(wǎng)絡(luò)的注釋定位方法,以解決軟件開發(fā)中由于書寫不規(guī)范而造成代碼可讀性差的問題。本發(fā)明實(shí)現(xiàn)了注釋自動定位,提高代碼的可讀性,降低代碼開發(fā)成本,提高代碼開發(fā)的效率。
為實(shí)現(xiàn)上述目的,本發(fā)明采用的技術(shù)方案是:
一種基于程序分析和神經(jīng)網(wǎng)絡(luò)的注釋定位方法,包含以下步驟:
S1、下載Java開源項(xiàng)目,提取項(xiàng)目中方法級別的注釋;
S2、根據(jù)步驟S1中取到的注釋數(shù)據(jù),進(jìn)行人工標(biāo)注注釋類別,組成注釋,注釋類別對的集合,作為注釋分類的訓(xùn)練集;
S3、對步驟S2生成的訓(xùn)練集進(jìn)行預(yù)處理,利用神經(jīng)網(wǎng)絡(luò)模型,進(jìn)行注釋分類器的訓(xùn)練;
S4、將項(xiàng)目中每個方法的注釋使用分類器進(jìn)行分類,提取How類型的注釋,并且從方法體內(nèi)找出對應(yīng)的代碼,組成注釋,代碼片段對的集合,作為注釋定位模型的訓(xùn)練集;
S5、對步驟S4所構(gòu)建的訓(xùn)練集進(jìn)行預(yù)處理,并且利用神經(jīng)網(wǎng)絡(luò)模型,進(jìn)行注釋定位模型的訓(xùn)練;
S6、注釋定位模型訓(xùn)練完成后,給定Java方法中的一條注釋語句和多個代碼片段,輸出與這條注釋最相似的代碼片段,組成注釋和代碼片段的映射關(guān)系;
具體地,步驟S2中,Java方法級別的注釋包括What型注釋和How型注釋。其中What型注釋是描述方法功能的注釋,How型注釋是描述方法具體實(shí)現(xiàn)的注釋。
該專利技術(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/201911321441.0/2.html,轉(zhuǎn)載請聲明來源鉆瓜專利網(wǎng)。
- 上一篇:一種雙重固化型各向異性導(dǎo)電膠膜及其制備方法
- 下一篇:
- 同類專利
- 專利分類





