Yazılım Kalite Metrikleri


Yazılım Kalite Metrikleri
Herhangi bir yazılımın çeşitli yönlerden belirli ölçütlere dayanarak değerlendirilmesi olarak tanımlanabilir. Bu değerlendirmeler sonucu bir değer elde ederiz, bu değer bizim o yazılım hakkında, yazılımı kullanmadan ön değerlendirme yapıp gözden geçirebilmemize olanak sağlar. Özellikle karmaşık yapılarda bu değerlerin anlamlarından sonuçlar çıkarabilme imkanı sunar.


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
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

Peki neden ölçüyoruz ?
·         Hata bulma
·         Tersine mühendislik
·         Efor tahmini
·         Bileşen hata sınıflandırması
·         Bakım yapılabilirlik
·         Kalite
·         Kalite tahmini
·         İstatistiksel süreç kontrolü
·         Test durumu seçimi
·         Test edilebilirlik değerlendirmesi
·         Tasarım hatası tespiti
  
Peki methodları nelerdir ?

Büyüklük (Size)
LOC (SLOC,CLOC,BLoC, C&SLOC) Volume
Karmaşıklık (Complexity)
Çevrimsel Karmaşıkık (Cyclomatic Complexity), Mantıksal Yoğunluk (Logical Density)
Yapısallık (Structure)
Esas Karmaşıklık (Essential Complexity)
Modülerlik (Modularity)
Entegrasyon Karmaşıklığı(Integration Complexity)
Nesneye Yönelik (Object Oriented)
Bağımlı Sınıf Sayısı (Coupling Between Objects), Sınıf İçindeki Metod Sayısı (Weighted Methods/Class), Türetilmiş Alt Sınıf Sayısı (Number of Children)...
Bakım Yapılabilirlik (Maintainability)
3MI, 4MI
Gereksiz Kod (Redundant Code)
Ölü Kod/Veri Sayısı (Dead code/Data counts)
İşlev Noktaları (Function Points)
İdeal olarak orjinal dökümantasyondan üretilir ya da son çare olarak geri gelme yöntemiyle kullanılabilir.
Gramer (Grammar)
GOTO, ALTER, I/O, IF, EVALUATE, max, IF/EVALUATE’de bulunan koşulları sayıları
 Kod Tekrarları (Duplicate Code)
                Kopyala/Yapıştır ile üretile kod satır sayıları

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.

Yorumlar

Yorum Gönder

Bu blogdaki popüler yayınlar

Web Servis ve Kimlik Doğrulama (Authentication) Yöntemleri

Linux Kernel ile Raspberry Pi 3'den TCP Protolü Ile Sensör Verileri Alınması