[發(fā)明專利]一種基于g核分解的軟件關鍵函數識別方法有效
| 申請?zhí)枺?/td> | 201910033265.4 | 申請日: | 2019-01-14 |
| 公開(公告)號: | CN109918129B | 公開(公告)日: | 2022-12-23 |
| 發(fā)明(設計)人: | 潘偉豐;李浩;王家樂;姜波;柴春來 | 申請(專利權)人: | 深圳市準數科技有限公司 |
| 主分類號: | G06F8/77 | 分類號: | G06F8/77 |
| 代理公司: | 南通寧競智凡專利代理事務所(普通合伙) 32666 | 代理人: | 孫珍珍 |
| 地址: | 518000 廣東省深圳市福田區(qū)福田*** | 國省代碼: | 廣東;44 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 基于 分解 軟件 關鍵 函數 識別 方法 | ||
本發(fā)明公開了一種基于g核分解的軟件關鍵函數識別方法,包括以下步驟:將Java語言編寫的軟件在運行時的函數執(zhí)行過程抽象為函數依賴圖;基于函數依賴圖計算函數節(jié)點的g核數;以函數節(jié)點的g核數作為其重要性的度量指標進行降序排序,得到關鍵函數。本發(fā)明中函數依賴圖的構建是基于Java軟件在執(zhí)行時的動態(tài)分析構建的,代表了軟件中的函數及函數間的真實交互關系,比基于軟件源代碼的靜態(tài)分析方法更加準確,在一定程度上克服了基于靜態(tài)分析的關鍵元素識別方法模型不準確的問題。本發(fā)明彌補了現有技術鮮有涉及細粒度的關鍵函數識別的不足,對于提高軟件理解效率、軟件測試效率、代碼維護效率等具有重要意義。
技術領域
本發(fā)明涉及一種軟件關鍵函數識別方法,尤其涉及一種基于g核分解的軟件關鍵函數識別方法。
背景技術
計算機軟件已經深入我們生活的方方面面,成為我們生活不可或缺的一部分。軟件正在改變,并將持續(xù)改變我們的生活。人們對軟件的功能和性能需求越來越高,導致軟件的規(guī)模日益復雜,質量難以保證。當新的需求出現時,舊的軟件往往需要通過一定的維護工作,才能適應新的需求。然而,軟件的復雜性使得軟件的維護工作日益復雜,維護代價一直居高不下,占了軟件總費用的60%以上。要對舊的軟件進行維護,首要的問題是理解待維護的軟件。然而軟件的復雜性使得軟件的理解比較困難。因此,提供一種有效的技術來輔助維護人員對軟件的理解,進而簡化軟件的維護工作,降低維護費用是一項技術難題。
從軟件的關鍵元素(包、類、函數、屬性等)開始理解軟件是一種可行的方法。首先理解關鍵的元素,然后在理解與關鍵元素相關的元素,從而逐步理解整個軟件。為了識別軟件中的關鍵元素,人們提出了不同的方法:Zaidman等人構建了靜態(tài)類依賴圖,并使用HITS算法識別關鍵類。周毓明等人用類依賴圖抽象類粒度的軟件系統(tǒng),并使用PageRank算法、HITS和介數中心性等方法識別關鍵類。姜淑娟等人構建了軟件的狀態(tài)轉換模型,進而通過計算狀態(tài)轉換樹節(jié)點的復雜度來識別關鍵類。潘偉豐等人構建了類粒度、包粒度的軟件結構圖,進而通過使用PageRank算法識別軟件中的關鍵類和關鍵包。盡管目前已經有一些軟件關鍵元素識別方面的工作,但是仍有如下不足:
(1)現有的工作主要集中于軟件代碼的靜態(tài)分析,缺少對軟件實際運行時的動態(tài)分析。靜態(tài)分析不需要運行軟件,僅僅依靠軟件源代碼,提取的元素間的關系實際上是一種“最壞”情況下的關系,可能包含多余的關系;動態(tài)分析需要運行軟件,收集軟件運行過程中的元素及元素間的關系,代表的是元素間的真實交互。動態(tài)分析比靜態(tài)分析更準確。
(2)現有工作主要是針對關鍵包、關鍵類的識別,缺少對關鍵函數的識別。
包和類是粒度比較大的軟件元素,而函數是相對細粒度的軟件元素。提出識別關鍵函數的技術可以彌補現有工作的不足,從而從粗粒度到細粒度,全方位的識別軟件關鍵元素,為軟件理解、軟件測試及軟件維護工作提供技術支持。
發(fā)明內容
本發(fā)明的目的在于針對現有技術的不足,提供了一種基于g核分解的軟件關鍵函數識別方法。
本發(fā)明的上述技術問題主要是通過下述技術方案得以解決的:一種基于g核分解的軟件關鍵函數識別方法,該方法包括以下步驟:
(1)將Java語言編寫的軟件在函數粒度抽象為函數依賴圖FG=(N,D),其中,N為軟件中的函數節(jié)點的集合;D={(fi,fj)}(fi∈N,fj∈N)是無向邊的集合,表示函數間的調用關系;每條邊將被賦予一個非負整數,作為函數調用關系的強度值。
(2)基于步驟(1)構建的FG計算函數節(jié)點i的g核數g(i),作為節(jié)點相應函數的重要性值。
(3)基于步驟(2)所得的函數節(jié)點的g核數對函數節(jié)點進行降序排列,得到關鍵函數。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于深圳市準數科技有限公司,未經深圳市準數科技有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業(yè)授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201910033265.4/2.html,轉載請聲明來源鉆瓜專利網。





