【技術實現步驟摘要】
一種獲取程序中模塊間函數接口的方法和系統
本專利技術涉及大型軟件的模塊接口技術,尤其涉及一種獲取程序中模塊間函數接口的方法和系統。
技術介紹
隨著計算機技術和通信技術的不斷發展,用戶對軟件系統的性能要求也越來越高,軟件系統也變得越來越大,進而在現有技術中,產生了很多大型軟件系統。在大型軟件系統中,程序里包含了若干邏輯模塊之間的相互作用,而這些邏輯模塊之間的接口,會直接影響模塊的程序架構中的模塊耦合關系,對軟件系統的綜合性能影響很大。邏輯模塊之間的接口除了在系統架構設計時考慮以外,還需要在后續的詳細設計、編碼實現中嚴格遵循接口說明書。因此,需要一種有效的手段,可以檢查已實現的軟件系統中,模塊的實際接口情況,以便與接口設計進行對比,在發現接口差異可以進行及時修改。同時,在對舊的軟件系統架構改造中,還需要對現有程序中的模塊接口關系進行提取,然后在此基礎上進行模塊解耦,設計新的模塊接口。而這也需要獲取模塊接口。程序模塊之間的接口,包括函數接口與數據接口。對于函數接口,程序里的函數調用關系有兩類,分別是內部函數調用IFC(InternalFunctionCalling)、外部函數調用EFC(ExternalFunctionCalling)。其中IFC的函數調用點和被調用函數都處于程序范圍內,而EFC的被調用函數處于程序范圍以外,通常為調用動態鏈接庫內的函數。IFC根據調用形式的不同,還可以分為內部函數靜態調用IFSC(InternalFunctionStaticCalling)和內部函數動態調用IFDC(InternalFunctionDynamicCalling) ...
【技術保護點】
一種獲取程序中模塊間函數接口的方法,用于獲取可執行程序中模塊間函數接口,其特征在于,所述方法包括:通過靜態掃描所述可執行程序,生成內部函數靜態調用IFSC關系文件、外部函數調用EFC關系文件,及內部函數動態調用IFDC出口清單文件;在運行所述可執行程序時,基于所述IFDC出口清單文件,生成IFDC記錄文件;基于所述EFC關系文件、所述IFSC關系文件及IFDC記錄文件,獲得所述可執行程序中模塊間的函數調用關系表。
【技術特征摘要】
1.一種獲取程序中模塊間函數接口的方法,用于獲取可執行程序中模塊間函數接口,其特征在于,所述方法包括:通過靜態掃描所述可執行程序,生成內部函數靜態調用IFSC關系文件、外部函數調用EFC關系文件,及內部函數動態調用IFDC出口清單文件;在運行所述可執行程序時,基于所述IFDC出口清單文件,生成IFDC記錄文件;基于所述EFC關系文件、所述IFSC關系文件及IFDC記錄文件,獲得所述可執行程序中模塊間的函數調用關系表;其中,在所述基于所述EFC關系文件、所述IFSC關系文件及IFDC記錄文件,獲得所述可執行程序中模塊間的函數調用關系表之后,還包括:基于實際函數調用關系表和模塊內部函數清單,獲得所述可執行程序中模塊間的實際函數接口關系;基于所述可執行程序的標準模塊函數接口配置文件,獲得所述可執行程序中模塊間的標準函數接口關系;比較所述可執行程序中模塊間的實際函數接口關系及標準函數接口關系,獲得所述可執行程序中模塊間的函數接口變更信息文件。2.如權利要求1所述的方法,其特征在于,所述通過靜態掃描所述可執行程序,生成內部函數靜態調用IFSC關系文件、外部函數調用EFC關系文件,及內部函數動態調用IFDC出口清單文件,具體包括:提取所述可執行程序中每個函數的用來表征每個函數特征的屬性信息;分析所述可執行程序的重定位段,生成所述外部函數調用EFC關系文件;掃描所述可執行程序的每個函數的函數代碼段,獲得每個函數的函數調用指令;在所述函數調用指令中指定的函數調用方式為寄存器形式時,生成所述IFDC出口清單文件;在所述函數調用指令中指定的函數調用方式為操作數形式時,生成所述IFSC關系文件。3.如權利要求1所述的方法,其特征在于,所述在運行所述可執行程序時,基于所述IFDC出口清單文件,生成IFDC記錄文件,具體包括:所述可執行程序運行時,執行所述可執行程序初始化段內的提取動態調用關系模塊的初始化代碼,以獲得所述IFDC出口清單文件;執行每個函數頭部內的動態調用關系模塊的提取代碼,以獲得每個函數的上級函數調用出口地址;當所述IFDC出口清單文件中存在所述調用出口地址時且所述IFDC出口清單文件對應的目標函數列表中包括所述調用出口地址對應函數時,則記錄所述調用出口地址對應函數的IFDC信息;當所述IFDC出口清單文件中存在所述調用出口地址時且所述IFDC出口清單文件對應的目標函數列表中不包括所述調用出口地址對應函數時,則在為所述調用出口地址對應函數建立新的IFDC關系之后,記錄所述調用出口地址對應函數的IFDC信息;當所述可執行程序運行結束時,提取出每個函數的IFDC信息,在程序目錄下生成所述IFDC記錄文件。4.一種獲取程序中模塊間函數接口的系統,用于獲取可執行程序中模塊間函數接口,其特征在于,所述系統包括:靜態掃描單元,用于通過靜態掃描所述可執行程序,生成內部函數靜態調用...
【專利技術屬性】
技術研發人員:蔣嵩,
申請(專利權)人:中興通訊股份有限公司,
類型:發明
國別省市:
還沒有人留言評論。發表了對其他瀏覽者有用的留言會獲得科技券。