Yazılımda Kalite Metrikleri
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:
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
• Brito e Abreu
•Bansiya & Davis metrik kümeleridir.
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.
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.
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.
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.
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.
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.
Verimlilik
Yazılımın
ihtiyaç duyulan ölçüde yeterli performansla çalışabilme becerisi olarak
tanımlanmaktadır. Zaman ve kaynak kullanımı konuları bu sınıf altında
incelenmektedir.
Taşınabilirlik
Yazılımın
çalıştığı ortam değişikliklerine uyum sağlayabilme yeteneği olarak tanımlanmaktadır.
Adaptasyon yeteneği, yüklenebilirlik özellikleri, ortam değiştirme imkânı ve
diğer yazılımlarla uyum konuları bu sınıf altında incelenmektedir.
Güvenilirlik
Yazılımın
düzgün çalışma halini muhafaza edebilme becerisi olarak tanımlanmaktadır.
Olgunluk, hata toleransı ve geri kurtarma konuları bu sınıf altında
incelenmektedir.
Kullanılabilirlik
Yazılımın
kullanım kolaylığı sağlayan yetenekleri olarak tanımlanmaktadır. Öğrenebilme,
anlaşılabilirlik, işletilebilirlik ve kullanıcı etkileşimi konuları bu sınıf
altında incelenmektedir.
Yorumlar
Yorum Gönder