O documento discute métricas e visualização de código. Ele explica o que são métricas de código e como podem ser usadas para avaliar a qualidade e legibilidade do código. Ele também lista vários tipos de métricas e ferramentas para análise de código, além de fornecer exemplos de escalas de medição para métricas como LOC, AMLOC e ACCM.
2. Roteiro
1. Introdução
2. Por que usar métricas
3. 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ça
3.4. Outras métricas
4. Ferramentas de análise de código
4.1 Metrics
4.2 CheckStyle
4.3 Incode
5. Escala de Medição
6. Conclusão
7. Referências
3. Introdução
O 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.
4. 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.
5. 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
6. 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).
7. 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).
8. Relacionadas a herança
❏ DIT (Depth of Inheritance Tree -
Profundidade da árvore de herança).
❏ NOC (Number of Children - Número de
filhos ).
9. 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)
10. Escala de medição
As métricas devem estar associadas a uma
escala de medição que proporcione significado
ao 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.
11. 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).
12. 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).
17. 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.
18. Referências
MEIRELLES, P. R. M. Monitoramento de
métricas de código-fonte em projetos de
software livre, São Paulo, 2013.