Auditoria Codigo
Código
Eduardo Aranha
Fábrica de Software
Ferramentas para Auditoria de Código
• Metamata Audit
• Metamata Metrics
• JavaPureCheck
Fábrica de Software
Ferramentas para Auditoria de Código
• Metamata Audit
– Avalia código fonte procurando erros, pontos fracos, estilos de acordo com padrões de codificação – Sugere modificações geralmente para melhorar
• Performance, Robustês, Legibilidade
– Métricas: boas práticas de programação
– Habilitação das métricas
– Criação de métricas próprias
Fábrica de Software
Métricas utilizadas na ferramenta Metamata Audit
• Ordem de ocorrência dos modificadores
• Corpo de loops e de comandos if obrigatoriamente dentro de blocos
• Importação de classes
– pacote java.lang
– desnecessárias
– tipo <nome-pacote>.*
Fábrica de Software
Métricas utilizadas na ferramenta Metamata Audit
• Convenções de Nomeclatura
– Classes, interfaces, métodos, atributos, constantes, pacotes, variáveis locais
•
•
•
•
v.isEmpty() == true for (int i = 0 ; i < v.size() ; i++ { ... } while (...) { str = str + “...”; } int i; float f; ... ; f = (float) i;
Fábrica de Software
Métricas utilizadas na ferramenta Metamata Audit
• class Carro extends Veiculo { ... }
Carro car; ... ; if (car instanceof Veiculo) ...
Veiculo v; ... ; if (v instanceof Carro) ...
• i = j = 3 + 4;
• i = j++ + 10 ; ... ; i = (j = 5) + 1;
• int sum(i) { ... ; i++ ; ... } ...; sum(n)
• for (int i = 0 ; ...; i++) { ... ; i = 10 ; ... }
Fábrica de Software
Métricas utilizadas na ferramenta Metamata Audit
• if (a && b || c) { ... } ... if ((a && b) || c) { ... }
• class C { int f; ... int do() { int f; ... } ... int do(int f) { ... } ... }
• class C {int index() { ... } ... int do() { int index; ... } ... }
• abstract interface MyInterface { ... }
Fábrica de Software
Métricas utilizadas na ferramenta Metamata Audit
• Um método que retorna valor não deve alterar o estado (polêmico) class M { int i; ... void incr() { i++ } ... int val() { i-- ; incr();