İçeriğe geçScholarGate
KütüphaneKitaplığımMasaReview StudioAsistan
Giriş
Bu sayfada
SezgiNasıl çalışırNe zaman kullanılırGüçlü yönler & sınırlılıklarYaygın tuzaklarUygulamalarSSS🔒 Tam yöntemi okuKaynaklarİlişkili yöntemler
Bu sayfaya atıf yapBu sayfada bir hata mı var? Bildir / düzeltme öner →
Ana sayfa›Sayısal yöntemler›Sikilomatik Karmaşıklık
Machine learningSoftware Metrics

Sikilomatik Karmaşıklık

Cyclomatic Complexity Metric · Ayrıca şöyle bilinir: CC, cyclomatic number, McCabe complexity

Sikilomatik Karmaşıklık (CC), Thomas McCabe tarafından 1976'da tanıtılmış olup, bir fonksiyonun kontrol akış grafiğindeki doğrusal olarak bağımsız yolların sayısını ölçen nicel bir metriktir. Yüksek sikilomatik karmaşıklığa sahip bir fonksiyonun anlaşılması, test edilmesi ve bakımı daha zordur; McCabe, sürdürülebilirlik için karmaşıklık sınırı olarak 10 eşiğini savunmuştur.

ScholarGate
  1. Machine learning
  2. v1
  3. 3 Kaynaklar
  4. PUBLISHED
Bu sayfaya atıf yap →
Araçlar & kaynaklar
Slaytları indir
Öğren & keşfet

Tam yöntemi oku

Yalnızca üyeler

Bu bölümü okumak için ücretsiz hesapla giriş yapın.

Giriş yap

Yöntem haritası

İlişkili yöntemlerin komşuluğu — keşfetmek için bir düğüm seçin.

Sikilomatik Karmaşıklık
Halstead KarmaşıklığıCK Metrikleri

Ne zaman kullanılır

Yeniden düzenleme gerektiren fonksiyonları belirlemek, test çabasını tahmin etmek ve kalite kapıları belirlemek için sikilomatik karmaşıklığı kullanın. Yüksek kapsama alanının zorunlu olduğu güvenlik açısından kritik sistemler (havacılık, tıp) için esastır. Bütünsel kalite değerlendirmesi için diğer metriklerle (kod tekrarı, boyut) birleştirin. Minimum dallanmaya sahip veri işleme kodu için daha az kullanışlıdır.

Güçlü yönler & sınırlılıklar

Güçlü yönler
  • Hesaplanması basittir: araçlar (ESLint, SonarQube) tüm diller için otomatik olarak hesaplar
  • Test çabasıyla güçlü bir şekilde ilişkilidir: yıllarca süren kullanımla ampirik olarak doğrulanmıştır
  • Uygulanabilir: eşiği aşmak, yeniden düzenleme ihtiyacını açıkça gösterir (daha küçük fonksiyonlara ayırın)
  • Dil bağımsızdır: aynı metrik C, Python, Java, JavaScript vb. için geçerlidir
Sınırlılıklar
  • Yalnızca dallanmayı ölçer, veri akışı karmaşıklığını göz ardı eder (karmaşık değişmezlere sahip iç içe döngüler hala düşük CC'ye sahiptir)
  • Eşit ve iç içe koşulları ayırt etmez: seri if ifadeleri iç içe if-else ile aynı CC'ye sahiptir
  • Zımni karmaşıklığa sahip diller için yanıltıcıdır (kontrol akışında gösterilmeyen istisnalar, geri çağrılar, eşzamanlılık)
  • 10 eşiği keyfidir; McCabe'ın orijinal gerekçesi (bilişsel sınırlar) tartışmalıdır

SSS

Sikilomatik karmaşıklık, karar noktalarının sayısıyla aynı mıdır?

Neredeyse: CC = (karar noktaları) + 1. Dalı olmayan bir fonksiyon (CC = 1) 0 karar noktasına sahiptir. Her if, while, case bir karar noktası ekler; mantıksal operatörler (&& ve ||) araçların onları nasıl saydığına bağlı olarak noktalar ekleyebilir.

Bir fonksiyonda sikilomatik karmaşıklığı nasıl azaltırım?

Dalları yardımcı fonksiyonlara ayırın: çıkarılan her fonksiyon CC = 1 ile başlar. Durum ifadelerini değiştirmek için polimorfizm kullanın (strateji deseni). Yuvalamayı düzleştirmek için koruyucu ifadeler (erken dönüşler) kullanın. Koşulları && ve || ile dikkatlice birleştirin.

Lambda'lar ve kısa geri çağrılardaki CC konusunda endişelenmeli miyim?

O kadar da değil: lambda'lar tipik olarak basittir. 20 satırdan uzun fonksiyonlara veya ana mantık yollarına odaklanın. Araçlar geri çağrılar için yüksek CC bildirebilir, ancak bunlar genellikle test çabası için darboğaz değildir.

CC, test çabasıyla (test senaryosu sayısı) nasıl ilişkilidir?

CC, %100 yol kapsamı için gereken minimum test sayısıdır. CC = 4 en az 4 test gerektirir. Pratikte, sınır değer analizi ve hata durumları daha fazlasını ekler, ancak CC gerekli testler için bir alt sınır sağlar.

Kaynaklar

  1. McCabe, T. J. (1976). A complexity measure. IEEE Transactions on Software Engineering, SE-2(4), 308–320. DOI: 10.1109/TSE.1976.233837 ↗
  2. Campbell, G. H. (1986). Defining a good metric, a software testing perspective. ASQ Software Quality Conference. link ↗
  3. Nagy, C., & Kriebel, K. (2001). Achieving optimal complexity and reliability. SAMS Publishing. ISBN: 0672322285

Bu sayfayı kaynak gösterin

ScholarGate. (2026, June 3). Cyclomatic Complexity Metric. ScholarGate. https://scholargate.app/tr/numerical-methods/cyclomatic-complexity

İlişkili yöntemler

Halstead Karmaşıklığı

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.

  • Halstead KarmaşıklığıSayısal yöntemler↔ karşılaştır
Yan yana karşılaştır →

Bu yönteme atıf yapanlar

CK MetrikleriHalstead Karmaşıklığı

Benzer yöntemler

Yazılım Karmaşıklık MetrikleriKod Kapsamı AnaliziHalstead KarmaşıklığıTeknik Borç ÖlçümüCK MetrikleriMutasyon TestiHata Tahmin ModeliTeknik Borç Nicemlemesi

İlgili referans kavramlar

Kod Kalitesi ve Yeniden Düzenleme (Refactoring)Yazılım İnşası ve KalitesiYazılım TestiYazılım Doğrulama ve GeçerlemeTeknik BorçYazılım Tahmini ve Planlaması

Bu sayfada bir hata mı var? Bildir / düzeltme öner →

ScholarGate — Cyclomatic Complexity (Cyclomatic Complexity Metric). 2026-07-21 tarihinde şu adresten erişildi: https://scholargate.app/tr/numerical-methods/cyclomatic-complexity · Veri seti: https://doi.org/10.5281/zenodo.20539026
Hızlı bilgiler
Originator
Thomas McCabe
Subfamily
Software Metrics
Year
1976
Type
Control-flow complexity metric
İlişkili yöntemler
Halstead Karmaşıklığı
ScholarGate

Araştırma yöntemleri için içerik öncelikli bir referans kütüphanesi — her yöntemin ne olduğu, nasıl çalıştığı ve nereden geldiği.

Açık veri (CC-BY)

Keşfet

  • Kütüphane
  • Yöntemlerde ara…
  • Alanlara göre gez
  • Alanlar
  • Yolculuk
  • Karşılaştır
  • Hangi yöntem?

Başvuru

  • Konular
  • Atlas
  • Sözlük
  • Metodoloji
  • Felsefe

Çalışma alanı

  • Kitaplığım
  • Masa
  • Sohbet

Şirket

  • Hakkımızda
  • Fiyatlandırma
  • İletişim
  • Yöntem öner

Kayıtlar, başvuru amacıyla yayımlanmış kaynaklardan derlenmiştir. Herhangi bir bilginin doğruluğunu ve kendi kullanımınıza uygunluğunu denetlemek sizin sorumluluğunuzdadır.

© 2026 ScholarGate · Araştırma yöntemleri referans kütüphanesi
  • Gizlilik
  • Çerezler
  • Koşullar
  • Hesabı sil