Почему индекс ремонтопригодности проекта снижается, несмотря на то, что уменьшились цикломатическая сложность, взаимосвязь классов и количество строк кода?

Для моего проекта C # дельта метрик кода после рефакторинга:

  • Индекс ремонтопригодности: -4
  • Цикломатическая сложность: -48
  • Глубина наследования: 0
  • Класс сцепления: -9
  • Строки кода: -85

Почему индекс ремонтопригодности снизился, если формула имеет следующий вид:

MI = MAX (0, (171 - 5,2 * ln (объем Холстеда) - 0,23 * (цикломатическая сложность) - 16,2 * ln (строки кода)) * 100/171)?


person Christian    schedule 13.05.2011    source источник


Ответы (2)


Возможные варианты: 1) объем Холстеда увеличился; 2) вы используете MI-вариант, учитывающий комментарии.

person Alexander Serebrenik    schedule 05.04.2012
comment
Не могу проверить ни один из вариантов, поскольку написанного мной кода больше нет со мной, но, поскольку вы указали только два возможных варианта, я принимаю ответ. Спасибо! - person Christian; 21.04.2012
comment
В описании Microsoft идентификатора MI, используемого Visual Studio, используется формула, указанная в вопросе, то есть без учета комментариев. - person avandeursen; 14.09.2014

Не уверен, что ответ кого-то еще волнует, но ...

Формула индекса ремонтопригодности использует среднее HV, CC и LOC. Таким образом, возможное объяснение будет заключаться в том, что вы удалили один или два небольших класса, что не подошло бы для среднего размера и, следовательно, для MI.

Тот факт, что MI работает со средними значениями, является лишь одним из несколько проблем с индексом ремонтопригодности, поэтому лучше не обращать на него внимания.

person avandeursen    schedule 14.09.2014