[發(fā)明專利]一種Java應(yīng)用編程接口的文檔缺陷自動(dòng)修復(fù)方法在審
| 申請(qǐng)?zhí)枺?/td> | 201710999995.0 | 申請(qǐng)日: | 2017-10-24 |
| 公開(公告)號(hào): | CN108021390A | 公開(公告)日: | 2018-05-11 |
| 發(fā)明(設(shè)計(jì))人: | 周宇;王長志;閆鑫 | 申請(qǐng)(專利權(quán))人: | 南京航空航天大學(xué) |
| 主分類號(hào): | G06F8/73 | 分類號(hào): | G06F8/73;G06F8/74 |
| 代理公司: | 江蘇圣典律師事務(wù)所 32237 | 代理人: | 賀翔 |
| 地址: | 210016 江*** | 國省代碼: | 江蘇;32 |
| 權(quán)利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 一種 java 應(yīng)用 編程 接口 文檔 缺陷 自動(dòng) 修復(fù) 方法 | ||
本發(fā)明公開了一種Java應(yīng)用編程接口的文檔缺陷自動(dòng)修復(fù)方法,其對(duì)Java API中有缺陷的文檔進(jìn)行自動(dòng)修復(fù),分別提取Java API文檔的參數(shù)相關(guān)約束描述信息和執(zhí)行代碼中的異常信息及其觸發(fā)條件處理信息,并進(jìn)行比對(duì),從而檢測(cè)出文檔描述中可能存在的缺陷問題,并采用基于預(yù)定義模板的方式對(duì)其進(jìn)行修復(fù)。本發(fā)明提高了Java API文檔對(duì)API代碼中與參數(shù)相關(guān)的異常描述的準(zhǔn)確性,進(jìn)而提高軟件質(zhì)量。
技術(shù)領(lǐng)域
本發(fā)明屬于軟件工程技術(shù)領(lǐng)域,尤其涉及一種Java應(yīng)用編程接口(API)的注釋文檔對(duì)于執(zhí)行代碼中參數(shù)的實(shí)際約束條件描述錯(cuò)誤或沒有描述,即注釋文檔有缺陷時(shí),對(duì)文檔進(jìn)行自動(dòng)修復(fù)的方法。
背景技術(shù)
隨著軟件項(xiàng)目規(guī)模的不斷增大,高效復(fù)用代碼成為業(yè)界的追求目標(biāo),而使用應(yīng)用編程接口(Application Programming Interface,即API)是其中一項(xiàng)重要的技術(shù)手段。API一般是一些開放的函數(shù)接口,其代碼底層實(shí)現(xiàn)對(duì)開發(fā)人員透明,從而將精力集中于業(yè)務(wù)邏輯,提高開發(fā)效率。
開發(fā)者通過API文檔了解接口的約束條件,以達(dá)到正確使用API的目的。在本發(fā)明中,我們主要針對(duì)的Java API文檔是指每一個(gè)開放的方法中,由人工編寫、具有一定組織結(jié)構(gòu)、以代碼注釋形式存在于源代碼中的Javadoc文檔。這樣的文檔更注重細(xì)節(jié)定義,如參數(shù)取值范圍、參數(shù)類型限制以及該方法的返回值值域、類型等。
高質(zhì)量的API文檔,應(yīng)該清楚地描述出調(diào)用該接口時(shí)需要滿足的相關(guān)約束條件。模糊甚至錯(cuò)誤的API文檔,會(huì)造成軟件開發(fā)人員理解困難甚至是理解錯(cuò)誤。在實(shí)際情況中,由于人為撰寫可能存在的錯(cuò)漏、文檔和代碼更新進(jìn)度不一致等原因,導(dǎo)致了文檔會(huì)存在很多缺陷的情況。
國內(nèi)外有許多研究者對(duì)軟件文檔進(jìn)行探討和研究,但是少有針對(duì)文檔中異常約束條件描述問題的研究。以下將介紹關(guān)于軟件文檔研究的相關(guān)幾個(gè)主要方面。
研究軟件文檔與執(zhí)行代碼之間的關(guān)系,就必須分析執(zhí)行代碼。目前,多數(shù)相關(guān)研究采用靜態(tài)分析技術(shù)作為技術(shù)手段。Raymond等人提出了一種自動(dòng)生成Java API文檔的方法,通過定位異常、捕捉異常觸發(fā)條件,并根據(jù)觸發(fā)條件中的代碼信息生成自然語言描述文檔。另外,Mohamed等人提出了利用符號(hào)執(zhí)行技術(shù),捕捉代碼中的約束限制,并將提取出的約束條件與已有的Java API文檔中的相關(guān)描述進(jìn)行對(duì)比,檢測(cè)不一致情況。但是該方法并未考慮到Java API方法之間存在的調(diào)用關(guān)系問題。
另外,也有通過動(dòng)態(tài)分析的方法來檢測(cè)文檔中存在不一致性,其主要的思路是提取文檔中相關(guān)約束,根據(jù)約束生成一系列的測(cè)試用例來對(duì)代碼進(jìn)行檢測(cè)。該方法主要適用于參數(shù)的空值約束。目前沒有更多研究將該方法應(yīng)用于檢測(cè)文檔的其他類型約束。
此外,Gias Uddin等人通過調(diào)研發(fā)現(xiàn),API文檔的不完整性、模糊性和錯(cuò)誤性都會(huì)對(duì)API的理解產(chǎn)生非常重要的影響,以至于無法正確使用API。因此,對(duì)API文檔進(jìn)行修復(fù)是非常有必要的。
發(fā)明內(nèi)容
針對(duì)于上述現(xiàn)有技術(shù)的不足,本發(fā)明的目的在于提供一種Java應(yīng)用編程接口的文檔缺陷自動(dòng)修復(fù)方法,本發(fā)明可針對(duì)應(yīng)用編程接口文檔的異常觸發(fā)條件描述不正確或未描述的情況進(jìn)行修復(fù),提高Java API文檔的完整性和準(zhǔn)確性。
為達(dá)到上述目的,本發(fā)明采用的技術(shù)方案如下:
本發(fā)明的一種Java應(yīng)用編程接口的文檔缺陷自動(dòng)修復(fù)方法,包括步驟如下:
1)提取源代碼中每個(gè)方法的執(zhí)行代碼部分以及注釋文檔部分,分別進(jìn)行分析;
2)遍歷當(dāng)前分析目標(biāo)的所有方法,提取每個(gè)方法的拋出異常類型及其觸發(fā)條件,并建立目標(biāo)工程源代碼中各方法之間的調(diào)用關(guān)系庫;
該專利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專利權(quán)人授權(quán)。該專利全部權(quán)利屬于南京航空航天大學(xué),未經(jīng)南京航空航天大學(xué)許可,擅自商用是侵權(quán)行為。如果您想購買此專利、獲得商業(yè)授權(quán)和技術(shù)合作,請(qǐng)聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201710999995.0/2.html,轉(zhuǎn)載請(qǐng)聲明來源鉆瓜專利網(wǎng)。
- 基于支持類的標(biāo)識(shí)來下載Java應(yīng)用的方法、系統(tǒng)和計(jì)算機(jī)程序產(chǎn)品
- 啟動(dòng)JAVA應(yīng)用的方法及裝置
- Java虛擬機(jī)的管理方法、監(jiān)控系統(tǒng)和監(jiān)控代理模塊
- 一種運(yùn)行Java程序的方法和裝置
- 一種保護(hù)java程序的方法
- Java卡的Java代碼補(bǔ)丁方法
- 一種基于中間件架構(gòu)下java棧的多線程實(shí)現(xiàn)方法
- 一種支持JAVA卡補(bǔ)丁函數(shù)的智能卡
- 一種改進(jìn)的Java卡初始化方法和Java卡
- JavaEE平臺(tái)構(gòu)建方法、JavaEE平臺(tái)及云端系統(tǒng)
- 在線應(yīng)用平臺(tái)上應(yīng)用間通信的回調(diào)應(yīng)答方法、應(yīng)用及在線應(yīng)用平臺(tái)
- 應(yīng)用使用方法、應(yīng)用使用裝置及相應(yīng)的應(yīng)用終端
- 應(yīng)用管理設(shè)備、應(yīng)用管理系統(tǒng)、以及應(yīng)用管理方法
- 能力應(yīng)用系統(tǒng)及其能力應(yīng)用方法
- 應(yīng)用市場(chǎng)的應(yīng)用搜索方法、系統(tǒng)及應(yīng)用市場(chǎng)
- 使用應(yīng)用的方法和應(yīng)用平臺(tái)
- 應(yīng)用安裝方法和應(yīng)用安裝系統(tǒng)
- 使用遠(yuǎn)程應(yīng)用進(jìn)行應(yīng)用安裝
- 應(yīng)用檢測(cè)方法及應(yīng)用檢測(cè)裝置
- 應(yīng)用調(diào)用方法、應(yīng)用發(fā)布方法及應(yīng)用發(fā)布系統(tǒng)





