System.ArgumentOutOfRangeException: 索引和長度必須引用該字符串內的位置。 參數名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技術實現步驟摘要】
本申請涉及計算機,特別是涉及一種軟件關鍵函數的識別方法、設備、介質及產品。
技術介紹
1、理解大型軟件系統,一種行之有效的方法是從軟件的核心元素(例如:包、類、函數、屬性等)入手,逐步擴展至其它相關元素,最終掌握整體結構。現有研究已嘗試多種方法識別這些核心元素。但仍然存在如下不足。
2、(1)靜態分析主要從軟件的源代碼提取軟件運行中函數間的調用關系,但靜態分析提取的函數間的調用關系不準確。
3、(2)現有的動態分析主要針對關鍵類和關鍵包的識別,缺少對軟件關鍵函數的識別,導致軟件的可理解性差和維護效率低。
4、(3)現有的動態分析技術依賴于軟件日常運行中收集的日志信息,從日志中解析軟件函數及函數間的關系。對于有些軟件缺少日志信息,則無法使用現有的動態分析技術,進而導致軟件關鍵函數識別準確率低。
5、(4)現有靜態分析和動態分析中因未考慮到軟件運行中使用的函數的重要性的影響,且現有的評價軟件運行中使用的函數的重要性的指標還不夠準確,進而導致對軟件關鍵函數識別準確率低。
6、基于上述不足,如何基于動態分析以及軟件運行過程中函數的重要性的指標,對軟件關鍵函數進行有效識別,以提升軟件的可理解性和可維護性,具有重要的理論和實踐意義。
技術實現思路
1、本申請的目的是提供一種軟件關鍵函數的識別方法、設備、介質及產品,可解決因軟件關鍵函數識別準確率低,導致軟件的可理解性差和維護效率低的問題。
2、為實現上述目的,本申請提供了如
3、第一方面,本申請提供了一種軟件關鍵函數的識別方法,所述軟件關鍵函數的識別方法包括:根據待測軟件的用戶手冊,提取待測軟件的多個測試用例;根據所述多個測試用例運行待測軟件,確定待測軟件的運行軌跡;基于所述運行軌跡,將待測軟件運行過程中的函數間的調用關系抽象為方法調用圖;所述函數間的調用關系表征所述方法調用圖中節點與節點之間的調用關系,所述函數間的調用關系基于動態分析確定;基于所述運行軌跡和所述方法調用圖,確定修正后的方法調用圖;根據所述修正后的方法調用圖,構建一個結構熵指標,并計算所述修正后的方法調用圖中每一個節點對應函數的結構熵指標值作為節點對應函數的重要性值;基于各節點對應函數的重要性值和預設閾值,確定待測軟件關鍵函數。
4、第二方面,本申請提供了一種計算機設備,包括:存儲器、處理器以及存儲在存儲器上并可在處理器上運行的計算機程序,所述處理器執行所述計算機程序以實現上述中所述的軟件關鍵函數的識別方法。
5、第三方面,本申請提供了一種計算機可讀存儲介質,其上存儲有計算機程序,該計算機程序被處理器執行時實現上述中所述的軟件關鍵函數的識別方法。
6、第四方面,本申請提供了一種計算機程序產品,包括計算機程序,該計算機程序被處理器執行時實現上述中所述的軟件關鍵函數的識別方法。
7、根據本申請提供的具體實施例,本申請公開了以下技術效果。
8、本申請提供了一種軟件關鍵函數的識別方法、設備、介質及產品,首先,本申請中針對待測軟件的運行,使用的是從用戶手冊提取的測試用例,這為提取待測軟件的運行軌跡提供了新思路。相比于基于待測軟件運行日志的動態分析方法,本申請基于用戶手冊獲取運行軌跡的方法更具有一般性,可用于獲取更多待測軟件的運行軌跡。然后,基于運行軌跡,將待測軟件運行過程中的函數間的調用關系抽象為方法調用圖,而且函數間的調用關系基于動態分析確定得到的,因此相較靜態分析,本申請通過動態分析確定的函數間的調用關系更準確,更能夠真實的反應軟件運行中函數間的交互關系,如此提升了對軟件關鍵函數識別的準確率。
9、進一步的,根據所述修正后的方法調用圖,構建一個結構熵指標,而結構熵指標能夠準確的評價函數的重要性,可見,通過計算修正后的方法調用圖中每一個節點對應函數的結構熵指標值能夠準確的識別出節點對應函數的重要性,彌補了現有靜態分析和動態分析中因未考慮到待測軟件運行中使用的函數的重要性的影響,導致待測軟件關鍵函數識別準確率低的問題,進而基于準確識別的軟件關鍵函數,可以提高對待測軟件的理解和有效維護,為開發高可信待測軟件提供了技術支持。
本文檔來自技高網...【技術保護點】
1.一種軟件關鍵函數的識別方法,其特征在于,所述軟件關鍵函數的識別方法包括:
2.根據權利要求1所述的軟件關鍵函數的識別方法,其特征在于,根據待測軟件的用戶手冊,提取待測軟件的多個測試用例,具體包括:
3.根據權利要求1所述的軟件關鍵函數的識別方法,其特征在于,根據所述多個測試用例運行待測軟件,確定待測軟件的運行軌跡,具體包括:
4.根據權利要求1所述的軟件關鍵函數的識別方法,其特征在于,所述方法調用圖包括節點的集合和有向邊的集合;
5.根據權利要求4所述的軟件關鍵函數的識別方法,其特征在于,利用所述運行軌跡對所述方法調用圖進行修正,確定修正后的方法調用圖,具體包括:
6.根據權利要求5所述的軟件關鍵函數的識別方法,其特征在于,根據所述共現次數和所述舊邊權值,確定所述有向邊的新邊權值,具體包括:
7.根據權利要求1所述的軟件關鍵函數的識別方法,其特征在于,計算所述修正后的方法調用圖中每一個節點對應的函數的結構熵指標值作為節點對應的函數的重要性值,具體包括:
8.一種計算機設備,包括:存儲器、處理器
9.一種計算機可讀存儲介質,其上存儲有計算機程序,其特征在于,該計算機程序被處理器執行時實現權利要求1-7中任一項所述的軟件關鍵函數的識別方法。
10.一種計算機程序產品,包括計算機程序,其特征在于,該計算機程序被處理器執行時實現權利要求1-7中任一項所述的軟件關鍵函數的識別方法。
...【技術特征摘要】
1.一種軟件關鍵函數的識別方法,其特征在于,所述軟件關鍵函數的識別方法包括:
2.根據權利要求1所述的軟件關鍵函數的識別方法,其特征在于,根據待測軟件的用戶手冊,提取待測軟件的多個測試用例,具體包括:
3.根據權利要求1所述的軟件關鍵函數的識別方法,其特征在于,根據所述多個測試用例運行待測軟件,確定待測軟件的運行軌跡,具體包括:
4.根據權利要求1所述的軟件關鍵函數的識別方法,其特征在于,所述方法調用圖包括節點的集合和有向邊的集合;
5.根據權利要求4所述的軟件關鍵函數的識別方法,其特征在于,利用所述運行軌跡對所述方法調用圖進行修正,確定修正后的方法調用圖,具體包括:
6.根據權利要求5所述的軟件關鍵函數的識別方法,其特征在于,根據所述共現次數和所述舊邊權值...
【專利技術屬性】
技術研發人員:姜波,楊燕微,潘偉豐,王家樂,徐文君,顏京鵬,崔曉龍,
申請(專利權)人:浙江工商大學,
類型:發明
國別省市:
還沒有人留言評論。發表了對其他瀏覽者有用的留言會獲得科技券。