Valores de métrica de código

A maior complexidade dos aplicativos de software modernos também aumenta a dificuldade de tornar o código confiável e atualizado. As métricas de código são um conjunto de medidas de software que fornecem aos desenvolvedores uma visão melhor do código que estão desenvolvendo. Aproveitando as métricas de código, os desenvolvedores podem entender quais tipos e/ou métodos devem ser trabalhados novamente ou testados com mais detalhes. As equipes de desenvolvimento podem identificar possíveis riscos, entender o estado atual de um projeto e acompanhar o progresso durante o desenvolvimento de software.

Os desenvolvedores podem usar o Visual Studio para gerar dados de métricas de código que medem a complexidade e a facilidade de manutenção de seu código gerenciado. Os dados de métricas de código podem ser gerados para uma solução inteira ou um único projeto.

Para saber mais sobre como gerar dados de métricas de códigos no Visual Studio, consulte Como gerar dados de métricas de código.

Medidas de software

A lista a seguir mostra os resultados das métricas de código que o Visual Studio calcula:

  • Índice de manutenção – calcula um valor de índice entre 0 e 100 que representa a facilidade relativa de manter o código. Um valor alto significa melhor capacidade de manutenção. As classificações codificadas por cores podem ser usadas para identificar rapidamente pontos problemáticos em seu código. Uma classificação verde fica entre 20 e 100 e indica que o código tem boa capacidade de manutenção. Uma classificação amarela fica entre 10 e 19 e indica que o código pode ter manutenção moderada. Uma classificação vermelha fica entre 0 e 9 e indica baixa capacidade de manutenção. Para saber mais, consulte Intervalo e significado do índice de manutenção.

  • Complexidade ciclomática – mede a complexidade estrutural do código. É criada calculando o número de caminhos de código diferentes no fluxo do programa. Um programa que tem um fluxo de controle complexo requer mais testes para conseguir uma boa cobertura de código e menos manutenção. Para obter mais informações, consulte Complexidade ciclomática.

  • Profundidade de herança – indica o número de classes diferentes que herdam entre si até a classe base. A profundidade de herança é semelhante ao acoplamento de classe em que uma alteração em uma classe base pode afetar qualquer uma de suas classes herdadas. Quanto maior esse número, mais profunda a herança e maior o potencial de modificações de classe base que geram uma alteração interruptiva. Para Profundidade de Herança, um valor baixo é bom e um valor alto é ruim. Para obter mais informações, consulte Herança.

  • Acoplamento de classe – mede o acoplamento a classes exclusivas por meio de parâmetros, variáveis locais, tipos de retorno, chamadas de método, instanciações genéricas ou de modelo, classes base, implementações de interface, campos definidos em tipos externos e decoração de atributo. Um bom design de software determina os tipos e métodos que devem ter alta coesão e baixo acoplamento. O alto acoplamento indica um design difícil de reutilizar e manter devido a diversas interdependências em outros tipos. Para obter mais informações, consulte Acoplamento de classes.

  • Linhas do código-fonte – indica o número exato de linhas de código-fonte presentes no arquivo de origem, incluindo linhas em branco. Essa métrica está disponível a partir do Visual Studio 2019 versão 16.4 e Microsoft.CodeAnalysis.Metrics (2.9.5).

  • Linhas de código executável – indica o número aproximado de operações ou linhas de código executáveis. Essa é uma contagem de número de operações no código executável. Essa métrica está disponível a partir do Visual Studio 2019 versão 16.4 e Microsoft.CodeAnalysis.Metrics (2.9.5). O valor normalmente é uma correspondência próxima à métrica anterior, Linhas de Código, que é a métrica baseada em instrução MSIL usada no modo herdado.

Métodos anônimos

Um método anônimo é apenas um método que não tem nome. Métodos anônimos são usados com mais frequência para que um bloco de código sem um parâmetro delegado. Os resultados das métricas de código para um método anônimo declarado em um membro, como um método ou acessador, estão associados ao membro que declara o método. Eles não estão associados ao membro que chama o método.

Código gerado

Algumas ferramentas de software e compiladores geram o código que é adicionado a um projeto e que o desenvolvedor do projeto não visualiza ou não deve alterar. Principalmente, as Métricas de Código ignoram o código gerado quando calculam os valores de métricas. Assim os valores de métricas mostram o que o desenvolvedor pode visualizar e alterar.

O código gerado para Windows Forms não é ignorado, pois é o código que o desenvolvedor pode visualizar e alterar.