![Page 1: Extração de Valores de Referência Relativos para Métricas de Código Fonte](https://reader034.vdocuments.pub/reader034/viewer/2022051621/56814521550346895db1e578/html5/thumbnails/1.jpg)
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)
![Page 2: Extração de Valores de Referência Relativos para Métricas de Código Fonte](https://reader034.vdocuments.pub/reader034/viewer/2022051621/56814521550346895db1e578/html5/thumbnails/2.jpg)
UFMG, 2013
Agenda
• Introdução
• Trabalhos Relacionados
• Solução Proposta
• Estudo de Caso
• Trabalhos Futuros
UFMG, 2013
![Page 3: Extração de Valores de Referência Relativos para Métricas de Código Fonte](https://reader034.vdocuments.pub/reader034/viewer/2022051621/56814521550346895db1e578/html5/thumbnails/3.jpg)
UFMG, 2013
Introdução
![Page 4: Extração de Valores de Referência Relativos para Métricas de Código Fonte](https://reader034.vdocuments.pub/reader034/viewer/2022051621/56814521550346895db1e578/html5/thumbnails/4.jpg)
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.
![Page 5: Extração de Valores de Referência Relativos para Métricas de Código Fonte](https://reader034.vdocuments.pub/reader034/viewer/2022051621/56814521550346895db1e578/html5/thumbnails/5.jpg)
UFMG, 2013
Métricas de código-fonte
5
Pouco usadas na prática
Valores de Referência
Instrumento efetivo de medida
![Page 6: Extração de Valores de Referência Relativos para Métricas de Código Fonte](https://reader034.vdocuments.pub/reader034/viewer/2022051621/56814521550346895db1e578/html5/thumbnails/6.jpg)
UFMG, 2013 6
Métricas de código-fonte
Extrair Valores de Referência
Não é trivial Utiliza a
experiência
Cauda pesada
![Page 7: Extração de Valores de Referência Relativos para Métricas de Código Fonte](https://reader034.vdocuments.pub/reader034/viewer/2022051621/56814521550346895db1e578/html5/thumbnails/7.jpg)
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!
![Page 8: Extração de Valores de Referência Relativos para Métricas de Código Fonte](https://reader034.vdocuments.pub/reader034/viewer/2022051621/56814521550346895db1e578/html5/thumbnails/8.jpg)
UFMG, 2013 8
Trabalhos Relacionados
![Page 9: Extração de Valores de Referência Relativos para Métricas de Código Fonte](https://reader034.vdocuments.pub/reader034/viewer/2022051621/56814521550346895db1e578/html5/thumbnails/9.jpg)
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]
![Page 10: Extração de Valores de Referência Relativos para Métricas de Código Fonte](https://reader034.vdocuments.pub/reader034/viewer/2022051621/56814521550346895db1e578/html5/thumbnails/10.jpg)
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]
![Page 11: Extração de Valores de Referência Relativos para Métricas de Código Fonte](https://reader034.vdocuments.pub/reader034/viewer/2022051621/56814521550346895db1e578/html5/thumbnails/11.jpg)
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]
![Page 12: Extração de Valores de Referência Relativos para Métricas de Código Fonte](https://reader034.vdocuments.pub/reader034/viewer/2022051621/56814521550346895db1e578/html5/thumbnails/12.jpg)
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]
![Page 13: Extração de Valores de Referência Relativos para Métricas de Código Fonte](https://reader034.vdocuments.pub/reader034/viewer/2022051621/56814521550346895db1e578/html5/thumbnails/13.jpg)
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]
![Page 14: Extração de Valores de Referência Relativos para Métricas de Código Fonte](https://reader034.vdocuments.pub/reader034/viewer/2022051621/56814521550346895db1e578/html5/thumbnails/14.jpg)
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]
![Page 15: Extração de Valores de Referência Relativos para Métricas de Código Fonte](https://reader034.vdocuments.pub/reader034/viewer/2022051621/56814521550346895db1e578/html5/thumbnails/15.jpg)
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:
![Page 16: Extração de Valores de Referência Relativos para Métricas de Código Fonte](https://reader034.vdocuments.pub/reader034/viewer/2022051621/56814521550346895db1e578/html5/thumbnails/16.jpg)
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]
![Page 17: Extração de Valores de Referência Relativos para Métricas de Código Fonte](https://reader034.vdocuments.pub/reader034/viewer/2022051621/56814521550346895db1e578/html5/thumbnails/17.jpg)
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]
![Page 18: Extração de Valores de Referência Relativos para Métricas de Código Fonte](https://reader034.vdocuments.pub/reader034/viewer/2022051621/56814521550346895db1e578/html5/thumbnails/18.jpg)
UFMG, 2013 18
Solução Proposta
![Page 19: Extração de Valores de Referência Relativos para Métricas de Código Fonte](https://reader034.vdocuments.pub/reader034/viewer/2022051621/56814521550346895db1e578/html5/thumbnails/19.jpg)
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;
![Page 20: Extração de Valores de Referência Relativos para Métricas de Código Fonte](https://reader034.vdocuments.pub/reader034/viewer/2022051621/56814521550346895db1e578/html5/thumbnails/20.jpg)
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
![Page 21: Extração de Valores de Referência Relativos para Métricas de Código Fonte](https://reader034.vdocuments.pub/reader034/viewer/2022051621/56814521550346895db1e578/html5/thumbnails/21.jpg)
UFMG, 2013 21
Método empírico para extrair VRR
• Exemplo:
– Métrica: Número de Atributos (NOA)
– Repositório: 106 sistemas Java;
![Page 22: Extração de Valores de Referência Relativos para Métricas de Código Fonte](https://reader034.vdocuments.pub/reader034/viewer/2022051621/56814521550346895db1e578/html5/thumbnails/22.jpg)
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
![Page 23: Extração de Valores de Referência Relativos para Métricas de Código Fonte](https://reader034.vdocuments.pub/reader034/viewer/2022051621/56814521550346895db1e578/html5/thumbnails/23.jpg)
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;
![Page 24: Extração de Valores de Referência Relativos para Métricas de Código Fonte](https://reader034.vdocuments.pub/reader034/viewer/2022051621/56814521550346895db1e578/html5/thumbnails/24.jpg)
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;
![Page 25: Extração de Valores de Referência Relativos para Métricas de Código Fonte](https://reader034.vdocuments.pub/reader034/viewer/2022051621/56814521550346895db1e578/html5/thumbnails/25.jpg)
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;
![Page 26: Extração de Valores de Referência Relativos para Métricas de Código Fonte](https://reader034.vdocuments.pub/reader034/viewer/2022051621/56814521550346895db1e578/html5/thumbnails/26.jpg)
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”
![Page 27: Extração de Valores de Referência Relativos para Métricas de Código Fonte](https://reader034.vdocuments.pub/reader034/viewer/2022051621/56814521550346895db1e578/html5/thumbnails/27.jpg)
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()
![Page 28: Extração de Valores de Referência Relativos para Métricas de Código Fonte](https://reader034.vdocuments.pub/reader034/viewer/2022051621/56814521550346895db1e578/html5/thumbnails/28.jpg)
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
![Page 29: Extração de Valores de Referência Relativos para Métricas de Código Fonte](https://reader034.vdocuments.pub/reader034/viewer/2022051621/56814521550346895db1e578/html5/thumbnails/29.jpg)
UFMG, 2013 29
Método empírico para extrair VRR
![Page 30: Extração de Valores de Referência Relativos para Métricas de Código Fonte](https://reader034.vdocuments.pub/reader034/viewer/2022051621/56814521550346895db1e578/html5/thumbnails/30.jpg)
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]
![Page 31: Extração de Valores de Referência Relativos para Métricas de Código Fonte](https://reader034.vdocuments.pub/reader034/viewer/2022051621/56814521550346895db1e578/html5/thumbnails/31.jpg)
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;
![Page 32: Extração de Valores de Referência Relativos para Métricas de Código Fonte](https://reader034.vdocuments.pub/reader034/viewer/2022051621/56814521550346895db1e578/html5/thumbnails/32.jpg)
UFMG, 2013 32
Exemplo – NOA - ComplianceRate
• ComplianceRate[85, 17] = 100%
![Page 33: Extração de Valores de Referência Relativos para Métricas de Código Fonte](https://reader034.vdocuments.pub/reader034/viewer/2022051621/56814521550346895db1e578/html5/thumbnails/33.jpg)
UFMG, 2013 33
Método empírico para extrair VRR
Penaliza CompliaceRate < MIN%
![Page 34: Extração de Valores de Referência Relativos para Métricas de Código Fonte](https://reader034.vdocuments.pub/reader034/viewer/2022051621/56814521550346895db1e578/html5/thumbnails/34.jpg)
UFMG, 2013 34
Exemplo – NOA - ComplianceRate
• ComplianceRate[85, 17] = 100%
• MIN = 90%
• Penalty1[85, 17] = 0
![Page 35: Extração de Valores de Referência Relativos para Métricas de Código Fonte](https://reader034.vdocuments.pub/reader034/viewer/2022051621/56814521550346895db1e578/html5/thumbnails/35.jpg)
UFMG, 2013 35
Método empírico para extrair VRR
Penaliza CompliaceRate quando k > TailMedian*
![Page 36: Extração de Valores de Referência Relativos para Métricas de Código Fonte](https://reader034.vdocuments.pub/reader034/viewer/2022051621/56814521550346895db1e578/html5/thumbnails/36.jpg)
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:
![Page 37: Extração de Valores de Referência Relativos para Métricas de Código Fonte](https://reader034.vdocuments.pub/reader034/viewer/2022051621/56814521550346895db1e578/html5/thumbnails/37.jpg)
UFMG, 2013 37
Método empírico para extrair VRR
Penaliza CompliaceRate quando k > TailMedian*
![Page 38: Extração de Valores de Referência Relativos para Métricas de Código Fonte](https://reader034.vdocuments.pub/reader034/viewer/2022051621/56814521550346895db1e578/html5/thumbnails/38.jpg)
UFMG, 2013 38
Exemplo – NOA - ComplianceRate
• ComplianceRate[85, 17] = 100%• K = 17• MedianTail = 9• Penalty2[17]: (17-9)/9 = 0,89
K > MedianTail
![Page 39: Extração de Valores de Referência Relativos para Métricas de Código Fonte](https://reader034.vdocuments.pub/reader034/viewer/2022051621/56814521550346895db1e578/html5/thumbnails/39.jpg)
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
![Page 40: Extração de Valores de Referência Relativos para Métricas de Código Fonte](https://reader034.vdocuments.pub/reader034/viewer/2022051621/56814521550346895db1e578/html5/thumbnails/40.jpg)
UFMG, 2013 40
NOA - ComplianceRatePenalty
Menor
![Page 41: Extração de Valores de Referência Relativos para Métricas de Código Fonte](https://reader034.vdocuments.pub/reader034/viewer/2022051621/56814521550346895db1e578/html5/thumbnails/41.jpg)
UFMG, 2013 41
NOA - ComplianceRatePenalty
• ComplianceRatePenalty[85, 17] = 0,89/3 = 0,29• Equilíbrio entre regras reais x idealizadas
Menor
![Page 42: Extração de Valores de Referência Relativos para Métricas de Código Fonte](https://reader034.vdocuments.pub/reader034/viewer/2022051621/56814521550346895db1e578/html5/thumbnails/42.jpg)
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
![Page 43: Extração de Valores de Referência Relativos para Métricas de Código Fonte](https://reader034.vdocuments.pub/reader034/viewer/2022051621/56814521550346895db1e578/html5/thumbnails/43.jpg)
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]
![Page 44: Extração de Valores de Referência Relativos para Métricas de Código Fonte](https://reader034.vdocuments.pub/reader034/viewer/2022051621/56814521550346895db1e578/html5/thumbnails/44.jpg)
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;
![Page 45: Extração de Valores de Referência Relativos para Métricas de Código Fonte](https://reader034.vdocuments.pub/reader034/viewer/2022051621/56814521550346895db1e578/html5/thumbnails/45.jpg)
UFMG, 2013 45
O que está na cauda?
Classes com alto valor de NOA
• Considerando apenas sistemas que atendem o VRR
![Page 46: Extração de Valores de Referência Relativos para Métricas de Código Fonte](https://reader034.vdocuments.pub/reader034/viewer/2022051621/56814521550346895db1e578/html5/thumbnails/46.jpg)
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.
![Page 47: Extração de Valores de Referência Relativos para Métricas de Código Fonte](https://reader034.vdocuments.pub/reader034/viewer/2022051621/56814521550346895db1e578/html5/thumbnails/47.jpg)
UFMG, 2013 47
Estudo de Caso
![Page 48: Extração de Valores de Referência Relativos para Métricas de Código Fonte](https://reader034.vdocuments.pub/reader034/viewer/2022051621/56814521550346895db1e578/html5/thumbnails/48.jpg)
UFMG, 2013 48
Estudo de Caso
• Extração de VRR
• Extração para um subcorpus
• Análise histórica
• Análise de desigualdade
![Page 49: Extração de Valores de Referência Relativos para Métricas de Código Fonte](https://reader034.vdocuments.pub/reader034/viewer/2022051621/56814521550346895db1e578/html5/thumbnails/49.jpg)
UFMG, 2013 49
Estudo de Caso: Qualitas Corpus
• versão 20101126r com 106 sistemas
Fonte: Vasilescu et al. [ICSM, 2011]
![Page 50: Extração de Valores de Referência Relativos para Métricas de Código Fonte](https://reader034.vdocuments.pub/reader034/viewer/2022051621/56814521550346895db1e578/html5/thumbnails/50.jpg)
UFMG, 2013 50
Estudo de Caso: Qualitas Corpus
• Métricas:
– Tamanho: NOM– Acoplamento: FAN-OUT– Complexidade: WMC– Encapsulamento: PUBA/NOA
![Page 51: Extração de Valores de Referência Relativos para Métricas de Código Fonte](https://reader034.vdocuments.pub/reader034/viewer/2022051621/56814521550346895db1e578/html5/thumbnails/51.jpg)
UFMG, 2013 51
Estudo de Caso: Qualitas Corpus
• Análise da distribuição
![Page 52: Extração de Valores de Referência Relativos para Métricas de Código Fonte](https://reader034.vdocuments.pub/reader034/viewer/2022051621/56814521550346895db1e578/html5/thumbnails/52.jpg)
UFMG, 2013 52
Estudo de Caso: Qualitas Corpus
![Page 53: Extração de Valores de Referência Relativos para Métricas de Código Fonte](https://reader034.vdocuments.pub/reader034/viewer/2022051621/56814521550346895db1e578/html5/thumbnails/53.jpg)
UFMG, 2013 53
Valores de referência relativos
![Page 54: Extração de Valores de Referência Relativos para Métricas de Código Fonte](https://reader034.vdocuments.pub/reader034/viewer/2022051621/56814521550346895db1e578/html5/thumbnails/54.jpg)
UFMG, 2013 54
Sistemas outliers
![Page 55: Extração de Valores de Referência Relativos para Métricas de Código Fonte](https://reader034.vdocuments.pub/reader034/viewer/2022051621/56814521550346895db1e578/html5/thumbnails/55.jpg)
UFMG, 2013 55
Estudo de Caso
VRR para um subcorpus
![Page 56: Extração de Valores de Referência Relativos para Métricas de Código Fonte](https://reader034.vdocuments.pub/reader034/viewer/2022051621/56814521550346895db1e578/html5/thumbnails/56.jpg)
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;
![Page 57: Extração de Valores de Referência Relativos para Métricas de Código Fonte](https://reader034.vdocuments.pub/reader034/viewer/2022051621/56814521550346895db1e578/html5/thumbnails/57.jpg)
UFMG, 2013 57
VRR para um subcorpus
• Exemplo
• Corpus original – 106 sistemas
• Domínio Tools – 26 sistemas
![Page 58: Extração de Valores de Referência Relativos para Métricas de Código Fonte](https://reader034.vdocuments.pub/reader034/viewer/2022051621/56814521550346895db1e578/html5/thumbnails/58.jpg)
UFMG, 2013 58
Corpus x Subcorpus
• função quantil da mediana dos valores de WMC para o corpus e subcorpus;
![Page 59: Extração de Valores de Referência Relativos para Métricas de Código Fonte](https://reader034.vdocuments.pub/reader034/viewer/2022051621/56814521550346895db1e578/html5/thumbnails/59.jpg)
UFMG, 2013 59
Corpus x Subcorpus
• Diferença apenas nos últimos quantis; • No subcorpus as classes da cauda
tendem a ser maiores;
![Page 60: Extração de Valores de Referência Relativos para Métricas de Código Fonte](https://reader034.vdocuments.pub/reader034/viewer/2022051621/56814521550346895db1e578/html5/thumbnails/60.jpg)
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;
![Page 61: Extração de Valores de Referência Relativos para Métricas de Código Fonte](https://reader034.vdocuments.pub/reader034/viewer/2022051621/56814521550346895db1e578/html5/thumbnails/61.jpg)
UFMG, 2013 61
Estudo de Caso
Análise Histórica
![Page 62: Extração de Valores de Referência Relativos para Métricas de Código Fonte](https://reader034.vdocuments.pub/reader034/viewer/2022051621/56814521550346895db1e578/html5/thumbnails/62.jpg)
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;
![Page 63: Extração de Valores de Referência Relativos para Métricas de Código Fonte](https://reader034.vdocuments.pub/reader034/viewer/2022051621/56814521550346895db1e578/html5/thumbnails/63.jpg)
UFMG, 2013 63
Análise Histórica
FAN-OUT (p = 80, k = 15)
![Page 64: Extração de Valores de Referência Relativos para Métricas de Código Fonte](https://reader034.vdocuments.pub/reader034/viewer/2022051621/56814521550346895db1e578/html5/thumbnails/64.jpg)
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;
![Page 65: Extração de Valores de Referência Relativos para Métricas de Código Fonte](https://reader034.vdocuments.pub/reader034/viewer/2022051621/56814521550346895db1e578/html5/thumbnails/65.jpg)
UFMG, 2013 65
Estudo de Caso
Análise de Desigualdade
![Page 66: Extração de Valores de Referência Relativos para Métricas de Código Fonte](https://reader034.vdocuments.pub/reader034/viewer/2022051621/56814521550346895db1e578/html5/thumbnails/66.jpg)
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
![Page 67: Extração de Valores de Referência Relativos para Métricas de Código Fonte](https://reader034.vdocuments.pub/reader034/viewer/2022051621/56814521550346895db1e578/html5/thumbnails/67.jpg)
UFMG, 2013 67
Análise de Desigualdade
• JParser e Checkstyle não parecem ser
diferentes em termos de qualidade interna;
![Page 68: Extração de Valores de Referência Relativos para Métricas de Código Fonte](https://reader034.vdocuments.pub/reader034/viewer/2022051621/56814521550346895db1e578/html5/thumbnails/68.jpg)
UFMG, 2013 68
Discussão
• Staircase-effects
– Refatorações podem mudar o estado de um
sistema;
![Page 69: Extração de Valores de Referência Relativos para Métricas de Código Fonte](https://reader034.vdocuments.pub/reader034/viewer/2022051621/56814521550346895db1e578/html5/thumbnails/69.jpg)
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;
![Page 70: Extração de Valores de Referência Relativos para Métricas de Código Fonte](https://reader034.vdocuments.pub/reader034/viewer/2022051621/56814521550346895db1e578/html5/thumbnails/70.jpg)
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;
![Page 71: Extração de Valores de Referência Relativos para Métricas de Código Fonte](https://reader034.vdocuments.pub/reader034/viewer/2022051621/56814521550346895db1e578/html5/thumbnails/71.jpg)
UFMG, 2013 71
Trabalhos Futuros
![Page 72: Extração de Valores de Referência Relativos para Métricas de Código Fonte](https://reader034.vdocuments.pub/reader034/viewer/2022051621/56814521550346895db1e578/html5/thumbnails/72.jpg)
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;
![Page 73: Extração de Valores de Referência Relativos para Métricas de Código Fonte](https://reader034.vdocuments.pub/reader034/viewer/2022051621/56814521550346895db1e578/html5/thumbnails/73.jpg)
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;
![Page 74: Extração de Valores de Referência Relativos para Métricas de Código Fonte](https://reader034.vdocuments.pub/reader034/viewer/2022051621/56814521550346895db1e578/html5/thumbnails/74.jpg)
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]
![Page 75: Extração de Valores de Referência Relativos para Métricas de Código Fonte](https://reader034.vdocuments.pub/reader034/viewer/2022051621/56814521550346895db1e578/html5/thumbnails/75.jpg)
UFMG, 2013 75
Trabalhos futuros
• Ferramenta de Apoio
Métricas
VRRMétodo
propostoOutliers
Entrada Processamento Saída
![Page 76: Extração de Valores de Referência Relativos para Métricas de Código Fonte](https://reader034.vdocuments.pub/reader034/viewer/2022051621/56814521550346895db1e578/html5/thumbnails/76.jpg)
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
![Page 77: Extração de Valores de Referência Relativos para Métricas de Código Fonte](https://reader034.vdocuments.pub/reader034/viewer/2022051621/56814521550346895db1e578/html5/thumbnails/77.jpg)
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
![Page 78: Extração de Valores de Referência Relativos para Métricas de Código Fonte](https://reader034.vdocuments.pub/reader034/viewer/2022051621/56814521550346895db1e578/html5/thumbnails/78.jpg)
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.
![Page 79: Extração de Valores de Referência Relativos para Métricas de Código Fonte](https://reader034.vdocuments.pub/reader034/viewer/2022051621/56814521550346895db1e578/html5/thumbnails/79.jpg)
UFMG, 2013 79
Cronograma
![Page 80: Extração de Valores de Referência Relativos para Métricas de Código Fonte](https://reader034.vdocuments.pub/reader034/viewer/2022051621/56814521550346895db1e578/html5/thumbnails/80.jpg)
UFMG, 2013 80
Previsão de defesa
Dezembro/2014
![Page 81: Extração de Valores de Referência Relativos para Métricas de Código Fonte](https://reader034.vdocuments.pub/reader034/viewer/2022051621/56814521550346895db1e578/html5/thumbnails/81.jpg)
Obrigada!
![Page 82: Extração de Valores de Referência Relativos para Métricas de Código Fonte](https://reader034.vdocuments.pub/reader034/viewer/2022051621/56814521550346895db1e578/html5/thumbnails/82.jpg)
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
![Page 83: Extração de Valores de Referência Relativos para Métricas de Código Fonte](https://reader034.vdocuments.pub/reader034/viewer/2022051621/56814521550346895db1e578/html5/thumbnails/83.jpg)
UFMG, 2013 83
Análise Histórica
NOM (p = 80, k = 17)
![Page 84: Extração de Valores de Referência Relativos para Métricas de Código Fonte](https://reader034.vdocuments.pub/reader034/viewer/2022051621/56814521550346895db1e578/html5/thumbnails/84.jpg)
UFMG, 2013 84
Análise Histórica
WMC (p = 75, k = 32)
![Page 85: Extração de Valores de Referência Relativos para Métricas de Código Fonte](https://reader034.vdocuments.pub/reader034/viewer/2022051621/56814521550346895db1e578/html5/thumbnails/85.jpg)
UFMG, 2013 85
Análise Histórica
PUBA/NOA (p = 75, k = 0,1)
![Page 86: Extração de Valores de Referência Relativos para Métricas de Código Fonte](https://reader034.vdocuments.pub/reader034/viewer/2022051621/56814521550346895db1e578/html5/thumbnails/86.jpg)
UFMG, 2013 86
Discussão
• Requisitos
– Composição;
– Agregação;
– Simetria;