[發明專利]一種獲取程序中模塊間函數接口的方法和系統有效
| 申請號: | 201110287958.X | 申請日: | 2011-09-26 |
| 公開(公告)號: | CN103019663B | 公開(公告)日: | 2017-03-15 |
| 發明(設計)人: | 蔣嵩 | 申請(專利權)人: | 中興通訊股份有限公司 |
| 主分類號: | G06F9/44 | 分類號: | G06F9/44 |
| 代理公司: | 北京康信知識產權代理有限責任公司11240 | 代理人: | 江舟,董文倩 |
| 地址: | 518057 廣東省深圳市南山*** | 國省代碼: | 廣東;44 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 獲取 程序 模塊 函數 接口 方法 系統 | ||
技術領域
本發明涉及大型軟件的模塊接口技術,尤其涉及一種獲取程序中模塊間函數接口的方法和系統。
背景技術
隨著計算機技術和通信技術的不斷發展,用戶對軟件系統的性能要求也越來越高,軟件系統也變得越來越大,進而在現有技術中,產生了很多大型軟件系統。
在大型軟件系統中,程序里包含了若干邏輯模塊之間的相互作用,而這些邏輯模塊之間的接口,會直接影響模塊的程序架構中的模塊耦合關系,對軟件系統的綜合性能影響很大。
邏輯模塊之間的接口除了在系統架構設計時考慮以外,還需要在后續的詳細設計、編碼實現中嚴格遵循接口說明書。因此,需要一種有效的手段,可以檢查已實現的軟件系統中,模塊的實際接口情況,以便與接口設計進行對比,在發現接口差異可以進行及時修改。
同時,在對舊的軟件系統架構改造中,還需要對現有程序中的模塊接口關系進行提取,然后在此基礎上進行模塊解耦,設計新的模塊接口。而這也需要獲取模塊接口。
程序模塊之間的接口,包括函數接口與數據接口。對于函數接口,程序里的函數調用關系有兩類,分別是內部函數調用IFC(Internal?Function?Calling)、外部函數調用EFC(External?Function?Calling)。其中IFC的函數調用點和被調用函數都處于程序范圍內,而EFC的被調用函數處于程序范圍以外,通常為調用動態鏈接庫內的函數。
IFC根據調用形式的不同,還可以分為內部函數靜態調用IFSC(Internal?Function?Static?Calling)和內部函數動態調用IFDC(Internal?Function?Dynamic?Calling)。靜態調用指調用的目標函數在編譯時已經確定,動態調用指調用的目標函數在編譯時尚未明確,當程序運行到調用點時,才確定調用的目標函數。
在現有技術中,獲取模塊函數接口的方法是:在編譯鏈接程序的時候,利用編譯器生成每個目標文件的函數依賴關系,然后匯總分析形成模塊之間的函數接口關系。
在實現本申請實施例中技術方案的過程中,本申請發明人發現現有技術中至少存在如下技術問題:
在依賴于編譯時對源碼的依賴關系提取,無法適用于源碼不完整的程序的接口分析;
程序內回調函數等動態調用關系只能通過人工配置維護,無法自動提取;
由于任務調度信息的傳統獲取方法的上述缺點,導致對模塊函數接口的分析一直存在動態調用關系維護難度大、適用場景有限等問題。
發明內容
本發明提供一種獲取程序中模塊間函數接口的方法和系統,用于實現自動對模塊間函數接口進行獲取的目的。
一方面,本發明通過本申請中的一個實施例,提供如下技術方案:
一種獲取程序中模塊間函數接口的方法,用于獲取可執行程序中模塊間函數接口,所述方法包括:
通過靜態掃描所述可執行程序,生成內部函數靜態調用IFSC關系文件、外部函數調用EFC關系文件,及內部函數動態調用IFDC出口清單文件;
在運行所述可執行程序時,基于所述IFDC出口清單文件,生成IFDC記錄文件;
基于所述EFC關系文件、所述IFSC關系文件及IFDC記錄文件,獲得所述可執行程序中模塊間的函數調用關系表。
可選地,在所述基于所述EFC關系文件、所述IFSC關系文件及IFDC記錄文件,獲得所述可執行程序中模塊間的函數調用關系表之后,基于所述可執行程序中模塊間的實際函數接口關系及標準函數接口關系,獲得所述可執行程序中模塊間的函數接口變更信息。
可選地,所述獲得所述可執行程序中模塊間的函數接口變更信息,具體包括:
基于所述實際函數調用關系表和模塊內部函數清單,獲得所述可執行程序中模塊間的實際函數接口關系;
基于所述可執行程序的標準模塊函數接口配置文件,獲得所述可執行程序中模塊間的標準函數接口關系;
比較所述可執行程序中模塊間的實際函數接口關系及標準函數接口關系,獲得所述可執行程序中模塊間的函數接口變更信息文件。
可選地,所述通過靜態掃描所述可執行程序,生成內部函數靜態調用IFSC關系文件、外部函數調用EFC關系文件,及內部函數動態調用IFDC出口清單文件,具體包括:
提取所述可執行程序中每個函數的用來表征每個函數特征的屬性信息;
分析所述可執行程序的重定位段,生成所述外部函數調用EFC關系文件;
掃描所述可執行程序的每個函數的函數代碼段,獲得每個函數的函數調用指令;
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于中興通訊股份有限公司,未經中興通訊股份有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201110287958.X/2.html,轉載請聲明來源鉆瓜專利網。





