Merhaba,
Bu yazımızda yazılım metrikleri nelerdir,yazılım kalite metrikleri ne işe yararlar gibi konulardan bahsedeceğiz.Öncelikle yazılım kalite metriği ne demektir bununla başlayabiliriz. Yazılım kalite metriği yazılımların bir çok yönden değerlendirilmesini sağlayan, kaliteli bir yazılım geliştirmede bize yardımcı olan elemanlardır. Bunlar çeşitli alt yapılara bölünürler her yapının temsil ettiği bir değer ve her değerin bir anlamı vardır. Karmaşık yapılarda bu değerler üzerinden uygulama hakkında çeşitli yorumlar yapılabilir.
Yazılım metriği kaliteden bahseder dedik. Peki ya bir yazılım için kalite ölçütleri nelerdir?
•Maliyet
•Zaman
•Test
•Bakım
•Tasarım Düzeni
•Kullanım Kolaylığı
•Anlaşılabilirlik
Olası bir yazılım için kalite ölçütleri yukarıdaki gibi sıralanabilir.
Nesneye yönelimli tasarım kalitesini değerlendirmek için hiyerarşik bir model tanımlanabilir.Bu modelde sınıfların, nesnelerin ve bunlar arasındaki ilişkilerin yapısal ve davranışsal tasarım özellikleri nesne yönelimli tasarım metrikleri kullanılarak değerlendirilmektedir. Nesne yönelimli tasarım metrikleri, geliştirilen yazılımların,
etkinlik/verimlilik, karmaşıklık, anlaşılırlık, yeniden kullanılabilirlik, test
edilebilirlik ve dayanıklılık gibi kalite özellik düzeylerinin ölçülmesinde
kullanılır. Yani kısacası yukarıda belirtilen tüm kalite değerlerini ölçebilmek için metrikleri kullanabiliriz. Bu ölçümleri yapabilmek için çeşitli metrik ölçüm kümeleri bulunmaktadır. Bu bir çok metrik ölçüm kümeleri arasında en çok üzerinde durulan metrik kümeleri:
•Chidamber & Kemerer
• Brito e Abreu
•Bansiya & Davis metrik kümeleridir.
Biz bu metrik kümeleri içerisinden “Chidamber & Kemerer” metrik kümelerini ve içeriklerini inceleyeceğiz.
Chidamber & Kemerer Metrik Kümesi
İçerisinde altı adet metrik değeri barındırır bunlar aşağıdaki gibi açıklanabilir:
1.Sınıfın Ağrılıklı Metod Sayısı ( WMC )
Bir sınıftaki metodların karmaşıklık derecesi veya sayısıdır.Metotların karmaşıklık veya sayısı, sınıfın geliştrilmesine ve bakımına harcanacak zaman-çaba hakkında fikir vermektedir. Bu metriği inceleyerek bir sınıfın “anlaşılabilirlik, yeniden kullanılabilirlik ve dayanıklılık” ölçütü üzerinde yorum yapmak mümkündür.
2.Kalıtım Ağacının Derinliği ( DIT )
Bir sınıfın kalıtım ağacının köküne olan uzaklığını gösteren metriktir. Bu metrik yardımıyla yazılımın verimliliğini, yeniden kullanımını, anlaşılırlığını, test edilebilirliğini ölçmek mümkündür. Eğer bu değer yüksek ise test edilebilirliğin düşük olduğu anlaşılır.
3.Alt Sınıf Sayısı ( NOC )
Bir sınfıtan direk olarak türetilmiş alt sınıfların sayısını gösteren metriktir. Eğer alt sınıf sayısı fazla ise yeniden kullanım yüksek, hata riski fazladır. Bu metrik ile yazılımın verimlilik,yeniden kullanılabilirlik, test edilebilirlik gibi özelliklerini ölçmek mümkündür.
4.Nesne Sınıfları Arasındaki Bağımlılık ( CBO )
Bir sınıf içindeki özellik ya da metotların diğer sınıf ya da sınıflarda kullanılması ve sınıflar arasında kalıtımın olmaması durumunda iki sınıf arasında bağımlılık ilişkisi vardır. Bu metrik ile yazılımın verimlilik, yeniden kullanırlık değerlerinin ölçülmesi söz konusudur.
5. Sınıfın Tetiklediği Metot Sayısı ( RFC )
Bir sınıftan bir nesnenin metotları çağrılması durumunda, bu nesnenin tetikleyebileceği tüm metotların sayısı RFC değerini verir.Kısaca bir sınıfta yazılan ve çağrılan toplam metot sayısıdır. Bu metrik kullanılarak yazılımın anlaşılabilirlik, dayanıklılık, karmaşıklık, test edilebilirlik gibi özelliklerini ölçmek söz konusudur.
6.Metotlardaki Uyum Eksikliği ( LCOM )
N adet kümenin kesişiminden oluşan kümelerdeki uyumsuzlukların sayısıdır ve metotlardaki benzerlik derecesini ölçer. Bu metrik değeri kullanılarak yazılımın verimlilik , yeniden kullanılabilirlik gibi değerlerinin ölçülmesi mümkündür.
Altı adet metrik bu şekilde verilebilir. Aşağıdaki tablo ile hangi metriğin hangi özelliği ölçtüğünü daha iyi anlayabilirsiniz.
Bunun ile ilgili olarak bir soru örneği verip makaleyi noktalayabiliriz.
Soru:Yukarıdaki tabloya göre; Aynı yazılım için “java,c++,C#” dillerinin KALİTE değerini düşükten yükseğe doğru sıralayınız.
Cevap:
Bu tablo için bakmamız gereken ölçütler CBO ve WMC olduğundan sonuç aşağıdaki gibidir.
Bu konudaki fikir ve yorumlarınızı aşağıdan bana iletebilirsiniz.
Teşekkürler!
C++ < C# < Java