Уточнение ручного счета цикломатической сложности

java metrics code-metrics cyclomatic-complexity

183 просмотра

1 ответ

Давайте предположим, что у нас есть такой код:

switch(y)
{
case 1: case 2: case 3:
    function();
    break;
case 4: case 5: case 6:
    function_2();
    break;
}

Можем ли мы получить значение CC как 6 + 1 здесь? Почему добавляется значение 1? Если значение CC рассматривается как 7, это число независимых путей?

Что, если сценарий провала рассматривается выше? Как только возможно два уникальных пути, 2 +1 = 3

Что из вышеперечисленного является правильным или оба они правильны?

Автор: Spark Источник Размещён: 08.11.2019 11:28

Ответы (1)


1 плюс

Как мы знаем, CC = P+1.

Здесь P = количество предикатных узлов (условий) = 2

Количество условий будет 2, потому что:

Ветвь Case может охватывать несколько альтернативных значений или диапазонов, например Case 1, 2, 5–10. Поскольку они не вводят дополнительных ветвей для принятия решения, они также не увеличивают цикломатическую сложность.

источник: здесь

Итак, CC = 2 + 1 = 3

Автор: Shahid Размещён: 20.08.2016 03:11
Вопросы из категории :
32x32