Оценщик Качества Кода В Ms Visual Studio



Введение Довольно часто программистам приходится поддерживать чужой код, очень часто этот код выглядит не лучшим образом, и поддерживать его очень сложно.

Если это приложение не придется в ближайшее время выбрасывать, то естественно его следует привести в человеческий вид, т.е.

провести рефакторинг.

Было бы неплохо иметь какую-то метрику, которая позволила бы нам оценить качество кода и выявить области, которые необходимо улучшить.

Такая метрика позволит вам оценить, например, как программист пишет исходный код или насколько качественный код в приложении, которое вы собираетесь поддерживать.

Microsoft предоставляет инструмент, встроенный в Visual Studio, который позволяет вам оценить код вашего проекта.



Оценщик качества кода в MS Visual Studio

Вы можете получить оценку вашего кода, щелкнув проект правой кнопкой мыши и выбрав «Рассчитать показатели кода» (эта функция доступна в Visual Studio 2008 Team System и Visual Studio 2010, начиная с версии Premium).



Описание метрик

Результаты содержат 5 метрик для вашего кода.

  1. Индекс ремонтопригодности – комплексный индикатор качества кода.

    Этот индикатор разработали специалисты Института программной инженерии Карнеги-Меллона.

    Метрика рассчитывается по следующей формуле: MI = MAX(0, (171 - 5,2 * ln(HV) - 0,23 * CC - 16,2 * ln(LoC)) * 100/171)

    • HV – объем Холстеда, вычислительная сложность.

      Чем больше операторов, тем больше значение этой метрики;

    • CC – цикломатическая сложность.

      Этот показатель описан ниже;

    • LoC – количество строк кода.

    Эта метрика может принимать значения от 0 до 100 и показывает относительную сложность поддержки кода.

    Чем выше значение этой метрики, тем легче поддерживать код. Visual Studio помечает методы/классы зеленым цветом, когда значение метрики находится в диапазоне от 20 до 100, желтым, когда значение находится в диапазоне от 10 до 20, и красным, когда значение меньше 10.

  2. Цикломатическая сложность – показывает структурную сложность кода, т.е.

    количество различных ветвей в коде.

    Чем выше этот показатель, тем больше тестов необходимо написать для полного покрытия кода.

  3. Глубина наследования – глубина наследования.

    Эта метрика показывает для каждого класса его положение в цепочке наследования.

    Например, есть 3 класса A, B, C, B наследуется от A, а C наследуется от B, то значение этой метрики для классов A, B и C будет равно 1, 2 и 3 соответственно.

    .

  4. Соединение классов – показывает степень зависимости классов друг от друга.

    Учитываются уникальные классы из параметров, локальные переменные, тип возвращаемого значения, базовый класс, атрибуты (полный список можно найти в MSDN ).

    Хороший дизайн программного обеспечения включает в себя небольшое количество связанных классов.

    Чем их больше, тем сложнее повторно использовать этот класс в будущем, а также поддерживать его, поскольку зависимостей очень много.

  5. Строки кода – показывает количество строк кода.

    Этот индикатор не показывает точное количество строк в вашем файле, потому что.

    подсчет основан на IL-коде.

    Пустые строки, комментарии, строки с круглыми скобками, объявления типов и пространств имен не учитываются.

    Большое количество строк в методе/классе может указывать на ошибки проектирования и на то, что код можно разделить на несколько частей.

Подробнее о том, как рассчитываются эти показатели, можно прочитать здесь.

Здесь .



Реальное использование

Когда я впервые запустил анализ на одном из проектов, все значения Repairability Index были зелеными.

Это казалось несколько странным, потому что.

явно был код, который нужно было переписать.

Значения MI для таких участков кода были в районе 30-40. Получается, что показатели по умолчанию, скорее всего, субъективны, и решение о том, какой код считать некачественным, придется принимать самим программистам.

В своих проектах я стараюсь поддерживать индекс MI на уровне 70–90 для большинства методов.

Есть методы, в которых этот показатель равен 50-60, и их можно переписать, но стоит оценить затраты и выгоды.

Благодаря этому инструменту вы довольно легко сможете провести ревью кода большого проекта и найти места, которые необходимо переписать.

Также весьма полезно отслеживать процесс изменения описанных выше метрик.

Это может показать руководителю об отношении программистов к разработке того или иного проекта, а также о динамике изменения качества кода у каждого программиста, что немаловажно в нашей профессии.

Еще одна причина мониторинга метрик — определенные программистами пороговые значения, при достижении которых необходимо делать рефакторинг.

Большое спасибо.



Источники

  1. MSDN
  2. Неделя ПК
  3. Блог команды анализа кода
Теги: #.

NET #Visual Studio #метрики кода #.

NET

Вместе с данным постом часто просматривают: