基于重構(gòu)操作模板的代碼優(yōu)化方法
【專利摘要】一種基于重構(gòu)操作模板的代碼優(yōu)化方法,通過分析抽取通用的重構(gòu)操作,定義通用的重構(gòu)操作模板并建立相應(yīng)的重構(gòu)操作模板庫,然后針對待優(yōu)化的源程序代碼,分析抽取其典型重構(gòu)操作,選定要使用的重構(gòu)操作模板并賦值,應(yīng)用帶重構(gòu)功能的集成開發(fā)環(huán)境工具進行重構(gòu)轉(zhuǎn)換操作的執(zhí)行,最終生成優(yōu)化后的目標程序代碼及重構(gòu)操作日志。與傳統(tǒng)程序代碼優(yōu)化方法相比,該方法具備優(yōu)化時機更靈活、操作更自動高效、處理準確性更高、代碼優(yōu)化結(jié)果更豐富等特點。
【專利說明】基于重構(gòu)操作模板的代碼優(yōu)化方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及一種基于重構(gòu)操作模板的代碼優(yōu)化方法。
【背景技術(shù)】
[0002] 代碼優(yōu)化是指在不改變程序運行結(jié)果的前提下對程序代碼進行變換,以達到提高 程序運行效率的過程。代碼優(yōu)化可以在程序編譯的各個階段進行。代碼優(yōu)化的方式有很多 種,可以修改代碼的運行邏輯結(jié)構(gòu),如代碼的算法;也可以修改代碼的組織邏輯結(jié)構(gòu),如方 法間的調(diào)用;還可以修改代碼的表現(xiàn)形式,如屬性名的更改。
[0003] 重構(gòu)技術(shù)主要是指不改變程序編譯結(jié)果的前提下,通過調(diào)整程序內(nèi)部結(jié)構(gòu)設(shè)計, 提高代碼的可讀性。重構(gòu)目前是代碼優(yōu)化方法的最佳選擇之一,可以通過改進軟件設(shè)計以 及增強程序可讀性,使代碼不斷優(yōu)化從而快速定位程序出錯以及提高編程速度等。
[0004] 重構(gòu)的實現(xiàn)方式有手動和自動兩種,其本質(zhì)的區(qū)別在于是否有工具的支持。重構(gòu) 不同于代碼生成,在現(xiàn)有的具有復雜邏輯結(jié)構(gòu)的代碼基礎(chǔ)上進行修改比重新生成一段所需 代碼段的工作要復雜的多。隨著人們在重構(gòu)研究上的不斷深入,支持一些特定的重構(gòu)操作 的工具也陸續(xù)出現(xiàn),典型的有eclipse (-種支持Java語言程序開發(fā)的集成開發(fā)環(huán)境)的 重構(gòu)工具,但這些工具更像是簡單的代碼修改工具,每一步操作都需要你手動的對其下達 命令,而且轉(zhuǎn)換功能簡單。
【發(fā)明內(nèi)容】
[0005] 本發(fā)明的目的就是提供一種主動性強、效率高、結(jié)果直觀的基于重構(gòu)操作模板的 代碼優(yōu)化方法。
[0006] 本發(fā)明的基于重構(gòu)操作模板的代碼優(yōu)化方法,包括通用重構(gòu)操作分析定義、包含 具體轉(zhuǎn)化功能的重構(gòu)操作模板的定義及重構(gòu)操作模板庫建立、重構(gòu)操作模板選定、重構(gòu)操 作模板賦值、重構(gòu)操作執(zhí)行應(yīng)用代碼優(yōu)化,其具體步驟如下: 步驟a :根據(jù)日常代碼編寫經(jīng)驗,分析通用的重構(gòu)操作,重構(gòu)操作的組成一般包含兩部 分:前置條件與轉(zhuǎn)換執(zhí)行,前置條件有原子型與組合型兩種,轉(zhuǎn)換執(zhí)行包含轉(zhuǎn)換操作與轉(zhuǎn)換 元素兩部分內(nèi)容; 步驟b :根據(jù)分析結(jié)果定義通用的重構(gòu)操作為特定的重構(gòu)操作模板,(常見重構(gòu)操作有 重命名類、抽取方法、封裝域等代碼轉(zhuǎn)換功能),針對該重構(gòu)操作模板,指明具體轉(zhuǎn)換操作的 前置條件與轉(zhuǎn)換執(zhí)行并進行描述,建立相應(yīng)的重構(gòu)操作模板庫,用于存放這些重構(gòu)操作模 板;一個具體重構(gòu)操作模板是一個具有基本代碼轉(zhuǎn)換功能的重構(gòu)操作,需要用戶指定需要 重構(gòu)的代碼元素,通過應(yīng)用重構(gòu)操作模板于程序代碼的相應(yīng)元素就可以完成相應(yīng)的代碼重 構(gòu)操作; 步驟c :針對待優(yōu)化的程序代碼,根據(jù)代碼優(yōu)化需要分析抽取典型的重構(gòu)操作即與重 構(gòu)操作模板庫中某重構(gòu)操作模板相一致的重構(gòu)操作,根據(jù)這些典型重構(gòu)操作,從重構(gòu)操作 模板庫中選定需要應(yīng)用到的重構(gòu)操作模板組成一個集合;重構(gòu)操作模板是可重復使用的, 用戶可自定義需要使用的重構(gòu)操作模板,重構(gòu)操作模板的選取可根據(jù)重構(gòu)操作模板的前置 條件與轉(zhuǎn)換執(zhí)行或直接根據(jù)重構(gòu)操作模板的描述; 步驟d:針對選定的重構(gòu)操作模板組合,用戶直接在重構(gòu)參數(shù)配置文件中對待重構(gòu)變 量賦值,或在程序開發(fā)集成環(huán)境中配置并自動生成參數(shù)配置文件,分別指出待重構(gòu)變量在 重構(gòu)操作執(zhí)行前后的元素值;重構(gòu)操作執(zhí)行過程中,被賦值重構(gòu)變量會自動進行賦值元素 的全路徑轉(zhuǎn)換,以保證重構(gòu)操作的準確性; 步驟e:使用帶重構(gòu)功能的集成開發(fā)環(huán)境工具加載選定的重構(gòu)操作模板集合,根據(jù)重 構(gòu)參數(shù)配置文件對重構(gòu)操作模板進行賦值,賦值過程會自動適配元素值的完全路徑名,并 將已賦值的重構(gòu)操作模板依次應(yīng)用于待優(yōu)化的源代碼文件,對程序源代碼進行自動化的重 構(gòu)操作處理,處理完畢生成目標程序代碼文件及代碼重構(gòu)日志文件。
[0007] 本發(fā)明的基于重構(gòu)操作模板的代碼優(yōu)化方法,與普通的手動代碼優(yōu)化方法相比 較,具有以下特點: 1、 可隨時進行代碼優(yōu)化操作而不會改變程序使用可察性,我們知道重構(gòu)操作是可以隨 時隨地進行并且不會改變軟件之可察行為,那么基于重構(gòu)操作序列的代碼優(yōu)化操作也是可 以隨時隨地地進行并且不改變程序使用可察性; 2、 代碼優(yōu)化操作更自動高效,使用本發(fā)明所提出的代碼優(yōu)化方法進行代碼優(yōu)化,只需 要進行初始的重構(gòu)操作、重構(gòu)接口的選取及參數(shù)文件的配置,其它工作均由相關(guān)工具自動 完成,比常見的手動一步一步優(yōu)化代碼效率要高很多; 3、 代碼優(yōu)化處理準確性更高,由于重構(gòu)具體操作處理均交由具有重構(gòu)組合功能的編譯 工具來完成,相比手動優(yōu)化而言,經(jīng)過重構(gòu)優(yōu)化后的代碼,低級錯誤、二次錯誤的出現(xiàn)率幾 乎為零; 4、 優(yōu)化過后的代碼結(jié)構(gòu)更清晰、可讀性更高,對于深度開發(fā)軟件、減少程序出錯和提高 編程效率而言都非常有幫助;總之,基于重構(gòu)操作模板代碼優(yōu)化方法擁有重構(gòu)所具備的一 切優(yōu)點。
【專利附圖】
【附圖說明】
[0008] 圖1為本發(fā)明的總體架構(gòu)流程圖。
【具體實施方式】
[0009] 參看圖1,該代碼優(yōu)化過程使用到了本發(fā)明介紹的基于重構(gòu)操作模板的代碼優(yōu)化 方法,其詳細實現(xiàn)為: ① 導入源程序代碼文件; ② 分析待優(yōu)化的源代碼中所需進行的重構(gòu)操作,抽取為該待優(yōu)化代碼的典型重構(gòu)操 作; ③ 選定重構(gòu)操作模板:根據(jù)待優(yōu)化代碼的典型重構(gòu)操作,從根據(jù)本發(fā)明方法建立的重 構(gòu)操作模板庫中,選定適合的重構(gòu)操作模板,組成一個重構(gòu)操作集合; ④ 重構(gòu)操作模板賦值:我們應(yīng)當針對源程序待優(yōu)化內(nèi)容,對選定的重構(gòu)操作模板進行 賦值,即對重構(gòu)操作元素的前后狀態(tài)進行賦值,可以直接在參數(shù)配置文件中賦值,也可以在 程序開發(fā)集成環(huán)境中配置; ⑤ 重構(gòu)轉(zhuǎn)換執(zhí)行:當所有準備工作就緒時,接下來就是進行重構(gòu)操作執(zhí)行了,本發(fā)明所 示方法應(yīng)用帶重構(gòu)功能的集成開發(fā)環(huán)境工具來執(zhí)行重構(gòu)轉(zhuǎn)換操作。該工具首先加載待優(yōu)化 的源程序文件,通過讀取參數(shù)配置文件來對選定的重構(gòu)操作模板進行加載與賦值,然后將 重構(gòu)操作模板依次應(yīng)用于源程序代碼,執(zhí)行相應(yīng)的重構(gòu)操作單元; ⑥ 最后,若重構(gòu)操作執(zhí)行成功,則生成并導出已優(yōu)化的目標程序文件與重構(gòu)操作日志 文件;若重構(gòu)操作執(zhí)行過程遇到錯誤則導出錯誤標識至日志文件中,并將程序文件還原至 初始狀態(tài)。
【權(quán)利要求】
1. 一種基于重構(gòu)操作模板的代碼優(yōu)化方法,其特征在于:它包括通用重構(gòu)操作分析定 義、包含具體轉(zhuǎn)化功能的重構(gòu)操作模板的定義及重構(gòu)操作模板庫建立、重構(gòu)操作模板選定、 重構(gòu)操作模板賦值、重構(gòu)操作執(zhí)行應(yīng)用代碼優(yōu)化,具體步驟如下: 步驟a :分析通用的重構(gòu)操作,重構(gòu)操作的組成一般包含兩部分:前置條件與轉(zhuǎn)換執(zhí) 行,前置條件有原子型與組合型兩種;轉(zhuǎn)換執(zhí)行包含轉(zhuǎn)換操作與轉(zhuǎn)換元素兩部分內(nèi)容; 步驟b :根據(jù)分析結(jié)果定義通用的重構(gòu)操作為特定的重構(gòu)操作模板,針對該重構(gòu)操作 模板,指明具體轉(zhuǎn)換操作的前置條件與轉(zhuǎn)換執(zhí)行并進行描述,建立相應(yīng)的重構(gòu)操作模板庫, 用于存放這些重構(gòu)操作模板; 步驟c :針對待優(yōu)化的程序代碼,根據(jù)代碼優(yōu)化需要分析抽取典型的重構(gòu)操作,即與重 構(gòu)操作模板庫中某重構(gòu)操作模板相一致的重構(gòu)操作,根據(jù)這些典型重構(gòu)操作,從重構(gòu)操作 模板庫中選定需要應(yīng)用到的重構(gòu)操作模板組成一個集合; 步驟d :針對選定的重構(gòu)操作模板組合,直接在重構(gòu)參數(shù)配置文件中對待重構(gòu)變量賦 值,或在程序開發(fā)集成環(huán)境中配置并自動生成參數(shù)配置文件,分別指出待重構(gòu)變量在重構(gòu) 操作執(zhí)行前后的元素值; 步驟e :根據(jù)重構(gòu)參數(shù)配置文件對重構(gòu)操作模板進行賦值,賦值過程會自動適配元素 值的完全路徑名,并將已賦值的重構(gòu)操作模板依次應(yīng)用于待優(yōu)化的源代碼文件,對程序源 代碼進行自動化的重構(gòu)操作處理,處理完畢生成目標程序代碼文件及代碼重構(gòu)日志文件。
【文檔編號】G06F9/445GK104090782SQ201310619475
【公開日】2014年10月8日 申請日期:2013年11月29日 優(yōu)先權(quán)日:2013年11月29日
【發(fā)明者】梁良, 馬勇, 付萍萍, 周淑芳 申請人:國家電網(wǎng)公司, 國網(wǎng)江西省電力公司信息通信分公司