métricas e visualização de código-fonte
DESCRIPTION
Este trabalho cita alguns exemplos de métricas e por que usá-las em projetos de software. inclui também sugestões de ferramentas que auxiliam na coleta de informações de métricas de código.TRANSCRIPT
Métricas e Visualização de Código
João Marcos, Marcilio Valois
Roteiro1. Introdução2. Por que usar métricas3. Métricas de código 3.1. Número de linhas 3.2. Número de atributos e métodos
3.3. Relacionadas a herança3.4. Outras métricas
4. Ferramentas de análise de código4.1 Metrics
4.2 CheckStyle4.3 Incode
5. Escala de Medição6. Conclusão7. Referências
IntroduçãoO objetivo das métricas de software é a identificação e medição dos principais parâmetros que afetam o desenvolvimento de software (Mills, 1988).Métricas de código podem apontar se um código está ou não em conformidade com as boas práticas de programação e isso reflete diretamente na facilidade de visualização.
Por que usar métricas
Código compilado pode ser analisado, mas características como organização e legibilidade são perdidas; mesmo uma bateria de testes com ótima cobertura só apresenta informação sobre o funcionamento atual, não refletindo manutenibilidade, modularidade, exibilidade e simplicidade. Nesse contexto, as métricas de código-fonte complementam as outras abordagens de monitoramento da qualidade do software.
Métricas de Código
❏ Tipos de métricas:❏ Baseadas no número de linhas❏ Baseadas no número de métodos e
atributos❏ Baseadas na herança❏ Outras métricas
Número de linhas
❏ LOC (Lines Of Code - Número de linhas de código).
❏ AMLOC (Average Method LOC - Média do número de linhas por método).
❏ MMLOC (Max Method LOC - Número de linhas de código do maior método da classe).
Número de atributos e métodos❏ NOA (Number of Attributes - Número de
atributos).❏ NOM (Number of Methods - Número de
métodos).❏ NPA (NuAmber of Public Attributes -
Número de atributos públicos).❏ NPM (Number of Public Methods - Número
de métodos públicos).❏ ANPM (Average Number of Parameters per
Method - Média do Número de Parâmetros por Método).
Relacionadas a herança
❏ DIT (Depth of Inheritance Tree - Profundidade da árvore de herança).
❏ NOC (Number of Children - Número de filhos ).
Outras métricas❏ ACCM (Average Cyclomatic Complexity per
Method - Média da Complexidade Ciclomática por método).
❏ ACC (Aerent Connections per Class - Conexões aferentes de uma classe).
❏ LCOM (Lack of Cohesion in Methods - Ausência de coesão em métodos)
❏ SC (Structural Complexity - Complexidade estrutural)
Escala de medição
As métricas devem estar associadas a uma escala de medição que proporcione significadoao valor obtido no seu cálculo. Elas precisam ser coletadas em um modelo de dados específico que pode envolver cálculos ou análise estatística.
Exemplos:
❏ No LOC os intervalos sugeridos para uma classe Java ou C++ são: até 70 (bom ); entre 70 e 130 (regular); 130 em diante (ruim).
❏ No AMLOC os intervalos sugeridos são:até 10 (bom); entre 10 e 13 (regular); de 13 em diante (ruim).
Exemplos
❏ No ACCM de 1 a 10 (baixa complexidade , fácil de entender e testar); de 11 a 20 (média complexidade, relativamente difícil de entender e testar); de 21 a 50 (alta complexidade, difícil de entender e testar); maior que 50(altíssima complexidade).
Ferramentas de análise de código
❏ Metrics❏ Checkstyle❏ InCode
Metrics
Checkstyle
InCode
Conclusão
Ao entender o significado das métricas se torna mais fácil desenvolver um código que atenda a elas, com isso se tem um codigo com melhor legibilidade e manutenibilidade.
Referências
MEIRELLES, P. R. M. Monitoramento de métricas de código-fonte em projetos de software livre, São Paulo, 2013.