SlideShare ist ein Scribd-Unternehmen logo
1 von 18
Downloaden Sie, um offline zu lesen
Métricas e Visualização
de Código
João Marcos, Marcilio Valois
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
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.
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 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.
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.

Weitere ähnliche Inhalte

Was ist angesagt?

Análise multivariada aplicada à pesquisa
Análise multivariada aplicada à pesquisaAnálise multivariada aplicada à pesquisa
Análise multivariada aplicada à pesquisaCarlos Moura
 
Banco de questões qualidade de software
Banco de questões qualidade de softwareBanco de questões qualidade de software
Banco de questões qualidade de softwareBruno Nascimento
 
Aula 6 análise de conglomerados
Aula 6  análise de conglomeradosAula 6  análise de conglomerados
Aula 6 análise de conglomeradosRodrigo Rodrigues
 
Lista de exercícios em portugol
Lista de exercícios em portugolLista de exercícios em portugol
Lista de exercícios em portugolGabriel Faustino
 
Aula 06 qs - garantia da qualidade de sw
Aula 06   qs - garantia da qualidade de swAula 06   qs - garantia da qualidade de sw
Aula 06 qs - garantia da qualidade de swJunior Gomes
 
Javascript (parte 1)
Javascript (parte 1)Javascript (parte 1)
Javascript (parte 1)Alex Camargo
 
Introdução à Regressão Linear Simples e Múltipla
Introdução à Regressão Linear Simples e MúltiplaIntrodução à Regressão Linear Simples e Múltipla
Introdução à Regressão Linear Simples e MúltiplaCélia M. D. Sales
 
Sistemas Multimídia - Aula 02 - Introdução
Sistemas Multimídia - Aula 02 - IntroduçãoSistemas Multimídia - Aula 02 - Introdução
Sistemas Multimídia - Aula 02 - IntroduçãoLeinylson Fontinele
 
Sistemas de Gestão da Qualidade
Sistemas de Gestão da QualidadeSistemas de Gestão da Qualidade
Sistemas de Gestão da QualidadeGiulianno Sousa
 
Técnicas de Testes Funcionais Caixa-Preta
Técnicas de Testes Funcionais Caixa-PretaTécnicas de Testes Funcionais Caixa-Preta
Técnicas de Testes Funcionais Caixa-PretaLucas Amaral
 
Aula 11 - Vetores unidimensionais - parte 1
Aula 11 - Vetores unidimensionais - parte 1Aula 11 - Vetores unidimensionais - parte 1
Aula 11 - Vetores unidimensionais - parte 1Pacc UAB
 
Introdução à Simulação
Introdução à SimulaçãoIntrodução à Simulação
Introdução à SimulaçãoSimulação
 
B. auditoria geral junho 09
B. auditoria geral junho 09B. auditoria geral junho 09
B. auditoria geral junho 09Wander Gimenez
 

Was ist angesagt? (20)

Análise multivariada aplicada à pesquisa
Análise multivariada aplicada à pesquisaAnálise multivariada aplicada à pesquisa
Análise multivariada aplicada à pesquisa
 
Regressão Linear I
Regressão Linear IRegressão Linear I
Regressão Linear I
 
Banco de questões qualidade de software
Banco de questões qualidade de softwareBanco de questões qualidade de software
Banco de questões qualidade de software
 
Aula 6 análise de conglomerados
Aula 6  análise de conglomeradosAula 6  análise de conglomerados
Aula 6 análise de conglomerados
 
Lista de exercícios em portugol
Lista de exercícios em portugolLista de exercícios em portugol
Lista de exercícios em portugol
 
Aula 06 qs - garantia da qualidade de sw
Aula 06   qs - garantia da qualidade de swAula 06   qs - garantia da qualidade de sw
Aula 06 qs - garantia da qualidade de sw
 
Javascript (parte 1)
Javascript (parte 1)Javascript (parte 1)
Javascript (parte 1)
 
Introdução à Regressão Linear Simples e Múltipla
Introdução à Regressão Linear Simples e MúltiplaIntrodução à Regressão Linear Simples e Múltipla
Introdução à Regressão Linear Simples e Múltipla
 
Sistemas Multimídia - Aula 02 - Introdução
Sistemas Multimídia - Aula 02 - IntroduçãoSistemas Multimídia - Aula 02 - Introdução
Sistemas Multimídia - Aula 02 - Introdução
 
Gestor Sistema Integrado - SGI ( ISO 9001- ISO 14001 - 45001)
Gestor Sistema Integrado - SGI ( ISO 9001- ISO 14001 - 45001)Gestor Sistema Integrado - SGI ( ISO 9001- ISO 14001 - 45001)
Gestor Sistema Integrado - SGI ( ISO 9001- ISO 14001 - 45001)
 
Auditoria iso 9001
Auditoria iso 9001Auditoria iso 9001
Auditoria iso 9001
 
Sistemas de Gestão da Qualidade
Sistemas de Gestão da QualidadeSistemas de Gestão da Qualidade
Sistemas de Gestão da Qualidade
 
Apresentacao pbqp h
Apresentacao pbqp hApresentacao pbqp h
Apresentacao pbqp h
 
Regressão Linear Múltipla
Regressão Linear MúltiplaRegressão Linear Múltipla
Regressão Linear Múltipla
 
Técnicas de Testes Funcionais Caixa-Preta
Técnicas de Testes Funcionais Caixa-PretaTécnicas de Testes Funcionais Caixa-Preta
Técnicas de Testes Funcionais Caixa-Preta
 
Aula 11 - Vetores unidimensionais - parte 1
Aula 11 - Vetores unidimensionais - parte 1Aula 11 - Vetores unidimensionais - parte 1
Aula 11 - Vetores unidimensionais - parte 1
 
Introdução à Simulação
Introdução à SimulaçãoIntrodução à Simulação
Introdução à Simulação
 
Apresentação sgi
Apresentação sgiApresentação sgi
Apresentação sgi
 
Manual casio fx82ms
Manual casio fx82msManual casio fx82ms
Manual casio fx82ms
 
B. auditoria geral junho 09
B. auditoria geral junho 09B. auditoria geral junho 09
B. auditoria geral junho 09
 

Ähnlich wie Métricas de Código e Visualização

Palestra TaSafo Conf-2015: Refatoração com Métricas
Palestra TaSafo Conf-2015: Refatoração com MétricasPalestra TaSafo Conf-2015: Refatoração com Métricas
Palestra TaSafo Conf-2015: Refatoração com MétricasClaudio Martins
 
FEI - Modelagem de negocios - 2° semestre 2010
FEI - Modelagem de negocios - 2° semestre 2010FEI - Modelagem de negocios - 2° semestre 2010
FEI - Modelagem de negocios - 2° semestre 2010nathan85
 
Guia completo para definição de estatística de modelos e algoritmos de machin...
Guia completo para definição de estatística de modelos e algoritmos de machin...Guia completo para definição de estatística de modelos e algoritmos de machin...
Guia completo para definição de estatística de modelos e algoritmos de machin...Geanderson Lenz
 
Eng.Software-Métricas
Eng.Software-MétricasEng.Software-Métricas
Eng.Software-Métricaselliando dias
 
METACOM – Uma análise de correlação entre métricas de produto e propensão à m...
METACOM – Uma análise de correlação entre métricas de produto e propensão à m...METACOM – Uma análise de correlação entre métricas de produto e propensão à m...
METACOM – Uma análise de correlação entre métricas de produto e propensão à m...Gabriel Moreira
 
Machine Learning e Artificial Intelligence para desenvolvedores .NET
Machine Learning e Artificial Intelligence para desenvolvedores .NETMachine Learning e Artificial Intelligence para desenvolvedores .NET
Machine Learning e Artificial Intelligence para desenvolvedores .NETRenato Haddad
 
Benchmarking para sistemas de alto desempenho
Benchmarking para sistemas de alto desempenhoBenchmarking para sistemas de alto desempenho
Benchmarking para sistemas de alto desempenhoIntel Software Brasil
 
Estimativa de métricas de separação de interesses
Estimativa de métricas de separação de interessesEstimativa de métricas de separação de interesses
Estimativa de métricas de separação de interessesSergioSouza
 
Modelação Conceptual de Classes
Modelação Conceptual de ClassesModelação Conceptual de Classes
Modelação Conceptual de Classeselliando dias
 
Gestão de Projectos de SW OO Métricas Estimações e Planificações
Gestão de Projectos de SW OO Métricas Estimações e PlanificaçõesGestão de Projectos de SW OO Métricas Estimações e Planificações
Gestão de Projectos de SW OO Métricas Estimações e PlanificaçõesRogerio P C do Nascimento
 
Enquadramento
EnquadramentoEnquadramento
Enquadramentomcapucho
 
Enquadramento
EnquadramentoEnquadramento
Enquadramentomcapucho
 
Utilização da Engenharia de Requisitos: Onde, quando e como utilizar
Utilização da Engenharia de Requisitos: Onde, quando e como utilizarUtilização da Engenharia de Requisitos: Onde, quando e como utilizar
Utilização da Engenharia de Requisitos: Onde, quando e como utilizarOpencadd Advanced Technology
 
Aula desesenvolvimento segunda semana
Aula desesenvolvimento segunda semanaAula desesenvolvimento segunda semana
Aula desesenvolvimento segunda semanaGabriel Moura
 
DevQA: Como medir qualidade de código ?
DevQA: Como medir qualidade de código ?DevQA: Como medir qualidade de código ?
DevQA: Como medir qualidade de código ?Kamilla Queiroz Xavier
 

Ähnlich wie Métricas de Código e Visualização (20)

Palestra TaSafo Conf-2015: Refatoração com Métricas
Palestra TaSafo Conf-2015: Refatoração com MétricasPalestra TaSafo Conf-2015: Refatoração com Métricas
Palestra TaSafo Conf-2015: Refatoração com Métricas
 
Computacao
ComputacaoComputacao
Computacao
 
FEI - Modelagem de negocios - 2° semestre 2010
FEI - Modelagem de negocios - 2° semestre 2010FEI - Modelagem de negocios - 2° semestre 2010
FEI - Modelagem de negocios - 2° semestre 2010
 
Guia completo para definição de estatística de modelos e algoritmos de machin...
Guia completo para definição de estatística de modelos e algoritmos de machin...Guia completo para definição de estatística de modelos e algoritmos de machin...
Guia completo para definição de estatística de modelos e algoritmos de machin...
 
Eng.Software-Métricas
Eng.Software-MétricasEng.Software-Métricas
Eng.Software-Métricas
 
METACOM – Uma análise de correlação entre métricas de produto e propensão à m...
METACOM – Uma análise de correlação entre métricas de produto e propensão à m...METACOM – Uma análise de correlação entre métricas de produto e propensão à m...
METACOM – Uma análise de correlação entre métricas de produto e propensão à m...
 
Aula3 TEES UFS: Engenharia de Requisitos
Aula3 TEES UFS: Engenharia de RequisitosAula3 TEES UFS: Engenharia de Requisitos
Aula3 TEES UFS: Engenharia de Requisitos
 
Machine Learning e Artificial Intelligence para desenvolvedores .NET
Machine Learning e Artificial Intelligence para desenvolvedores .NETMachine Learning e Artificial Intelligence para desenvolvedores .NET
Machine Learning e Artificial Intelligence para desenvolvedores .NET
 
Benchmarking para sistemas de alto desempenho
Benchmarking para sistemas de alto desempenhoBenchmarking para sistemas de alto desempenho
Benchmarking para sistemas de alto desempenho
 
Estimativa de métricas de separação de interesses
Estimativa de métricas de separação de interessesEstimativa de métricas de separação de interesses
Estimativa de métricas de separação de interesses
 
Medindo O Desempenho De Processadores
Medindo O Desempenho De ProcessadoresMedindo O Desempenho De Processadores
Medindo O Desempenho De Processadores
 
Modelação Conceptual de Classes
Modelação Conceptual de ClassesModelação Conceptual de Classes
Modelação Conceptual de Classes
 
Sld 1
Sld 1Sld 1
Sld 1
 
Projeto de Software
Projeto de SoftwareProjeto de Software
Projeto de Software
 
Gestão de Projectos de SW OO Métricas Estimações e Planificações
Gestão de Projectos de SW OO Métricas Estimações e PlanificaçõesGestão de Projectos de SW OO Métricas Estimações e Planificações
Gestão de Projectos de SW OO Métricas Estimações e Planificações
 
Enquadramento
EnquadramentoEnquadramento
Enquadramento
 
Enquadramento
EnquadramentoEnquadramento
Enquadramento
 
Utilização da Engenharia de Requisitos: Onde, quando e como utilizar
Utilização da Engenharia de Requisitos: Onde, quando e como utilizarUtilização da Engenharia de Requisitos: Onde, quando e como utilizar
Utilização da Engenharia de Requisitos: Onde, quando e como utilizar
 
Aula desesenvolvimento segunda semana
Aula desesenvolvimento segunda semanaAula desesenvolvimento segunda semana
Aula desesenvolvimento segunda semana
 
DevQA: Como medir qualidade de código ?
DevQA: Como medir qualidade de código ?DevQA: Como medir qualidade de código ?
DevQA: Como medir qualidade de código ?
 

Métricas de Código e Visualização

  • 1. Métricas e Visualização de Código João Marcos, Marcilio Valois
  • 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).
  • 13. Ferramentas de análise de código ❏ Metrics ❏ Checkstyle ❏ InCode
  • 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.