System.ArgumentOutOfRangeException: 索引和長度必須引用該字符串內的位置。 參數名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技術實現步驟摘要】
本專利技術屬于軟件度量,尤其涉及一種軟件度量系統和方法。
技術介紹
1、軟件代碼度量及靜態分析是保證代碼質量的有效手段,傳統度量工具為通用化或專用化的度量工具。其中,通用化度量工具結果的數據格式不符合標準化要求,而且度量結果針對文件、函數,沒有進行統計,直接從度量結果獲取統計結果計算困難、工作量大;專用化工具專用性強,在度量時需要設置特定參數或需要大量樣本進行模型訓練,對軟件度量不具有普適性,得到的度量結果同樣難以進行標準化。
2、如公開號為cn116089311a的中國專利,公開了一種差異化軟件度量方法、裝置及存儲介質,應用于軟件監督
,包括:建立度量指標池,設置三種度量體系,根據產品自身的屬性去匹配不同的度量體系,這樣根據產品的屬性或在公司內的重要程度可以選擇不同的度量指標,且產品每一個生命周期結束后,重新匹配度量體系,避免了產品在不同生命周期,自身屬性或對公司的重要度發生變化時,度量指標不能實時更新的問題,解決了現有技術中,采用一套度量體系去度量公司內所有軟件產品,存在部分產品不適應當前的度量體系的問題。但該專利度量標準包括了用戶滿意度、線上安全風險數等在軟件文件中無法度量的指標,適用于軟件開發,不適用于對軟件代碼進行直接度量;而且該專利專用性強,難以實現數據格式標準化,每個軟件都需要設置相應的度量指標。
3、如公告號為cn109583476b的中國專利,公開了一種基于軟件開發過程的軟件度量方法、系統及電子設備,所述系統包括:數據采集模塊,用于獲取軟件各維度的數據,作為基本度量元;預處理模塊,
技術實現思路
1、為解決上述技術問題,本專利技術提供了一種軟件度量系統和方法。
2、本專利技術通過以下技術方案得以實現。
3、本專利技術提供的一種軟件度量系統,包括:
4、轉換模塊:用于獲取指定軟件工程的所有文件,將軟件工程文件轉換為udb文件;
5、底層分析模塊:用于分析udb文件,獲取軟件度量結果,根據軟件度量結果生成軟件度量報告;
6、界面顯示模塊:用于控制軟件度量系統,連接底層分析模塊和報告顯示模塊;
7、報告顯示模塊:用于顯示軟件度量報告。
8、優選地,所述轉換模塊支持understandc++工具。
9、優選地,所述底層分析模塊包括:
10、基本信息組件:用于度量軟件的基本信息;
11、文件信息組件:用于度量軟件的文件信息;
12、函數信息組件:用于度量軟件的函數信息;
13、其他信息組件:用于度量軟件的扇出信息和調用參數信息;
14、goto語句組件:用于判斷軟件中是否有關鍵字為goto的語句。
15、優選地,所述基本信息組件包括:
16、軟件單元空行數子模塊:用于度量軟件單元的空行數;
17、軟件單元代碼行數子模塊:用于度量軟件單元的代碼行數;
18、軟件單元注釋行數子模塊:用于度量軟件單元的注釋行數;
19、軟件單元總行數子模塊:用于度量軟件單元的總行數。
20、優選地,所述文件信息組件包括:
21、軟件文件代碼行數子模塊:用于度量軟件文件的代碼行數;
22、軟件文件注釋行數子模塊:用于度量軟件文件的注釋行數;
23、軟件文件總行數子模塊:用于度量軟件文件的總行數;
24、軟件單元最大規模子模塊:用于度量軟件單元的最大規模。
25、優選地,所述函數信息組件包括:
26、函數代碼行數子模塊:用于度量函數的代碼行數;
27、圈復雜度子模塊:用于度量圈復雜度;
28、基本復雜度子模塊:用于度量基本復雜度。
29、優選地,所述其他信息組件包括:
30、扇出數子模塊:用于度量函數調用的下層函數個數;
31、調用參數子模塊:用于度量函數參數個數。
32、優選地,所述報告顯示模塊支持txt格式。
33、一種軟件度量方法,通上述的軟件度量系統實現,包括以下步驟:
34、s1、通過界面顯示模塊導入軟件工程文件;
35、s2、通過轉換模塊將軟件工程文件轉換,獲取udb文件;
36、s3、通過底層分析模塊分析udb文件,獲取軟件度量結果,所述軟件度量結果包括文本度量、注釋度量、扇出數、函數參數、圈復雜度、基本復雜度和goto語句;
37、s4、根據軟件度量結果生成軟件度量報告;
38、s5、通過報告顯示模塊顯示軟件度量報告。
39、優選地,所述文本度量包括軟件單元的語句數、軟件單元的可執行語句數和軟件文件的語句總數;
40、所述通過底層分析模塊分析udb文件,獲取軟件度量結果包括以下步驟:
41、s31、通過goto語句組件判斷軟件中是否有關鍵字為goto的語句;
42、s32、通過基本信息組件獲取軟件單元的語句數、軟件單元的可執行語句數和軟件單元的注釋語句數;
43、s33、通過文件信息組件獲取軟件文件的語句總數;
44、s34、通過函數信息組件獲取圈復雜度和基本復雜度;
45、s35、通過扇出數子模塊獲取扇出數;
46、s36、通過調用參數子模塊獲取函數參數。
47、本專利技術的有益效果在于:
48、通過轉換模塊將軟件工程文件轉換為udb文件,再對udb文件進行底層分析,對代碼度量進行自動化計算,可快速實現軟件度量結果整理、報表生成,效率高;獲得的數據可以進行標準化,擴展性強,成本低,適用于后續項目軟件度量操作。
本文檔來自技高網...【技術保護點】
1.一種軟件度量系統,其特征在于,包括:
2.如權利要求1所述的軟件度量系統,其特征在于,所述轉換模塊支持UnderstandC++工具。
3.如權利要求1所述的軟件度量系統,其特征在于,所述底層分析模塊包括:
4.如權利要求3所述的軟件度量系統,其特征在于,所述基本信息組件包括:
5.如權利要求3所述的軟件度量系統,其特征在于,所述文件信息組件包括:
6.如權利要求3所述的軟件度量系統,其特征在于,所述函數信息組件包括:
7.如權利要求3所述的軟件度量系統,其特征在于,所述其他信息組件包括:
8.如權利要求1所述的軟件度量系統,其特征在于,所述報告顯示模塊支持TXT格式。
9.一種軟件度量方法,其特征在于,通過如權利要求1-8任一項所述的軟件度量系統實現,包括以下步驟:
10.如權利要求9所述的軟件度量方法,其特征在于,所述文本度量包括軟件單元的語句數、軟件單元的可執行語句數和軟件文件的語句總數;
【技術特征摘要】
1.一種軟件度量系統,其特征在于,包括:
2.如權利要求1所述的軟件度量系統,其特征在于,所述轉換模塊支持understandc++工具。
3.如權利要求1所述的軟件度量系統,其特征在于,所述底層分析模塊包括:
4.如權利要求3所述的軟件度量系統,其特征在于,所述基本信息組件包括:
5.如權利要求3所述的軟件度量系統,其特征在于,所述文件信息組件包括:
6.如權利要求3所述的軟件度量系統,其特征在...
【專利技術屬性】
技術研發人員:汪玥,胡業火,曾杰,秦發林,胡乃寬,石海,蘭春夢,
申請(專利權)人:貴州航天風華精密設備有限公司,
類型:發明
國別省市:
還沒有人留言評論。發表了對其他瀏覽者有用的留言會獲得科技券。