Koray Kırdinli

Yazılım ve İş Yaşamı Hakkında Paylaşımlar

Visual Studio Kod Metrikleri

Kod Metrikleri

Kod metrikleri en genel tanımıyla ; kaynak kodları incelemek ve çeşitli ölçülere göre yazılımı derecelendirmek için kullanılan matematiksel ve istatistiksel yöntemlerdir. Kod metrikleri yazmış olduğumuz sınıflarda , metodlarda, projelerde aksayan ve karmaşıklaşmış noktalar var mı bulmamıza yardımcı olur. Bunu bulurken 5 temel kavramı bilmek gerekiyor.

Class Coupling : Diğer sınıflarla olan bağlantı sayısını ölçer. Bu rakamın yüksek olması yazdığımız metodun dışa bağlı olduğunu gösterir.

Depth of Inheritance : İlgili nesnelerin kalıtım derinliğini ölçer.

Cyclomatic Complexity : Karar ifadelerini ölçer yani if else gibi. Bu rakamında yüksek çıkması kodun karmaşık ve bakımının zor olması demektir.

Lines of Code : Commentler haricinde kalan satır sayısını gösterir. Bu rakamı da küçük tutmak karmaşıklığı azaltır.

Maintainability Index : Sınıf üyeleri veya tipler seviyesinde kod bakımının kolaylığına gösteren bu değişken 0-100 arasında bir değer alır. Bu değerin yüksek olması programın sürdürebilirlik seviyesinin yüksek olduğu anlamına gelir.

Index = MAX(0,(171 – 5.2 * ln(Halstead Volume) – 0.23 * (Cyclomatic Complexity) – 16.2 * ln(Lines of Code))*100 / 171)

 

Projenizin kod metriklerini görebilmek için önce VS Analyze menüsünden Calculate Code Metrics for Solution’a tıklamanız yeterli.

 

 
Yararlı Linkler
http://www.codeproject.com/KB/architecture/Cyclomatic_Complexity.aspx
http://www.dotnetcurry.com/ShowArticle.aspx?ID=134&AspxAutoDetectCookieSupport=1

September 27, 2010 - Posted by | C# | , , , ,

No comments yet.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s