Цикломатическая сложность кода с несколькими точками выхода

StackOverflow https://stackoverflow.com/questions/2073387

  •  20-09-2019
  •  | 
  •  

Вопрос

Как найти цикломатическую сложность функции с несколькими точками выхода?На вики-странице написано p-s + 2, где p - количество точек принятия решения, а s - количество точек выхода.

Но не должно ли большее количество точек выхода увеличивать цикломатическую сложность, поскольку это может привести к более независимым путям?

Ваше здоровье,

Aman

Это было полезно?

Решение

Почему бы не попробовать пробный NDepend?Он будет вычислять цикломатическую сложность и многие другие показатели кода.

Другие советы

CC измеряет линейно независимые пути.Точки выхода не ДОБАВЛЯЮТ пути к коду, они ЗАВЕРШАЮТ пути, тем самым уменьшая CC (или, по крайней мере, они, конечно, этого не делают увеличение CC).

Другими словами, единственный способ добавить точки выхода - это ДОБАВИТЬ больше путей (условия типа IF).В противном случае код после "голой" точки выхода недоступен, поэтому сложность добавляют условия, а не точки выхода.

Спасибо, Майкл.Я осознал свою ошибку после того, как опубликовал этот вопрос.Моя ошибка возникла из наблюдения, что JavaNCSS (который использует исходный файл) и Xdepend (который использует файл jar) оба, казалось, переоценили CC для фрагмента кода, который имел несколько точек выхода.Я опубликовал код здесь .Но при использовании формулы p-s + 2 ответ, по-видимому, будет равен 4.Есть ли какое - то простое объяснение , которого мне не хватает ?

@Ричард:Я попробовал Xdepend (не .СЕТЕВАЯ версия Ndepend).Это выглядит хорошим инструментом.Но когда он использует jar-файлы, он переоценивает CC (который они приняли в своей документации).На данном этапе я изучаю различные инструменты.Знаете ли вы что-нибудь получше?

Ваше здоровье.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top