本發明專利技術涉及軟件工程技術領域,具體公開了一種汽車軟件模塊劃分系統、方法及存儲介質,其中方法包括如下內容:S1、導入汽車軟件的項目配置文件夾和目錄結構,從目錄結構中獲取模塊組件對應關系;通過解析項目配置文件獲得架構中端口信息;S2、對端口進行預處理,根據端口和軟件組件的發送、接收對應關系創建邊集,遍歷邊集獲得軟件組件之間的交互關系,根據交互關系得到軟件組件的依賴矩陣;S3、對依賴矩陣進行處理作為社區發現算法的輸入,采用不同社區發現算法對組件進行模塊劃分,計算劃分后的模塊度;S4、對比不同社區發現算法得到的模塊度和模塊數,得出推薦的劃分結果。采用本發明專利技術的技術方案能夠有效的降低組件耦合,提高模塊的內聚性。的內聚性。的內聚性。
【技術實現步驟摘要】
一種汽車軟件模塊劃分系統、方法及存儲介質
[0001]本專利技術涉及軟件工程
,特別涉及一種汽車軟件模塊劃分系統、方法及存儲介質。
技術介紹
[0002]軟件模塊聚類是軟件工程中一個重要而富有挑戰性的問題。聚類分析是一種無監督的數據挖掘技術,將一組數據點分組為幾個模塊。當幾個點落在一個模塊內時,它們在某些特征上是相似的。相似性和相異性的測量取決于數據點共享相同特征的程度。通常來說,一個好的軟件工程是兼具高內聚性和低耦合性的模塊結構,具有這種結構的軟件系統對于開發人員而言更容易進行開發和后期維護。但是,隨著軟件的發展,軟件的功能變得越發復雜,隨之規模增大,導致其模塊化結構往往會出現退化的情況,從而持續增加后續軟件維護和測試所花費的時間,同時也會消耗人力資源進行維護和測試,增加軟件開發的成本。
[0003]此外,汽車嵌入式系統是汽車的安全關鍵系統,汽車軟件開發必須在整個開發周期中保持著高安全的規范標準。為滿足這些安全規范和復雜的功能要求,汽車軟件采用基于模型的軟件開發方式。在實際的應用當中,基于模型的軟件開發通常采用正向開發流程(如經典的V模型),以保證開發的高效率和軟件的高質量。正向開發過程定義了開發和測試的不同階段,包括需求分析、架構設計(高級設計)、詳細設計(低級設計)、代碼開發、軟件測試等等。成功的軟件應用程序注定要不斷地進化和發展,同時隨著軟件應用程序的發展和增長,其架構也在發展。相對于實現的物理體系結構,概念體系結構經常變得不準確。因此在軟件開發生命周期中,軟件架構設計階段是最重要的階段之一,因為它有助于實現軟件重用,并對于后續的詳細設計和編程具有指導意義。汽車軟件架構設計將一個軟件項目劃分為多個模塊,各模塊下包含多個軟件組件,并定義這些軟件組件之間的交互關系,基于該交互關系便能很好的進行模塊聚類,從而對汽車軟件架構的模塊設計進行重構。
[0004]隨著技術的發展,由于人們對于汽車軟件工程所包含的功能和特性的要求逐漸增加,軟件系統從簡單的單層或雙層結構發展到多層體系結構,導致汽車軟件應用程序的規模急劇增加,同時這反過來又導致這些汽車應用程序的模塊數量增加,從而影響汽車軟件的模塊化。這導致工程師在設計架構時對于模塊的設計主要基于主觀的經驗,可能會有偏差。同時,影響汽車軟件架構度量質量的主要因素之一是汽車軟件架構中組件之間的耦合性較大,如果能夠降低耦合性、實現高內聚便能有效提升汽車軟件的質量。
[0005]為此,需要一種能夠有效的降低組件耦合,提高模塊的內聚性,滿足軟件工程“高內聚低耦合”要求的汽車軟件模塊劃分系統、方法及存儲介質。
技術實現思路
[0006]本專利技術的目的之一在于,提供了一種汽車軟件模塊劃分方法,能夠有效的降低組件耦合,提高模塊的內聚性。
[0007]為了解決上述技術問題,本申請提供如下技術方案:
[0008]一種汽車軟件模塊劃分方法,包括如下內容:
[0009]S1、導入文件提取架構元素:導入汽車軟件的項目配置文件夾和目錄結構,從目錄結構中獲取模塊組件對應關系;
[0010]通過解析項目配置文件獲得架構中所有的軟件組件以及每個軟件組件所包含的端口,還根據解析出的節點值為端口賦予屬性,整理得到包括端口信息和模塊組件對應關系的架構元素;
[0011]S2、構建軟件組件交互關系:根據提取出的架構元素,匯總端口集合,對端口進行預處理,根據端口和軟件組件的發送、接收對應關系創建邊集,遍歷邊集獲得軟件組件之間的交互關系,根據交互關系得到軟件組件的依賴矩陣;
[0012]S3、進行模塊劃分:對依賴矩陣進行處理作為社區發現算法的輸入,采用不同社區發現算法對組件進行模塊劃分,計算劃分后的模塊度;
[0013]S4、對比聚類前后架構情況:對比不同社區發現算法得到的模塊度和模塊數,得出推薦的劃分結果。
[0014]進一步,所述步驟S3中,分別采用社區發現算法中的GN算法和CNM算法對組件進行模塊劃分,計算劃分后的模塊度;
[0015]步驟S4中,對比GN算法和CNM算法得到的模塊度和模塊數,得出推薦的劃分結果。
[0016]進一步,所述步驟S4中,還將推薦劃分方式和劃分前的初始汽車軟件架構進行對比,對比項包括模塊度、模塊數、各模塊包含組件情況。
[0017]進一步,所述步驟S1具體包括:
[0018]讀取汽車軟件的目錄結構,根據目錄結構中,每個模塊文件夾下包含的軟件組件,得到模塊組件對應關系,根據模塊組件對應關系,生成模塊關系映射表格;
[0019]讀取汽車軟件的項目配置文件夾;項目配置文件夾中包含多個xml文件,每個xml文件對應汽車軟件架構中的一個軟件組件;通過遞歸獲取項目配置文件夾中所有的xml文件,獲取xml文件的xml文檔對象;查找xml文檔對象中的指定節點,并遞歸查找指定節點下的所有子節點;根據子節點的節點名判斷所屬屬性,將子節點的節點值賦予屬性;整理節點的屬性,根據節點的屬性賦予端口屬性,得到端口信息。
[0020]進一步,所述步驟S1中,屬性包括所在軟件組件名稱、端口名稱、端口類型、接口以及接口類型。
[0021]進一步,所述步驟S2具體包括:
[0022]S201、獲得架構元素中的端口信息后,根據端口信息匯總端口集合,根據端口的元素屬性劃分為提供端口或為需求端口,分別為提供端口添加pp_前綴,為需求端口添加rp_前綴,將預處理后的端口及其元素屬性匯總,形成端口集合;
[0023]S202、依據端口的名稱進行排序;
[0024]S203、創建N個集合對具有相同名稱的端口進行保存,遍歷集合中的每個端口,若端口的前綴為pp_,則將該端口所在的軟件組件標記為發送組件,將集合中的其他軟件組件標記為接收組件;
[0025]S204、根據端口和軟件組件的發送、接收對應關系創建邊集,遍歷邊集獲得軟件組件之間的交互關系,得到軟件組件的依賴矩陣。
[0026]進一步,所述步驟S3具體包括:
[0027]對依賴矩陣進行處理,將依賴矩陣中所有的軟件組件以及軟件組件之間的交互關系抽象成網絡結構,將依賴矩陣中的非0值作為軟件組件節點之間的邊;
[0028]采用GN算法,遍歷網絡結構,找出網絡結構中每一個軟件組件節點到其他軟件組件節點的最短路徑,遍歷網絡結構中的邊,統計所有最短路徑經過每條邊的次數作為每條邊的邊介數,找到邊介數最大的邊將其移除網絡結構,重新計算移除后網絡結構中剩余邊的邊介數,并保存當前的劃分情況與模塊度,重復以上兩步操作,直到網絡結構中每個軟件組件節點都為一個獨立的模塊,選取每次劃分后模塊度最大的劃分結果作為最終的劃分結果;
[0029]采用CNM算法,將網絡結構中的每個頂點都作為一個單獨的模塊,合并使得目前網絡結構的模塊度的增值最大的社區對;當網絡結構中的所有節點屬于同一社區時,則停止合并;得到一個樹圖,樹圖中的葉子節點表示網絡結構中的頂點,每一層對應網絡結構的某一劃分過程,從所有層次劃分中選擇模塊度值最大的劃分為最終的本文檔來自技高網...
【技術保護點】
【技術特征摘要】
1.一種汽車軟件模塊劃分方法,其特征在于,包括如下內容:S1、導入文件提取架構元素:導入汽車軟件的項目配置文件夾和目錄結構,從目錄結構中獲取模塊組件對應關系;通過解析項目配置文件獲得架構中所有的軟件組件以及每個軟件組件所包含的端口,還根據解析出的節點值為端口賦予屬性,整理得到包括端口信息和模塊組件對應關系的架構元素;S2、構建軟件組件交互關系:根據提取出的架構元素,匯總端口集合,對端口進行預處理,根據端口和軟件組件的發送、接收對應關系創建邊集,遍歷邊集獲得軟件組件之間的交互關系,根據交互關系得到軟件組件的依賴矩陣;S3、進行模塊劃分:對依賴矩陣進行處理作為社區發現算法的輸入,采用不同社區發現算法對組件進行模塊劃分,計算劃分后的模塊度;S4、對比聚類前后架構情況:對比不同社區發現算法得到的模塊度和模塊數,得出推薦的劃分結果。2.根據權利要求1所述的汽車軟件模塊劃分方法,其特征在于:所述步驟S3中,分別采用社區發現算法中的GN算法和CNM算法對組件進行模塊劃分,計算劃分后的模塊度;步驟S4中,對比GN算法和CNM算法得到的模塊度和模塊數,得出推薦的劃分結果。3.根據權利要求2所述的汽車軟件模塊劃分方法,其特征在于:所述步驟S4中,還將推薦劃分方式和劃分前的初始汽車軟件架構進行對比,對比項包括模塊度、模塊數、各模塊包含組件情況。4.根據權利要求3所述的汽車軟件模塊劃分方法,其特征在于:所述步驟S1具體包括:讀取汽車軟件的目錄結構,根據目錄結構中,每個模塊文件夾下包含的軟件組件,得到模塊組件對應關系,根據模塊組件對應關系,生成模塊關系映射表格;讀取汽車軟件的項目配置文件夾;項目配置文件夾中包含多個xml文件,每個xml文件對應汽車軟件架構中的一個軟件組件;通過遞歸獲取項目配置文件夾中所有的xml文件,獲取xml文件的xml文檔對象;查找xml文檔對象中的指定節點,并遞歸查找指定節點下的所有子節點;根據子節點的節點名判斷所屬屬性,將子節點的節點值賦予屬性;整理節點的屬性,根據節點的屬性賦予端口屬性,得到端口信息。5.根據權利要求4所述的汽車軟件模塊劃分方法,其特征在于:所述步驟S1中,屬性包括所在軟件組件名稱、端口名稱、端口類型、接口以及接口類型。6.根據權利要求5所述的汽車軟件模塊劃分方法,其特征在于:所述步驟S2具體包括:S201、獲得架構元素中的端口信息后,根據端口信息匯總端口集合,根據端口的元素屬性劃分為提供端口或為需求端口,分別為提供端口添加pp_前綴,為需求端口添加rp_前綴,將預處理后的端口及其元素屬性匯總,形成端口集合;S202、依據端口的名稱進行排序;S203、創建N個集合對具有相同名稱的端口進行保存,遍歷集合中...
【專利技術屬性】
技術研發人員:謝國琪,楊嘉凌,謝嬌,張雅文,肖雄仁,劉彥,李仁發,
申請(專利權)人:湖南大學重慶研究院,
類型:發明
國別省市:
還沒有人留言評論。發表了對其他瀏覽者有用的留言會獲得科技券。