[發明專利]基于多目標社團發現的軟件系統可維護性評估與提升方法有效
| 申請號: | 201410330742.0 | 申請日: | 2014-07-11 |
| 公開(公告)號: | CN104133766B | 公開(公告)日: | 2017-01-04 |
| 發明(設計)人: | 鄭慶華;李劍;王志文;屈宇;劉烴 | 申請(專利權)人: | 西安交通大學 |
| 主分類號: | G06F11/36 | 分類號: | G06F11/36 |
| 代理公司: | 西安通大專利代理有限責任公司61200 | 代理人: | 陸萬壽 |
| 地址: | 710049 *** | 國省代碼: | 臺灣;71 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 基于 多目標 社團 發現 軟件 系統 可維護性 評估 提升 方法 | ||
1.基于多目標社團發現的軟件系統可維護性評估與提升方法,其特征在于,包括以下步驟:
步驟S101:使用靜態代碼分析工具Understand和復雜網絡分析包igraph,實現對Java軟件系統方法調用的最大弱連通子圖的生成;
步驟S102:運用四種基于不同目標的社團劃分算法劃分步驟S101所生成的最大弱連通子圖,并計算每個類的方法社團內聚度;
步驟S103:計算四種社團劃分算法結果的斯皮爾曼相關系數,最后挑選出最大斯皮爾曼相關系數的兩個算法來計算類內聚度和模塊度;
步驟S104:使用閾值過濾算法,找出一些內聚度較低類中可以遷移的方法,輸出這些遷入/遷出的方法,提高這些類的內聚度,提升了整體的模塊度,從而提升了JAVA軟件系統的可維護性。
2.根據權利要求1所述的基于多目標社團發現的軟件系統可維護性評估與提升方法,其特征在于,步驟S101具體包括以下步驟:
步驟S201:對待分析的Java軟件系統解析.java文件,獲取項目中定義的方法列表;
步驟S202:利用靜態代碼分析軟件Understand分析Java軟件系統源代碼,獲取所有方法調用對;
步驟S203:根據步驟S201中獲取到的Java軟件系統中的方法列表以后,對比步驟S202獲取到的所有方法調用對,去掉冗余方法,最終獲得軟件自身方法調用對;
步驟S204:根據軟件自身方法調用對生成軟件方法調用網絡圖;
步驟S205:利用復雜網絡分析包igraph過濾掉軟件方法調用網絡圖的孤立的節點,生成軟件系統方法調用的最大弱連通子圖。
3.根據權利要求1所述的基于多目標社團發現的軟件系統可維護性評估與提升方法,其特征在于,步驟S102具體包括以下步驟:
步驟S301:運用開源的復雜網絡分析包iGraph中的四種社團劃分算法對得到的方法調用的最大弱連通子圖進行劃分;所述四種社團劃分算法為基于模塊度優化(fg)、知識地圖(im)、多級分層(ml)和標簽傳播(lp)的社團劃分算法;
步驟S302:根據步驟S301的劃分結果統計出Java軟件系統中每個類的所屬社團編號;
步驟S303:獲取每個類所屬各個社團的方法數;
步驟S304:計算出每個類的四種社團劃分算法對應的方法社團內聚度;
方法社團內聚度的定義為:令某個類C共有m個方法,經過某個社團劃分算法后,m個方法分布在N個社團中,第k個社團中分布有nk個方法,k=1,…,N,令n1為nk中的最大值,那么可以得到類C基于該社團劃分算法的方法社團內聚度為n1/m。
4.根據權利要求1所述的基于多目標社團發現的軟件系統可維護性評估與提升方法,其特征在于,步驟S103具體包括以下步驟:
步驟S401:計算每兩個社團劃分算法之間的斯皮爾曼相關系數;
步驟S402:挑選6組斯皮爾曼相關系數中的最大值,記錄這這個最大值所對應的兩種社團劃分算法;
步驟S403:運用步驟S402中的兩種社團劃分算法計算JAVA軟件系統的平均模塊度(和每個類的平均社團內聚度;
步驟S404:輸出JAVA軟件系統的平均模塊度和其中每個類的平均社團內聚度。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于西安交通大學,未經西安交通大學許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201410330742.0/1.html,轉載請聲明來源鉆瓜專利網。





