İlk makalemizde genel bir giriş yapmış ve kod metriklerinden bahsetmiştik. Kod Analizi aracı yönetilebilir assemblyleri analiz ederek, assemblyler hakkında bilgileri raporlayan bir araçtır. Microsoft .Net Framework Dizayn Kurallarına göre programlama ve dizayn kuralı ihlallerini gösterir. Analiz aracı, kontrol ettiği kurallara uymayan yerleri birer uyarı olarak gösterir. Uyarı mesajları, hangi kuralın ihlal edildiğine ve mümkünse problemin nasıl çözüleceğine dair bilgileri içerir.
Kod Analizi Özelliğinin Açılması
Solution Explorer’da bir proje seçilip projenin properties’ine girilerek, Code analysis tabına gidilebilir. Şekil 1’deki gibi Enable Code Analysis on Build (defines CODE_ANALYSIS constant) seçeneği işaretlenirse, şekilde gözüken kuralların hepsi kontrol edilecektir. İstenilen kural işareti kaldırılarak devre dışı bırakılabilir.
Şekil 1. Code Analysis Tab |
Maintainability Index, Class Coupling, Depth of Inheritance ve Cyclomatic Complexity metrikleri, Visual Studio’nun kod analizinde kural olarak tanımlıdır. Bu kuralları açarak kod metriklerine uygun kod yazılabilmesi sağlanabilir. Bu kurallar şekil 1’de gösterildiği gibi Code Analysis tabındaki “Maintainability Rules” penceresi altında durmaktadır. Hangi kuralın hangi kod metriğine karşılık geldiği ve hangi koşullarda uyarı verecekleri ise Tablo 1’de gösterilmiştir.
Tablo1. Kod Metrikleri ve Treshold Kuralları
Metric | Corresponding Rule | Threshold |
Depth of Inheritance | CA1501 AvoidExcessiveInheritance | Warning at above 5 levels deep |
Complexity | CA1502 AvoidExcessiveComplexity | Warning at above 25 |
Maintainability Index | CA1505 AvoidUnmaintainableCode | Warning at below 20 |
Class Coupling | CA1506 AvoidExcessiveClassCoupling | Warning at above 80 for class and above 30 for a method |
- http://blogs.msdn.com/fxcop/archive/2007/10/03/new-for-visual-studio-2008-code-metrics.aspx
- http://msdn.microsoft.com/en-us/library/bb385914.aspx
- http://www.infosysblogs.com/microsoft/2008/03/calculate_code_metrics_feature.html
- http://www.geekzone.co.nz/vs2008/4773
- http://visualstudiomagazine.com/Articles/2008/10/21/Code-Metrics.aspx
- http://syndato.wordpress.com/2008/05/06/code-metrics-with-visual-studio-2008/
- http://blogs.msdn.com/fxcop/default.aspx?p=2
- http://en.wikipedia.org/wiki/Static_code_analysis
Yorumlar
Yorum Gönder