Разница между метрикой "сложность" и метрикой "сложность/метод"

В 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.

  • "Сложность" - это полная сложность ресурса (для файла = > сумма сложностей каждого класса, определенного в файле)
  • "Сложность/метод" - это "Сложность", деленная на количество методов, найденных в файле
  • ... и т.д. для других показателей.