版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領
文檔簡介
1、程序重構(gòu)是一種在保持軟件可見行為的前提下,對軟件既有代碼的改善。目的是使其更易理解與維護,修改成本更低。程序重構(gòu)可延緩軟件老化帶來的退化影響,改善程序質(zhì)量。過程提取是將已有方法中的一部分提取出來作為一個新的方法,被提取的部分用新方法調(diào)用替代。過程提取經(jīng)常用于減少軟件系統(tǒng)中的克隆代碼(Clone Code)。本文主要研究克隆代碼的過程提取方法以及重構(gòu)對進化軟件中模塊間依賴關系的影響。
針對由克隆代碼檢測工具檢測出來的克隆代碼不能
2、直接用于重構(gòu)的問題,提出了一種可重構(gòu)克隆代碼的預處理方法,該方法由兩部分組成:首先,將自適應K-最近鄰聚類(Adaptive K-Nearest Neighbors,A-KNN)與圖相結(jié)合,用于消除拷貝-粘貼相關缺陷檢測的誤檢。然后,對不含缺陷的克隆代碼,使用基于代價-收益的評估方法識別可重構(gòu)的克隆代碼,為后續(xù)克隆代碼重構(gòu)做好準備。實驗結(jié)果表明,本文提出的預處理方法可以有效消除因檢測錯誤修改某標識符缺陷時產(chǎn)生的誤檢。不僅提高了克隆代碼相
3、關缺陷檢測的準確性,而且可以消除更多的克隆代碼。
針對傳統(tǒng)的保持語法結(jié)構(gòu)不變的過程提取方法提取不連續(xù)克隆代碼時存在的問題,提出一種新的語義保持的不連續(xù)克隆代碼無定型過程提取方法。該方法結(jié)合程序依賴圖(Procedure Dependence Graph,PDG)和抽象語法樹(Abstract Syntax Tree,AST)對程序進行結(jié)構(gòu)語義分析,取消了傳統(tǒng)的保持語法結(jié)構(gòu)不變的過程提取算法對語句結(jié)構(gòu)一致性的約束,保留了語義一致
4、性約束,從而解決了傳統(tǒng)方法不易處理的連續(xù)但不能直接提取的克隆代碼提取問題,降低了對未標記語句提升的需求,并且不需要對跳轉(zhuǎn)語句進行特殊處理。
實驗結(jié)果表明,本文提出的克隆代碼無定型過程提取算法的準確性和適用性均高于已有的保持語法結(jié)構(gòu)不變的過程提取算法,可以有效地減少克隆代碼數(shù)量,提高代碼質(zhì)量。針對傳統(tǒng)的保持語法結(jié)構(gòu)不變的過程提取方法通過語句提升不能提取某些近似克隆代碼的問題,提出一種新的語義保持的近似克隆代碼無定型過程提取方法(
5、Semantic-Preserving Amorphous Procedure Extraction,SPAPE)。該方法結(jié)合程序依賴圖和抽象語法樹對程序進行結(jié)構(gòu)語義分析,取消了傳統(tǒng)的保持語法結(jié)構(gòu)不變的過程提取算法對語句結(jié)構(gòu)一致性的約束,保留了語義一致性約束。該方法由四部分組成:首先,SPAPE使用程序依賴圖對源程序進行結(jié)構(gòu)語義分析。然后,結(jié)合程序依賴圖和抽象語法樹執(zhí)行語義保持的無定型過程變換,識別出差異點。接著,通過插入控制變量和條件
6、語句進行差異點融合。最后,進行過程提取。實驗結(jié)果表明,本文提出的近似克隆代碼的無定型過程提取方法(SPAPE)解決了傳統(tǒng)方法不能處理某些近似克隆代碼的問題,同時在算法的有效性、代價-收益分析等方面優(yōu)于傳統(tǒng)方法。針對過程提取改變了軟件內(nèi)部模塊間的依賴關系這一現(xiàn)象,本文從軟件的進化角度對軟件內(nèi)部模塊間依賴的分布以及重構(gòu)對這種分布的影響進行實驗研究。結(jié)果表明,軟件內(nèi)部模塊間的依賴分布是不平衡的:相對于較大的模塊,依賴集中于較小的模塊間,這種依
7、賴聚集的不平衡性不僅存在于單版本的軟件內(nèi)部,也存在于軟件產(chǎn)品的整個生命周期中。同時,持續(xù)性重構(gòu)加劇了這種依賴聚集的不平衡性。因此,根據(jù)上述分析結(jié)果,在軟件維護或質(zhì)量評估方面軟件管理者和開發(fā)者,更多關注規(guī)模較小的模塊,并且在軟件的進化過程中,進一步增加關注度。
綜上所述,本文提出的克隆代碼預處理方法、無定型過程提取方法,解決了可重構(gòu)的克隆代碼的預處理問題、不連續(xù)克隆代碼的過程提取和近似克隆代碼的過程提取等關鍵技術問題,并且通過模
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 過程控制可重構(gòu)方法的研究.pdf
- 克隆代碼的識別與重構(gòu).pdf
- 基于K-最近鄰的C克隆代碼重構(gòu)方法研究.pdf
- 企業(yè)可重構(gòu)競爭能力的重構(gòu)動因、過程及方法.pdf
- 針對代碼克隆的面向?qū)ο蟪绦虻闹貥?gòu)研究.pdf
- 動態(tài)部分可重構(gòu)系統(tǒng)的設計方法及可重構(gòu)計算研究.pdf
- 可重構(gòu)制造系統(tǒng)組態(tài)重構(gòu)優(yōu)化方法研究.pdf
- 結(jié)合動態(tài)測試和靜態(tài)分析的克隆代碼重構(gòu).pdf
- 面向動態(tài)可重構(gòu)片上系統(tǒng)的過程級設計方法研究.pdf
- 可重構(gòu)溫度變送器設計及重構(gòu)方法研究.pdf
- 發(fā)酵過程智能測控系統(tǒng)軟件可重構(gòu)方法及實現(xiàn)研究.pdf
- 業(yè)務過程建模與過程重構(gòu)方法的研究.pdf
- 基于CRD克隆群映射的克隆家系提取方法研究.pdf
- 可重構(gòu)夾具創(chuàng)新設計方法的研究.pdf
- 無定型克隆代碼檢測及重構(gòu)系統(tǒng)的設計與實現(xiàn).pdf
- 代碼壞味檢測方法研究及重構(gòu)分析.pdf
- 可重構(gòu)的機器視覺在線檢測方法的研究.pdf
- 基于抽象語法樹和靜態(tài)分析的克隆代碼自動重構(gòu).pdf
- 面向可重構(gòu)制造單元的調(diào)度方法研究.pdf
- 可重構(gòu)制造系統(tǒng)的設施布局優(yōu)化方法研究.pdf
評論
0/150
提交評論