Arquivo

Archive for the ‘Code Analysis’ Category

Utilizando o Code Analisys – Maintainability Rules

22 de Julho de 2010 1 comentário

Salve, Salve galerinha.

Conforme prometido no artigo anterior, estou postando uma explicação para um grupo de regras.

O grupo escolhido é “Maintainability Rules” ou “Regras de Manutenibilidade”.

Na minha opinião, as “Regras de Manutenibilidade” são as mais importantes e interessante que encontramos no Code Analysis. Com elas você poderá verificar a complexidade do código, verificar quais códigos são difíceis de dar manutenção ou qual deles dificultam leitura.

Segue abaixo uma tabela com as informações mais importantes.

CheckId Descrição Explicação Índice no Code Metrics
CA1500 Variable names should not match field names Nomes de variáveis da classe não devem coincidir com nomes de parâmetros.  
CA1501 Avoid excessive inheritance Evite o excesso de heranças. No máximo, utilize 4 níveis na hierarquia.  
CA1502 Avoid excessive complexity Evite o excesso de complexidade Cyclomatic Complexity
<= 25 : Aceitável
CA1504 Review misleading field names Nomenclatura de campos dificultam a leitura. Como:  Instancias de classe e variáveis não static (Shared VB) não devem começar com “s_”. Instancias de classe e variáveis static(Shared VB) não devem começar com “m_”.  
CA1505 Avoid unmaintainable code Evite código com baixo índice de manutenibilidade. Tente dividi-lo em um número maior de métodos específicos. Maintainability Index (MI)
0~10 : Ruim 
10~20: Moderada 
  >=20: Boa manutenibilidade
CA1506 Avoid excessive class coupling Evite o excesso associação de classes com tipos e namespaces diferentes. Procure utilizar tipos e métodos com um baixo grau de acoplamento. Class Coupling
>= 40: Ruim; 
40~30: Moderada; 
<= 30: Boa manutenibilidade

 

Informações adicionais

Cyclomatic Complexity*¹ : A complexidade ciclomatica mede o número de fluxos independentes através do método determinadas através do número número de ramificações condicionais.

A fórmula de cálculo encontrada no MSDN é a seguinte: Cyclomatic Complexity = nº arestas – nº nós +1

aresta: linha entre nós.

nós: ponto de ramificação lógica.

Complicado né? Para simplificar podemos pensar da seguinte forma. Cyclomatic Complexity = nº (if, while, do, case no switch(select VB))

Exemplos : http://msdn.microsoft.com/en-us/library/ms182212.aspx

Quando a complexidade Ciclomática não se aplica: Quando seu método tem apenas um switch(select no VB) com vários case. Ou quando não se pode dividir o método.

Maintainability Index (MI)*²: O “índice de Manutenibilidade” é calculado utilizado as seguintes métricas.

– Linhas de código.

– Volume do programa. É a medida da dificuldade de compreensão baseado no número de operadores e operandos no código

– Complexidade Ciclomatica.

Quando o índice de Manutenibilidade não se aplica. Quando seu método tem apenas um switch(select no VB) com vários case. Ou quando não se pode dividir o método.

Class Coupling*³: O índice de “Classes acopladas” é calculado a partir da somatória de classes altamente acopladas e de diferentes referencias utilizadas em seu código.

Quando a complexidade Ciclomática não se aplica: Ainda não encontrei um caso em que não se aplica.

Fonte: http://msdn.microsoft.com/en-us/library/ms182211.aspx

E mais uma vez… Espero que o artigo tenha sido claro, objetivo e prático para você já poder começar a usar.

Francisco Gonçalves

Advertisement

Começando a utilizar o Code Analysis

Salve galerinha

Neste artigo vou falar sobre utilização do Code Analysis no Visual Studio. Ele é uma ótima ferramenta para melhorar a manutenção do código, a clareza, Performance, portabilidade, segurança e outros itens. Muito bom para quem quer dar um “tapa” no código.

Em primeiro lugar você precisa ter instalado em sua maquina o Microsoft Visual Studio Team System Test Edition, pois o Code analysis só existe na versão de testes.

Para poder começar aplicar as regras você deve abrir o Solution Explorer, selecionar o projeto em que você vai aplicá-las, botão direito e propriedades.

Quando a tela de propriedades do projeto abrir selecione Code Analysis na aba lateral.

Esta é a tela de configuração do Code Analysis para seu projeto.

Habilite a opção Enable Code Analysis on Build (define CODE_ANALYSIS constant); quando habilitado permite que, quando o build for executado, também será feita a analise de código pelo Code Analysis.

A coluna da esquerda Rules Enabled During Code Analisys indica quais regras estarão habilitadas na análise de código.

A coluna da direita Treat Warning as Erroraltera o tipo de sinalização, de Warning(Default) para Error, da regra caso ela não for validada. Esta opção é interessante, porque assim você impede que os desenvolvedores compilem o fonte até que a alteração solicitada seja feita. Muito útil para manter a qualidade do software.

Minha dica é: Comece utilizando as regras de Maintainability Rules e Performance Rules pois elas farão uma grande diferença no seu projeto. Elas trarão facilidade na manutenção e um ganho de performance do seu código.

Espero que o artigo tenha sido claro, objetivo e prático para você já poder começar a usar.

Nos próximos artigos irei descrever os grupos de regras para você decidir qual utilizar.

Francisco Gonçalves

Categorias:Code Analysis Etiquetas:
%d bloggers gostam disto: