Cyclomatic Complexity

Türkçe karşılığı: Döngüsel karmaşıklıkAlan: Yazılım Mühendisliği

Kontrol akış grafiğindeki bağımsız yürütme yollarının sayısını yaklaşık olarak ifade eden yapısal kod metriği.

Cyclomatic Complexity, kodun ne kadar zor olduğunu tek başına söyleyen bir kalite puanı değildir. Ölçtüğü şey kontrol akışındaki karar yapısıdır.

Bağlı bir kontrol akış grafiği için klasik ifade M = E - N + 2 biçimindedir. Predicate ve çoklu çıkışların araçlar tarafından nasıl sayıldığı değişebildiği için iki statik analiz aracının aynı metoda farklı değer vermesi mümkündür.

Kullanım

Yüksek değer; test senaryolarının dallanmasını, code review maliyetini ve değişiklik riskini incelemek için iyi bir sinyal olabilir. Ancak eşik değerini evrensel "iyi/kötü" sınırı gibi kullanmak yerine method boyutu, nesting, cognitive complexity ve gerçek defect geçmişiyle birlikte okumak daha sağlıklıdır.

Kaynak

  • https://doi.org/10.1109/TSE.1976.233837