Цикломатическая складність вимірює кількість лінійно незалежних шляхів в методі, яке визначається числом і складністю умовних гілок. Низькою цикломатическая складністю, як правило, відрізняються методи, які прості для розуміння, перевірки і підтримки. Цикломатическая складність обчислюється на основі діаграми потоку управління методу у відповідності з наступним виразом:
цикломатическая складність = кількість граней - кількість вузлів + 1
де вузол являє логічну крапку розгалуження, а грань - лінію між вузлами.
Попередження про порушення правила виводиться в тому випадку, якщо цикломатическая складність перевищує значення 25.
Щоб усунути порушення даного правила, змініть структуру методу, щоб знизити цикломатическая складність.
Відключення попереджень даного правила безпечно в тому випадку, якщо складність методу важко зменшити, а сам метод простий для розуміння, перевірки і підтримки. Зокрема, метод, що містить об'ємний оператор switch (Select в Visual Basic), є першим кандидатом на виключення з цього правила. Ризик дестабілізації базового коду пізніше в процесі циклу розробки або внесення непередбачених змін в поведінку часу виконання раніше поставленого коду може переважити переваги зручності підтримки, що виникають при оптимізації коду.
Цикломатическая складність обчислюється за допомогою додавання одиниці до наступних значень:
Число гілок (таких як оператори if. While і do)
Число операторів case в блоці switch
У наступних прикладах показані методи з різною цикломатическая складністю.