使用 Visual Studio 的“代碼度量值”來改進代碼質(zhì)量
代碼度量是一組軟件度量值,使開發(fā)人員可以更好地了解他們正在開發(fā)的代碼。 利用代碼度量,開發(fā)人員可以了解哪些類型和/或方法應該返工或進行更徹底的測試。 開發(fā)團隊可以識別潛在的風險、了解項目的當前狀態(tài),并跟蹤軟件開發(fā)的進度。
1 軟件度量值指標
1.1 可維護性指數(shù)
表示源代碼的可維護性,數(shù)值越高可維護性越好。該值介于0到100之間。綠色評級在20到100之間,表明該代碼具有高度的可維護性;黃色評級在10到19之間,表示該代碼適度可維護;紅色評級在0至9之間,表示低可維護性。
1.2 圈復雜度
它是通過計算程序流中不同代碼路徑的數(shù)量來創(chuàng)建的,用來表示一個程序的復雜性。具有復雜控制流的程序需要更多的測試才能獲得良好的代碼覆蓋率,并且不易維護。
以下兩種情況會在計算圈復雜度時加1:
分支(if、while、do)
switch中的case語句
例如:
//圈復雜度1
public void Method()
{
Console.WriteLine("Hello World!");
}
//圈復雜度3
public void Method(bool condition1, bool condition2)
{
if (condition1 || condition2)
{
Console.WriteLine("Hello World!");
}
}
//圈復雜度8
public void Method(DayOfWeek day)
{
switch (day)
{
case DayOfWeek.Monday:
Console.WriteLine("Today is Monday!");
break;
case DayOfWeek.Tuesday:
Console.WriteLine("Today is Tuesday!");
break;
case DayOfWeek.Wednesday:
Console.WriteLine("Today is Wednesday!");
break;
case DayOfWeek.Thursday:
Console.WriteLine("Today is Thursday!");
break;
case DayOfWeek.Friday:
Console.WriteLine("Today is Friday!");
break;
case DayOfWeek.Saturday:
Console.WriteLine("Today is Saturday!");
break;
case DayOfWeek.Sunday:
Console.WriteLine("Today is Sunday!");
break;
}
}
1.3 繼承深度
計算在繼承層次結構中的繼承深度,繼承樹中層次結構越深,類的開發(fā)、測試和維護就越復雜,因為層次結構越深,理解特定方法和字段的定義和(或)重新定義的難度也就越大。
1.4 類耦合度
類耦合是一個類是如何與另一個類連接或依賴的度量。好的做法是總是實現(xiàn)較少的依賴類或低級耦合。
1.5 代碼行數(shù)
表示代碼行數(shù),計數(shù)基于IL代碼,因此不是源代碼文件中的確切行數(shù)。一個非常高的計數(shù)可能表明一種類型或方法試圖做太多的工作,應該分開。它還可能表明類型或方法可能難以維護。
2 計算代碼度量值
Step 01 運行“計算代碼度量值”

Step 02 查看“代碼度量值結果”


Step 03 使用“代碼度量值結果”
篩選:

導出:

列管理:


計算代碼度量值:

總結
以上所述是小編給大家介紹的通過 Visual Studio 的“代碼度量值”來改進代碼質(zhì)量,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!
相關文章
通過Web Service實現(xiàn)IP地址查詢功能的示例
下面小編就為大家分享一篇通過Web Service實現(xiàn)IP地址查詢功能的示例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2017-12-12
Entity?Framework根據(jù)實體的EntityState狀態(tài)實現(xiàn)增刪改查
這篇文章介紹了Entity?Framework根據(jù)實體的EntityState狀態(tài)實現(xiàn)增刪改查,文中通過示例代碼介紹的非常詳細。對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2022-03-03
ASP.NET中根據(jù)XML動態(tài)創(chuàng)建使用WEB組件
ASP.NET中根據(jù)XML動態(tài)創(chuàng)建使用WEB組件...2006-09-09
jQuery調(diào)用WebService返回JSON數(shù)據(jù)及參數(shù)設置注意問題
.NET Framework 3.5的發(fā)布解決了WebService調(diào)用中json問題,本文將介紹jQuery調(diào)用基于.NET Framework 3.5的WebService返回JSON數(shù)據(jù),感興趣的朋友可以了解下,希望本文對你有所幫助2013-01-01

