Количество линейно независимых контуров в теле функции
Эта метрика вычисляет количество моментов принятия решения в функции и добавляет ту в общее количество. Момент принятия решения является оператором, который заставляет вашу программу переходить в два пути.
Рекомендуемый верхний предел для этой метрики равняется 10. Если цикломатическая сложность высока, код и трудно считать и может вызвать больше оранжевых проверок. Поэтому попытайтесь ограничить значение этой метрики.
Осуществлять пределы на метриках:
В пользовательском интерфейсе Polyspace® смотрите, Вычисляют Метрики сложности кода.
В Метрическом веб-интерфейсе Polyspace смотрите, Сравнивают Метрики С Целями Качества программного обеспечения.
Метрическое вычисление использует следующие правила, чтобы идентифицировать моменты принятия решения:
if оператор является одним моментом принятия решения.
Операторы for и while рассчитайте как один момент принятия решения, даже когда никакое условие не оценено, например, в бесконечных циклах.
Булевы комбинации (&&, ||) не рассчитывайте как моменты принятия решения.
case операторы не рассчитывают как моменты принятия решения, если они не сопровождаются break оператор. Например, этот код имеет цикломатическую сложность два:
switch(num) {
case 0:
case 1:
case 2:
break;
case 3:
case 4:
}
Вычисление сделано после предварительной обработки:
Макросы расширены.
Условная компиляция применяется. Блоки, скрытые путем предварительной обработки директив, проигнорированы.
| Группа: Функция |
Акроним: VG |
| Метрика HIS: да |