Разница между метрикой "сложность" и метрикой "сложность/метод"
В Sonar для определенного класса Java я вижу:
Complexity: 830
Complexity /method: 8,1
Как вы могли бы объяснить разницу между этими двумя метриками?
Является ли "сложность" сложностью класса?
Какова максимальная сложность класса? Я знаю, что методы должны быть меньше 10 для сложности метода, но каков максимальный класс сложности номер, класс должен соответствовать считаться не сложным?
Спасибо.
ИЗМЕНИТЬ
Я также рассматриваю нарушения правил Cyclomatic-Complexity в файле.
Для ряда методов сонар говорит с разными номерами сложности (на французском):
"La complexité cyclomatique de la classe est de 28 alors que le maximum autorisé est de 10".
по-английски:
"Классная циклическая сложность составляет 28, но максимально допустимое значение равно 10".
Я не понимаю, почему он говорит о "циклической сложности класса", поскольку он кажется "методом циклической сложности".
Кроме того, рассматриваемый класс не отображается поверх самого сложного класса, отсортированного по средней сложности/методу, поскольку сонар говорит, что он имеет только среднюю сложность метода 8,1.
Ответы
Ответ 1
Вы можете взглянуть на нашу страницу Wiki-страниц "Metric Definitions" (а точнее в разделе "Сложность" ), чтобы узнать больше о значение метрик, найденных в Sonar.
- "Сложность" - это полная сложность ресурса (для файла = > сумма сложностей каждого класса, определенного в файле)
- "Сложность/метод" - это "Сложность", деленная на количество методов, найденных в файле
- ... и т.д. для других показателей.