Предполагаемое статическое количество пути
Эта метрика измеряет количество путей в функции.
Рекомендуемый верхний предел для этой метрики равняется 80. Если количество путей высоко, код трудно считать и может вызвать больше оранжевых проверок. Попытайтесь ограничить значение этой метрики.
Чтобы осуществить пределы на метриках, смотрите, Вычисляют Метрики сложности кода.
Количество путей вычисляется согласно этим правилам:
Если операторы в функции не повреждают поток управления, количество путей является тем.
Даже пустой оператор, такой как ;
или пустой блок, такой как {}
рассчитывает как один путь.
Количество путей для оператора управления вычисляется можно следующим образом:
если, elseif, еще:
количество путей является суммой путей, вычисленных в блоке if
, каждом блоке else if
и заключительном блоке else
. Когда заключительный блок else
не использован, количество пути увеличено на 1.
Например, оператор if(..) {} else if(..) {} else {}
рассчитывает как три пути. Оператор if() {}
рассчитывает как два пути, один для блока if
и один для не использованного блока else
.
switch-case
: Каждый case
с оператором break
добавляет тот в количество пути. Оператор default
рассчитывает как один путь, даже если это не использовано.
Например, оператор switch (var) { case 1: .. break; case 2: .. break; default: .. }
рассчитывает как три пути.
for
, while
и do-while
: количество путей равно количеству путей в теле цикла + 1.
Например, оператор while(0) {;}
рассчитывает как два пути.
Тернарные операторы: оператор с тернарным оператором такой как
result = a > b ? a : b;
Если больше чем один оператор управления присутствует в последовательности, количество путей является продуктом счета пути для каждого оператора управления.
Например, если функция имеет три цикла for
и два оператора if-else
, количество путей является 2 × 2 × 2 × 2 × 2 = 32.
Если много операторов управления присутствуют в функции, количество путей может быть большим. Вложенные операторы управления сокращают количество путей за счет увеличения глубины вложения. Для примера смотрите Функцию с Вложенными Операторами управления.
Программное обеспечение отображает определенные значения в случаях, где метрика не вычисляется:
Если операторы goto
присутствуют в теле функции, Polyspace® не может вычислить количество путей. Программное обеспечение отображает метрическое значение-1.
Если количество путей достигает внутреннего предела, остановок вычисления. Программное обеспечение отображает этот предел как метрическое значение. Предел равняется 9223372036854775807 (указание на шестнадцатеричный номер 0x7fffffffffffffff).
Группа: Функция |
Акроним: PATH |
Метрика HIS: да |