Visual Studio”程式碼度量/程式碼複雜度” 進而改進程式碼質量

優化系統時,有時候主管會詢問你這次優化的成效如何?
如果是沒有量化的分析,回答會是
「這次優化程式碼可維護性,專案之間解耦合」

但每個人對於可維護性看法都不同,若有量化數據回答會是
「這次優化”可維護性指數”從80提升至90,”類別結合程度”從30降低至22」

只要能夠善用程式碼度量資訊,也可以更進一步知道哪一個類別或方法測試案例不足
也可讓開發團隊找出潛在的風險,例如: 專案是否耦合性太高、專案維護性低等等

程式碼度量五指標

 

可維護性指數 Maintainbility Index

該指標主要測量程式碼的維護性,數值越高表示維護性越好
綠色等級: 20 ~ 100 (表示程式碼可維護性良好)
黃色等級: 10 ~ 19 (表示程式碼可維護性適中)
紅色等級: 0 ~ 9 (表示可維護性低)

循環複雜度 Cyclomatic Complexity

該指標主要測試程式碼在結構上的複雜程度,數值越低表示複雜度越低
複雜度判斷方式為計算程式流程中不同程式碼路徑的數目
若控制流程較為複雜,程式需要執行較多的測試也必須更多,才能達到正確的程式碼涵蓋範圍

繼承深度 Depth of Inheritance

該指標主要測試程式碼在結構上的階層深度,數值越低表示深度較低較佳
深度的判斷方式為子類別(Class) 延伸至根類別 (Root Class) 的類別定義數目
若階層愈深,可能愈難找出定義或重新定義特定方法和欄位的位置

類別結合程度 Class Coupling

該指標主要測試程式碼在結構上的結合程度,數值越低表示結合程度較低較佳
透過參數、區域變數、傳回型別、方法呼叫、泛型或樣板具現化、基底型別、介面實作、外部型別上定義的欄位以及屬性修飾等,測量特殊類別的結合程度
良好的軟體設計應指定聚結性 (Cohesion) 高,但結合程度 (Coupling) 低的型別和方法
結合程度高表示設計不易重複使用,因為這種設計包含對其他型別的許多相依性

程式碼行數 Lines of Cod

該指標主要偵測程式碼行數約略值,數值越低表示結合程度較低較佳
數目是以 IL 程式碼為依據,因此不是原始程式碼檔案中精確的行數
若單一檔案或單一專案數值過大,建議要拆分專案或檔案,進而可能提高維護性與版控衝突

留言

Top