Значения метрик кода
Метрики кода представляют собой набор оценок программного обеспечения, которые дают разработчикам более глубокое представление о разрабатываемом коде. Метрики кода позволяют разработчикам понять, какие типы или методы нуждаются в переработке или в более тщательном тестировании. Группы разработки могут увидеть возможные риски, понять текущее состояние проекта и отслеживать ход выполнения в процессе разработки программного обеспечения.
Оценки программного обеспечения
Ниже приведен список результатов метрик кода, которые рассчитываются в Visual Studio:
Коэффициент сопровождаемости. Данный коэффициент имеет значение от 0 до 100, которое обозначает относительную легкость сопровождения кода. Чем больше значение, тем легче код в сопровождении. Чтобы ускорить обнаружение проблемных фрагментов кода, могут использоваться цветовые индикаторы. Зеленый рейтинг указывает на значение индекса в диапазоне от 20 до 100, что означает, что код удобно поддерживать. Желтый рейтинг указывает на значение индекса в диапазоне от 10 до 19, что означает, что код можно поддерживать. Красный рейтинг указывает на значение индекса в диапазоне от 0 до 9, что означает, что код сложно поддерживать.
Цикломатическая сложность. Структурная сложность кода. Создается путем вычисления количества различных путей кода в потоке программы. Программа со сложным потоком управления требует более тщательного тестирования для достижения приемлемого уровня покрытия кода и характеризуется более низкой сопровождаемостью.
Примечание
В некоторых случаях подсчет цикломатической сложности в Visual Studio 2010 отличается от более ранних версий.Дополнительные сведения см. в подразделе "Изменения в подсчете цикломатической сложности в Visual Studio 2010" раздела Устранение неполадок, связанных с метриками кода.
Глубина наследования. Обозначает количество определений классов, достигающих корня иерархии классов. Чем глубже иерархия, тем сложнее бывает понять, где определяются или переопределяются конкретные методы и поля.
Связанность классов. Оценка связи с уникальными классами посредством параметров, локальных переменных, возвращаемых типов, вызовов методов, универсальных экземпляров или экземпляров шаблонов, базовых классов, реализаций интерфейсов, определенных на основе внешних типов полей и добавления атрибутов. Качественная разработка программного обеспечения требует, чтобы типы и методы характеризовались высокой связностью, но низкой связанностью. Высокая связанность говорит о том, что проект трудно поддается повторному использованию и сопровождению из-за большого количества взаимозависимостей от других типов.
Количество строк кода. Обозначает приблизительное количество строк в коде. Расчет основан на коде промежуточного языка и поэтому не передает точного количества строк в файле с исходным кодом. Очень высокий показатель может свидетельствовать о том, что тип или метод пытается выполнить слишком много функций и требует разделения. Это также может говорить о возможной низкой сопровождаемости типа или метода.
Анонимные методы
Анонимным методом называется метод, не имеющий имени. Анонимные методы чаще всего используются для передачи блока кода в качестве параметра делегата. Результаты метрик для анонимного метода, объявленного в члене, таком как метод или метод доступа, связываются с членом, который объявляет метод. Они не связываются с членом, который вызывает метод.
Дополнительные сведения об обработке метриками кода анонимных методов см. в разделе Анонимные методы и анализ кода.
Созданный код
Некоторые программные средства и компиляторы создают код, который добавляется в проект и остается невидимым для разработчика проекта или недоступным для изменений. Метрики кода, как правило, пропускают созданный код при расчете значений метрик. Благодаря этому значения метрик отражают только те результаты, которые разработчик видит и может изменить.
Код, созданный для форм Windows Forms, не пропускается, поскольку данный код доступен для просмотра и внесения изменений.