Post on 21-Apr-2015
Extração de Valores de Referência Relativos para Métricas de Código Fonte
Paloma Maira de Oliveira
Prof. Marco Túlio Valente(Orientador)
UFMG, 2013
Agenda
• Introdução
• Trabalhos Relacionados
• Solução Proposta
• Estudo de Caso
• Trabalhos Futuros
UFMG, 2013
UFMG, 2013
Introdução
UFMG, 2013 4
Métricas de código-fonte
Acoplamento
CoesãoComplexidade
TamanhoEncapsulamento
• Não são amplamente utilizadas para aferir a qualidade interna de produtos de software.
UFMG, 2013
Métricas de código-fonte
5
Pouco usadas na prática
Valores de Referência
Instrumento efetivo de medida
UFMG, 2013 6
Métricas de código-fonte
Extrair Valores de Referência
Não é trivial Utiliza a
experiência
Cauda pesada
UFMG, 2013 7
Distribuição de cauda-pesada
• Exemplo LOC:» # classes analisadas: 1047;»Média aritmética = 107 LOC.»Maioria das classes menos de 50 LOC;» Possui classes com mais de 3 KLOC;
Média não representativa!
UFMG, 2013 8
Trabalhos Relacionados
UFMG, 2013 9
Caracterização de Métricas
• Vários trabalhos que verificam conformidade com cauda-pesada;
• Importante contribuição teórica;• Mas não auxiliam a extrair valores de
referência na prática;
Wheeldon & Counsell [2003]
Louridas et al. [2008]
Baxter et al. [2006]
Gao et al. [2010]
Potanin et al. [2005]
Concas et al. [2007]
Vasa et al. [2009]
Jing et al. [2006]
Taube-schock et al. [2011]
Vasilescu et al. [2011]
UFMG, 2013 10
Extração de Valores de Referência
• Estatística descritiva / Especialistas
–Não respeitam a distribuição dos dados;
Erni & Lewerentz [1996]
Lanza & Marinescu [2006]
JPL [2010]
UFMG, 2013 11
Extração de Valores de Referência
• Métodos que consideram distribuições de cauda-pesada
Ferreira et al. [2011]
Alves et al. [2010]Heitlager et al. [2007]Baggen [2012]
UFMG, 2013 12
Modelo de Manutenibilidade do SIG.EU
• Metodologia empírica (100 sistemas);
• Novidade: ponderação por LOC;
Alves et al. [2010]Heitlager et al. [2007]
Baggen [2012]
UFMG, 2013 13
Modelo de Manutenibilidade do SIG.EU;
• Resultado: perfis de qualidade e classificação em categorias de risco:
“Complexidade de McCabe: 6 - low risk,
8 - moderate risk, 14 - high risk,
>14 – very high risk” [Alves, 2010] - ICSM
Alves et al. [2010]Heitlager et al. [2007]
Baggen [2012]
UFMG, 2013 14
Extração de Valores de Referência
• Métodos que consideram distribuições de cauda-pesada
Ferreira et al. [2011]
Alves et al. [2010]Heitlager et al. [2007]Baggen [2012]
UFMG, 2013 15
Ferreira et al. [2011]
• Metodologia empírica (40 sistemas)
• 6 métricas: LCOM, DIT, COF, AC, NOMP e NOAP;
• Baseada em propriedades estatísticas:
UFMG, 2013 16
• Resultado
• Classificação em 3 categorias:Bom, Regular e Ruim
“LCOM - Good: 0; regular: 1–20;
bad: greater than 20” [Ferreira,2011] – Journal of Systems and Software
Ferreira et al. [2011]
UFMG, 2013 17
Avaliação Crítica
– Valor de Referência Absoluto;
– Objetivo é classificar entidades;
– Classes com valores alto são consideradas ruins ou de alto risco;
– Na prática é comum ter classes com alto valor
Ferreira et al. [2011]
Alves et al. [2010]Heitlager et al. [2007]Baggen [2012]
UFMG, 2013 18
Solução Proposta
UFMG, 2013 19
Nossa proposta
Valores de Referência Relativos (VRR)
• Seguidos pela maioria das entidades;
• VRR que reflitam a prática;
• A partir de repositório de sistemas;
UFMG, 2013 20
Nossa proposta
Extrair valores de referência relativos
• M - métrica de código fonte;• k - limite superior;• p - é a porcentagem mínima de entidades
que devem seguir esse limite.
p% das entidades devem ter M k
UFMG, 2013 21
Método empírico para extrair VRR
• Exemplo:
– Métrica: Número de Atributos (NOA)
– Repositório: 106 sistemas Java;
UFMG, 2013 22
Nossa proposta:
Extrair valores de referência relativos
• Exemplo:
• “80% das classes devem ter NOA 8”
p% das entidades devem ter M k
UFMG, 2013 23
Valores de referência relativos
p% das entidades devem ter M k
• “80% das classes devem ter NOA 8”
• Cauda: (1- p%) de entidades com M > K
• Exemplo: 20% das classes podem ter NOA > 8
• Equilíbrio entre regras: reais x idealizadas;
UFMG, 2013 24
Método empírico para extrair VRR
• Calcular p e k
– Corpus: repositório de sistemas;
–MIN: regras de projetos reais;
– TAIL: regras de projetos idealizadas;
UFMG, 2013 25
Método empírico para extrair VRR
• Calcular p e k
–MIN:
– regras de projetos reais;
–% mínima de sistemas que seguem uma
prática amplamente usada;
UFMG, 2013 26
Método empírico para extrair VRR
• Calcular p e k
– TAIL:
– regras de projetos idealizadas;
– Percentil onde começa a cauda da
distribuição;
– Existem classes com 100 atributos, contudo,
não representam uma classe “ideal”
UFMG, 2013 27
Método empírico para extrair VRR
• Calcular p e k
– Corpus: repositório de sistemas;
–MIN: regras de projetos reais;
– TAIL: regras de projetos idealizadas;
• Ponderação entre
real() x idealizado()
UFMG, 2013 28
Exemplo de Parâmetros - NOA
– Corpus: 106 sistemas do Qualitas Corpus;
–MIN: 90% do sistemas
– TAIL: percentil 90
– : 2 (maior relevância)
– 1
UFMG, 2013 29
Método empírico para extrair VRR
UFMG, 2013 30
Método empírico para extrair VRR
Retorna a % de sistemas do corpus que seguem o VRR para o par [p,k]
UFMG, 2013 31
Exemplo – NOA - ComplianceRate• ComplianceRate para diferentes valores de p e k
• Função crescente de acordo com k;• Crescimento mais lento quando p aumenta;
UFMG, 2013 32
Exemplo – NOA - ComplianceRate
• ComplianceRate[85, 17] = 100%
UFMG, 2013 33
Método empírico para extrair VRR
Penaliza CompliaceRate < MIN%
UFMG, 2013 34
Exemplo – NOA - ComplianceRate
• ComplianceRate[85, 17] = 100%
• MIN = 90%
• Penalty1[85, 17] = 0
UFMG, 2013 35
Método empírico para extrair VRR
Penaliza CompliaceRate quando k > TailMedian*
UFMG, 2013 36
Método empírico para extrair VRR
Sistema Tail: 90%Trove 3JUnit 4
Lucene 8Weka 14
TailMedian 6
TailMedian: é a mediana do TAIL de todos os sistemas do corpus;
Exemplo: Corpus – 4 sistemas:
UFMG, 2013 37
Método empírico para extrair VRR
Penaliza CompliaceRate quando k > TailMedian*
UFMG, 2013 38
Exemplo – NOA - ComplianceRate
• ComplianceRate[85, 17] = 100%• K = 17• MedianTail = 9• Penalty2[17]: (17-9)/9 = 0,89
K > MedianTail
UFMG, 2013 39
Método proposto para extrair VRR
O valor de referência relativo é o menor valor encontrado para ComplianceRatePenalty
• ComplianceRatePenalty: média ponderada entre as penalidades
UFMG, 2013 40
NOA - ComplianceRatePenalty
Menor
UFMG, 2013 41
NOA - ComplianceRatePenalty
• ComplianceRatePenalty[85, 17] = 0,89/3 = 0,29• Equilíbrio entre regras reais x idealizadas
Menor
UFMG, 2013 42
NOA - ComplianceRatePenalty
• ComplianceRatePenalty = 0 em 5 casos:
[75,7] [75,8] [75,9] [80,8] [80,9]
Critério de desempate
Maior p e menor k
[80,8] [80,9]
Menor
UFMG, 2013 43
NOA - ComplianceRatePenalty
[75,7] [75,8] [75,9] [80,8] [80,9]“80% das classes devem ter NOA 8”
Valor de referência relativo para a métrica NOA
[p,k] = [80,8]
UFMG, 2013 44
VRR - NOA
“80% das classes devem ter NOA 8”
• Esse VRR representa um equilíbrio entre as duas forças;
• reflete uma regra de projeto real, seguida por 92% dos sistemas no Corpus;
• o limite superior k= 8 é bastante aceitável;
UFMG, 2013 45
O que está na cauda?
Classes com alto valor de NOA
• Considerando apenas sistemas que atendem o VRR
UFMG, 2013 46
Estudo de Caso: Qualitas Corpus
• classes com valores altos para NOA normalmente são Data Classes;
• usadas apenas para armazenar constantes globais ;
• AspectJ - a grande maioria são atributos que armazenam mensagens de erro.
UFMG, 2013 47
Estudo de Caso
UFMG, 2013 48
Estudo de Caso
• Extração de VRR
• Extração para um subcorpus
• Análise histórica
• Análise de desigualdade
UFMG, 2013 49
Estudo de Caso: Qualitas Corpus
• versão 20101126r com 106 sistemas
Fonte: Vasilescu et al. [ICSM, 2011]
UFMG, 2013 50
Estudo de Caso: Qualitas Corpus
• Métricas:
– Tamanho: NOM– Acoplamento: FAN-OUT– Complexidade: WMC– Encapsulamento: PUBA/NOA
UFMG, 2013 51
Estudo de Caso: Qualitas Corpus
• Análise da distribuição
UFMG, 2013 52
Estudo de Caso: Qualitas Corpus
UFMG, 2013 53
Valores de referência relativos
UFMG, 2013 54
Sistemas outliers
UFMG, 2013 55
Estudo de Caso
VRR para um subcorpus
UFMG, 2013 56
VRR para um subcorpus
• Domínio Tools – 26 sistemas;
• Tools - subconjunto do Qualitas Corpus;
• VRR ligeiramente maiores para os
parâmetros p e k;
UFMG, 2013 57
VRR para um subcorpus
• Exemplo
• Corpus original – 106 sistemas
• Domínio Tools – 26 sistemas
UFMG, 2013 58
Corpus x Subcorpus
• função quantil da mediana dos valores de WMC para o corpus e subcorpus;
UFMG, 2013 59
Corpus x Subcorpus
• Diferença apenas nos últimos quantis; • No subcorpus as classes da cauda
tendem a ser maiores;
UFMG, 2013 60
VRR para um subcorpus
• Domínio Tools – 26 sistemas
• Weka era outlier para FAN-OUT;
• Importância do Corpus no método;
• O método reclassifica sistemas de acordo com
o Corpus;
UFMG, 2013 61
Estudo de Caso
Análise Histórica
UFMG, 2013 62
Análise Histórica
• VRR são válidos p/ diferentes versões?
• Sistemas considerados: Qualitas e COMETS
• Intervalos de bi-semanas;
UFMG, 2013 63
Análise Histórica
FAN-OUT (p = 80, k = 15)
UFMG, 2013 64
Análise Histórica
• VRR capturam práticas de projetos
duradouras;
• Sistemas não outliers apresentaram o
mesmo comportamento em todas as
versões analisadas;
UFMG, 2013 65
Estudo de Caso
Análise de Desigualdade
UFMG, 2013 66
Análise de Desigualdade
• Índice de GINI
0 - perfeita igualdade
1 - desigualdade total
• Sistemas que atendem
o VRR;
• Sistemas outliers:
JParser e CheckStyle
JParser – Gini = 0,26
CheckStyle – Gini = 0,61
UFMG, 2013 67
Análise de Desigualdade
• JParser e Checkstyle não parecem ser
diferentes em termos de qualidade interna;
UFMG, 2013 68
Discussão
• Staircase-effects
– Refatorações podem mudar o estado de um
sistema;
UFMG, 2013 69
Discussão
• Tolerância a Bad Smells
– VRR propostos toleram uma porcentagem
de classes com alto valor;
– Tais classes tendem a representar bad
smells;
– Contudo, não é visto como uma ameaça à
qualidade global de um sistema;
UFMG, 2013 70
Discussão
• Propriedades Estatísticas
• mediana não é usada para definir um valor de referência;
• usada simplesmente para penalizar Compliance Rates;
UFMG, 2013 71
Trabalhos Futuros
UFMG, 2013 72
Situação Atual
• Método empírico para extrair VRR;
• Viabilidade por meio de estudo de caso
– Subcorpus;
– Análise histórica;
– Análise de desigualdade;
UFMG, 2013 73
Trabalhos futuros
• Aprimorar o método proposto:
– Analisar o impacto dos parâmetros
envolvidos ( e );
– Analisar o impacto do valor da constante
TAIL em diferentes métricas;
UFMG, 2013 74
Trabalhos futuros
• Dois Novos Estudos de caso:
1. Ampliar o conjunto de métricas:
• 10 métricas;
2. Extrair VRR para diferentes contextos:
• tamanho do sistema, domínio e linguagem de
programação;
• Reutilizar os dados de Zhang et al. [ICSM, 2013]
UFMG, 2013 75
Trabalhos futuros
• Ferramenta de Apoio
Métricas
VRRMétodo
propostoOutliers
Entrada Processamento Saída
UFMG, 2013 76
Trabalhos futuros
• Comparação com outras Abordagens
– Alves et al. [2010] e Ferreira et al. [2011]
– utilizando um mesmo conjunto de
sistemas e métricas.
– Enriquecer o capítulo de revisão da
literatura com um estudo comparativo real
UFMG, 2013 77
Trabalhos futuros
• Aplicação - Identificar débito técnico (TD)
– Metáfora inspirada em uma dívida financeira;
– VRR - pagar “dívida” decorrente de um TD excessivo
Débito Técnico
Bad SmellsAnálise Estática
Violação de Modularidade
UFMG, 2013 78
Publicações
• Paloma Oliveira; Hudson Borges; Marco Tulio Valente; Heitor Costa. Metrics Based Detection of Similar Software. SEKE, 2013.
• Paloma Oliveira; Hudson Borges; Marco Tulio Valente; Heitor Costa. Uma Abordagem para Verificação de Similaridade entre Sistemas Orientados a Objetos. SBQS, 2012.
UFMG, 2013 79
Cronograma
UFMG, 2013 80
Previsão de defesa
Dezembro/2014
Obrigada!
UFMG, 2013 82
Método empírico para extrair VRR
• Calcular p e k
– Exemplo TAIL:
– Corpus = 4 sistemas e Tail = 90%
Sistema 75% 80% 85% 90%
Trove 2 3 3 3JUnit 2 2 3 4Lucen
e 4 5 6 8Weka 7 8 10 14
UFMG, 2013 83
Análise Histórica
NOM (p = 80, k = 17)
UFMG, 2013 84
Análise Histórica
WMC (p = 75, k = 32)
UFMG, 2013 85
Análise Histórica
PUBA/NOA (p = 75, k = 0,1)
UFMG, 2013 86
Discussão
• Requisitos
– Composição;
– Agregação;
– Simetria;