[發(fā)明專利]一種基于編程上下文信息的代碼重構(gòu)方法在審
| 申請(qǐng)?zhí)枺?/td> | 202110408445.3 | 申請(qǐng)日: | 2021-04-16 |
| 公開(公告)號(hào): | CN113190269A | 公開(公告)日: | 2021-07-30 |
| 發(fā)明(設(shè)計(jì))人: | 張靜宣;駱君鵬;梁嘉慧;劉思遠(yuǎn) | 申請(qǐng)(專利權(quán))人: | 南京航空航天大學(xué) |
| 主分類號(hào): | G06F8/72 | 分類號(hào): | G06F8/72;G06F16/335;G06F16/35;G06N3/04 |
| 代理公司: | 南京經(jīng)緯專利商標(biāo)代理有限公司 32200 | 代理人: | 施昊 |
| 地址: | 211106 江*** | 國(guó)省代碼: | 江蘇;32 |
| 權(quán)利要求書: | 查看更多 | 說(shuō)明書: | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 一種 基于 編程 上下文 信息 代碼 方法 | ||
本發(fā)明公開了一種基于編程上下文信息的代碼重構(gòu)方法,根據(jù)編程項(xiàng)目的上下文信息,對(duì)編程項(xiàng)目的需求文檔、設(shè)計(jì)文檔、缺陷報(bào)告和代碼結(jié)構(gòu)進(jìn)行分析,形成編程上下文模型,對(duì)于給定的標(biāo)識(shí)符通過(guò)編程上下文模型,重構(gòu)來(lái)源列表,步驟如下:(1)將代碼上下文、注釋、需求文檔、設(shè)計(jì)文檔進(jìn)行切分序列化,形成文本向量;(2)通過(guò)機(jī)器學(xué)習(xí)方法,將文本向量轉(zhuǎn)換為數(shù)值向量,并進(jìn)行數(shù)值向量的嵌入;(3)對(duì)于形成的多個(gè)向量空間,使用聚類的方法將向量空間進(jìn)行聚類(4)將標(biāo)識(shí)符輸入編程上下文模型中形成重構(gòu)備選排序列表,推薦給開發(fā)者。本發(fā)明更加有效、個(gè)性化地構(gòu)建新的重構(gòu)標(biāo)識(shí)符,提高軟件質(zhì)量,避免程序缺陷與腐化,幫助開發(fā)人員進(jìn)行程序開發(fā)。
技術(shù)領(lǐng)域
本發(fā)明涉及代碼重構(gòu)方法,尤其涉及一種基于編程上下文信息的代碼重構(gòu)方法。
背景技術(shù)
針對(duì)標(biāo)識(shí)符重構(gòu),主要體現(xiàn)在以下兩個(gè)方面,一是基于命名約定的重命名,二是基于不一致性的重命名。
基于命名約定的重命名:命名約定是程序員用來(lái)指導(dǎo)他們命名軟件實(shí)體的一套規(guī)則,尤其是形成標(biāo)識(shí)符的規(guī)則(包括單詞的選擇,也包括“語(yǔ)法”規(guī)則)。根據(jù)統(tǒng)一的命名慣例命名軟件實(shí)體提高了軟件應(yīng)用程序的可讀性和可維護(hù)性。命名慣例是與上下文相關(guān)的。不同的編程語(yǔ)言和組織定義了自己的命名約定。例如,Java語(yǔ)言建議按照camel case約定命名實(shí)體,而C程序員通常使用下劃線作為分隔符來(lái)連接單詞。
基于命名約定尋找重命名機(jī)會(huì)不同于命名約定本身的選擇或質(zhì)量。暗示問(wèn)題的不是命名慣例本身,而是它的違反。理論上,基于命名約定的重命名必須首先找到軟件采用的上下文約定,其次識(shí)別違反重命名機(jī)會(huì)等約定的標(biāo)識(shí)符。
基于不一致性的重命名:檢查軟件中不一致的標(biāo)識(shí)符是識(shí)別重命名機(jī)會(huì)的另一項(xiàng)關(guān)鍵技術(shù)。標(biāo)識(shí)符傳達(dá)對(duì)程序理解有用的領(lǐng)域概念。它們捕捉程序員在編寫代碼時(shí)所擁有的特定于應(yīng)用程序的知識(shí)。適當(dāng)?shù)臉?biāo)識(shí)符不僅應(yīng)該簡(jiǎn)明地反映其實(shí)體的作用,而且應(yīng)該在整個(gè)程序中一致地表示概念。然而,大多數(shù)程序都存在標(biāo)識(shí)符不一致的問(wèn)題。
基于不一致性的重命名現(xiàn)有方法基于標(biāo)識(shí)符之間的不一致性以及實(shí)體名稱和實(shí)體實(shí)現(xiàn)之間的不一致性來(lái)識(shí)別重命名機(jī)會(huì)。此外,標(biāo)識(shí)符之間的不一致性分為基于同義詞的方法、基于克隆的方法和基于相似性的方法。
現(xiàn)有的研究工作把主要精力放在了重命名機(jī)會(huì)的識(shí)別上,卻忽略了確定哪一部分標(biāo)識(shí)符是需要被重命名之后的操作,即標(biāo)識(shí)符重命名的來(lái)源是什么,以及采用何種方式將更好的標(biāo)識(shí)符推薦給開發(fā)者,這一部分與重命名機(jī)會(huì)的識(shí)別同樣重要,甚至決定了與開發(fā)者的交互程度以及開發(fā)者對(duì)于推薦的新標(biāo)識(shí)符的接受程度,影響了標(biāo)識(shí)符重構(gòu)的有效性和意義。
現(xiàn)階段,尚未有研究系統(tǒng)性地總結(jié)標(biāo)識(shí)符重構(gòu)的有效推薦來(lái)源是什么以及有效的推薦方式是什么。針對(duì)這一部分的研究目前比較匱乏,迫切需要進(jìn)一步展開更加深入的研究。
發(fā)明內(nèi)容
發(fā)明目的:本發(fā)明的目的是提供一種個(gè)性化構(gòu)建新的重構(gòu)標(biāo)識(shí)符、提高軟件質(zhì)量的基于編程上下文信息的代碼。
技術(shù)方案:一種基于編程上下文信息的代碼重構(gòu)方法,根據(jù)編程項(xiàng)目的上下文信息,對(duì)編程項(xiàng)目的需求文檔、設(shè)計(jì)文檔、缺陷報(bào)告和代碼結(jié)構(gòu)進(jìn)行分析,包括步驟如下:
(1)將代碼上下文、注釋、需求文檔和設(shè)計(jì)文檔進(jìn)行切分序列化,形成文本向量;
(2)通過(guò)機(jī)器學(xué)習(xí)方法,將文本向量轉(zhuǎn)換為數(shù)值向量,并進(jìn)行數(shù)值向量的嵌入,形成向量空間;
(3)對(duì)于形成的多個(gè)向量空間,選用聚類方法將向量空間進(jìn)行聚類,將最后形成的相同編程上下文模型歸類到一起;
(4)對(duì)于給定的標(biāo)識(shí)符通過(guò)編程上下文模型,形成重構(gòu)備選排序列表,推薦給開發(fā)者。
該專利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專利權(quán)人授權(quán)。該專利全部權(quán)利屬于南京航空航天大學(xué),未經(jīng)南京航空航天大學(xué)許可,擅自商用是侵權(quán)行為。如果您想購(gòu)買此專利、獲得商業(yè)授權(quán)和技術(shù)合作,請(qǐng)聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/202110408445.3/2.html,轉(zhuǎn)載請(qǐng)聲明來(lái)源鉆瓜專利網(wǎng)。
- 自動(dòng)創(chuàng)建上下文信息提供配置的系統(tǒng)
- 用于管理上下文的方法、系統(tǒng)和裝置
- 一種基于本體的上下文感知應(yīng)用平臺(tái)框架模型
- 一種基于上下文感知的智能家居系統(tǒng)
- 實(shí)現(xiàn)上下文感知業(yè)務(wù)應(yīng)用的方法和相關(guān)裝置
- 一種多推理引擎融合上下文感知系統(tǒng)及其工作方法
- 多個(gè)并發(fā)上下文虛擬演進(jìn)型會(huì)話管理(虛擬ESM)
- 一種基于異質(zhì)上下文感知的推薦方法
- 一種可提高上下文質(zhì)量的本體建模方法及裝置
- 微服務(wù)全局上下文控制方法及系統(tǒng)
- 信息記錄介質(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ì)
- 信息存儲(chǔ)介質(zhì)、信息記錄方法、信息重放方法、信息記錄設(shè)備、以及信息重放設(shè)備
- 信息存儲(chǔ)介質(zhì)、信息記錄方法、信息回放方法、信息記錄設(shè)備和信息回放設(shè)備
- 信息記錄介質(zhì)、信息記錄方法、信息記錄裝置、信息再現(xiàn)方法和信息再現(xiàn)裝置
- 信息終端,信息終端的信息呈現(xiàn)方法和信息呈現(xiàn)程序
- 信息創(chuàng)建、信息發(fā)送方法及信息創(chuàng)建、信息發(fā)送裝置





