CK Metrikleri
Chidamber and Kemerer Object-Oriented Metrics · Ayrıca şöyle bilinir: OO metrics, CK suite, object-oriented complexity
CK Metrikleri, Chidamber ve Kemerer tarafından 1994 yılında sınıf karmaşıklığını, iç tutarlılığını ve bağlılığını ölçmek için tanıtılan altı nesne yönelimli tasarım metriği paketidir. Metrikler, OO tasarım kalitesini nicelleştirir; yüksek bağlılık ve düşük iç tutarlılık, kusurları ve bakım çabasını öngörür.
Tam yöntemi oku
Bu bölümü okumak için ücretsiz hesapla giriş yapın.
Yöntem haritası
İlişkili yöntemlerin komşuluğu — keşfetmek için bir düğüm seçin.
Ne zaman kullanılır
Tasarım kalitesini değerlendirmek ve yeniden düzenleme adaylarını belirlemek için OO kod tabanlarında (Java, C++, C#) CK metriklerini kullanın. Teknik borcun biriktiği büyük kurumsal sistemler için etkilidir. İşlevsel veya yordamsal kod için daha az anlamlıdır.
Güçlü yönler & sınırlılıklar
- OO tasarıma özgü; bağlılığı ve iç tutarlılığı yordamsal metriklerden daha iyi yakalar
- İyi araştırılmış: ampirik çalışmalar kusurlarla korelasyonu doğrulamıştır
- Java, C++, Python için otomatik araçlar mevcuttur; IDE ve CI/CD'ye entegrasyon
- Eyleme geçirilebilir: yüksek CBO veya düşük LCOM doğrudan yeniden düzenlemeyi (sınıf çıkarma, bağımlılıkları azaltma) önerir
- Kusurlarla korelasyon orta düzeydedir (R² ~ 0.3); diğer faktörler (geliştirici becerisi) daha önemlidir
- Kalıtım derinliği (DIT) meşru olabilir (çerçeve tasarımı); metrik ayırt etmez
- LCOM (iç tutarlılık) birden çok tanıma sahiptir; araçlar farklı hesaplar, tutarsızlığa yol açar
- Dile özgü: metrikler sınıfa dayalı OO için iyi geçerlidir, mixin'ler veya özellikler için daha az geçerlidir
SSS
WMC (Sınıf Başına Ağırlıklı Metotlar) nedir ve iyi bir değeri nedir?
Bir sınıftaki tüm metotların karmaşıklık (CC) toplamı. WMC > 20 sınıfın çok fazla iş yaptığını gösterir. Tipik aralık: 5–15. Çok düşük WMC (< 3) sınıfın çok basit (mikro sınıf) olduğunu gösterir; granülerliği dengeleyin.
CBO (Nesneler Arası Bağlılık) nedir ve nasıl azaltılır?
Bu sınıfın metotlarını çağıran veya özniteliklerini kullanan sınıf sayısı. Yüksek CBO (> 6) birçok bağımlılık anlamına gelir; değişiklikler arayanları bozar. Arayüzleri çıkararak, bağımlılık enjeksiyonu kullanarak veya sınıfı bölerek azaltın. Daha düşük daha iyidir; CBO < 5 hedefleyin.
LCOM (Metotların İç Tutarlılığının Eksikliği) nedir ve neden önemlidir?
Öznitelikleri paylaşan metot çiftlerinin oranını ölçer. Düşük LCOM (0'a yakın) = yüksek iç tutarlılık = metotlar birlikte çalışır. Yüksek LCOM (1'e yakın) = düşük iç tutarlılık = metotlar bağımsızdır = sınıf bölünmelidir. Ancak bazı yüksek LCOM sınıfları (ilgili olmayan metotlara sahip yardımcı sınıflar) kabul edilebilirdir.
Metrik değerlerini kesin olarak takip etmeli miyim?
Hayır, metrikleri kural olarak değil, sinyal olarak kullanın. WMC=25 olan ve tek bir karmaşık görev yapan bir sınıf, ilgisiz görevleri yapan WMC=10'dan daha iyidir. Bütünsel bir değerlendirme için metrikleri kod incelemesi ve test kalitesiyle birleştirin.
Kaynaklar
- Chidamber, S. R., & Kemerer, C. F. (1994). A metrics suite for object-oriented design. IEEE Transactions on Software Engineering, 20(6), 476–493. DOI: 10.1109/32.295895 ↗
- Basili, V. R., Briand, L. C., & Melo, W. L. (1996). A validation of object-oriented design metrics as quality indicators. IEEE Transactions on Software Engineering, 22(10), 751–761. DOI: 10.1109/32.544352 ↗
- Lanza, M., & Marinescu, R. (2007). Object-Oriented Metrics in Practice. Springer. link ↗
Bu sayfayı kaynak gösterin
ScholarGate. (2026, June 3). Chidamber and Kemerer Object-Oriented Metrics. ScholarGate. https://scholargate.app/tr/numerical-methods/ck-metrics
Hangi yöntem?
Bu yöntemi en yakın akrabalarının yanına koyup yan yana okuyun — kütüphane kitapları masaya serer; seçim sizindir.
- Sikilomatik KarmaşıklıkSayısal yöntemler↔ karşılaştır