【0.1程式碼編寫知識】之【計算程式碼度量值】
今天我們探討一下VS2017中【計算程式碼度量值】涉及到的相關指標。
可維護性指數
可維護性指數用一個公式計算,考慮到了圈複雜性、程式碼行以及Halstead量,Halstead量也是一個度量,考慮操作符和運算元的總數。該指數的範圍是0~100,數值越高就越容易維護。
圈複雜度
圈複雜度(Cyclomatic complexity)是一種程式碼複雜度的衡量標準,在1976年由Thomas J. McCabe, Sr. 提出。
在軟體測試的概念裡,圈複雜度用來衡量一個模組判定結構的複雜程度,數量上表現為線性無關的路徑條數,即合理的預防錯誤所需測試的最少路徑條數。圈複雜度大說明程式程式碼可能質量低且難於測試和維護,根據經驗,程式的可能錯誤和高的圈複雜度有著很大關係。
繼承深度
類具有多少個父類。類並非越深越好,不同於生物分類學,在構造類以及類的繼承關係時,應該充分考慮抽象的深度和廣度,做到恰如其分,客觀上深度不應超過6個。
類耦合度
耦合性(英語:Coupling,dependency,或稱 耦合力 或 耦合度 )是一種軟體度量,是指一程式中,模組及模組之間資訊或引數依賴的程度。
內聚性是一個和耦合性相對的概念,一般而言低耦合性代表高內聚性,反之亦然。耦合性和內聚性都是由提出結構化設計概念的賴瑞·康斯坦丁所提出[1]。低耦合性是結構良好程式的特性,低耦合性程式的可讀性及可維護性會比較好。
從學習軟體程式設計的第一天起,就傾聽老師的教誨,軟體模組之間要做到高內聚、低耦合,當然絕對的無耦合是不存在的事物,無耦合往往意味著無所作為;而內聚性有體現出模組是否具有相對獨立的職責且職責明確,模組與模組之間沒有職責重疊。
程式碼行數
LOC(Lines of code),採用不同語言編寫具有同樣功能的程式,程式碼行數的量級上往往有很大差別,程式碼行數是衡量和評估軟體系統規模的參考指標,但並不是衡量程式設計師績效的金標準。
下面我們來看看如何通過VS2017計算程式碼度量值。
在解決方案上,依次進行【右鍵】【計算程式碼度量值】:

計算程式碼度量值.png
如下將顯示程式碼度量值結果:

程式碼度量值結果.png
在軟體開發過程中,應該每固定週期衡量一下解決方案的程式碼度量值;如果在組織中進行開發,應該儘早設定各個程式碼度量值的閾值,因為指標過低或越界,就意味著一定的程式碼壞味道,是時候進行適當的重構。