Поделиться через


Значения метрик кода

Метрики кода представляют собой набор оценок программного обеспечения, которые дают разработчикам более глубокое представление о разрабатываемом коде.Метрики кода позволяют разработчикам понять, какие типы или методы нуждаются в переработке или в более тщательном тестировании.Группы разработки могут увидеть возможные риски, понять текущее состояние проекта и отслеживать ход выполнения в процессе разработки программного обеспечения.

Оценки программного обеспечения

Ниже приведен список результатов метрик кода, которые рассчитываются в Visual Studio:

  • Коэффициент сопровождаемости. Данный коэффициент имеет значение от 0 до 100, которое обозначает относительную легкость сопровождения кода.Чем больше значение, тем легче код в сопровождении.Чтобы ускорить обнаружение проблемных фрагментов кода, могут использоваться цветовые индикаторы.Зеленый рейтинг указывает на значение индекса в диапазоне от 20 до 100, что означает, что код удобно поддерживать.Желтый рейтинг указывает на значение индекса в диапазоне от 10 до 19, что означает, что код можно поддерживать.Красный рейтинг указывает на значение индекса в диапазоне от 0 до 9, что означает, что код сложно поддерживать.

  • Цикломатическая сложность. Структурная сложность кода.Создается путем вычисления количества различных путей кода в потоке программы.Программа со сложным потоком управления требует более тщательного тестирования для достижения приемлемого уровня покрытия кода и характеризуется более низкой сопровождаемостью.

    ПримечаниеПримечание

    В некоторых случаях подсчет цикломатической сложности в Visual Studio 2010 отличается от более ранних версий.Дополнительные сведения см. в подразделе "Изменения в подсчете цикломатической сложности в Visual Studio 2010" раздела Устранение неполадок, связанных с метриками кода.

  • Глубина наследования. Обозначает количество определений классов, достигающих корня иерархии классов.Чем глубже иерархия, тем сложнее бывает понять, где определяются или переопределяются конкретные методы и поля.

  • Связанность классов. Оценка связи с уникальными классами посредством параметров, локальных переменных, возвращаемых типов, вызовов методов, универсальных экземпляров или экземпляров шаблонов, базовых классов, реализаций интерфейсов, определенных на основе внешних типов полей и добавления атрибутов.Качественная разработка программного обеспечения требует, чтобы типы и методы характеризовались высокой связностью, но низкой связанностью.Высокая связанность говорит о том, что проект трудно поддается повторному использованию и сопровождению из-за большого количества взаимозависимостей от других типов.

  • Количество строк кода. Обозначает приблизительное количество строк в коде.Расчет основан на коде промежуточного языка и поэтому не передает точного количества строк в файле с исходным кодом.Очень высокий показатель может свидетельствовать о том, что тип или метод пытается выполнить слишком много функций и требует разделения.Это также может говорить о возможной низкой сопровождаемости типа или метода.

Анонимные методы

Анонимным методом называется метод, не имеющий имени.Анонимные методы чаще всего используются для передачи блока кода в качестве параметра делегата.Результаты метрик для анонимного метода, объявленного в члене, таком как метод или метод доступа, связываются с членом, который объявляет метод.Они не связываются с членом, который вызывает метод.

Дополнительные сведения об обработке метриками кода анонимных методов см. в разделе Анонимные методы и анализ кода.

Созданный код

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

Код, созданный для форм Windows Forms, не пропускается, поскольку данный код доступен для просмотра и внесения изменений.

См. также

Другие ресурсы

Оценка сложности и удобства сопровождения управляемого кода