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