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)

Download 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)

Post on 21-Apr-2015

102 views

Category:

Documents

0 download

Embed Size (px)

TRANSCRIPT

<ul><li> Slide 1 </li> <li> Extrao de Valores de Referncia Relativos para Mtricas de Cdigo Fonte Paloma Maira de Oliveira Prof. Marco Tlio Valente (Orientador) </li> <li> Slide 2 </li> <li> Agenda Introduo Trabalhos Relacionados Soluo Proposta Estudo de Caso Trabalhos Futuros UFMG, 2013 </li> <li> Slide 3 </li> <li> Introduo UFMG, 2013 </li> <li> Slide 4 </li> <li> Mtricas de cdigo-fonte UFMG, 20134 Acoplamento Coeso Complexidade Tamanho Encapsulamento No so amplamente utilizadas para aferir a qualidade interna de produtos de software. </li> <li> Slide 5 </li> <li> Mtricas de cdigo-fonte UFMG, 20135 Pouco usadas na prtica Pouco usadas na prtica Valores de Referncia Instrumento efetivo de medida </li> <li> Slide 6 </li> <li> Mtricas de cdigo-fonte UFMG, 20136 Extrair Valores de Referncia No trivial Utiliza a experincia Cauda pesada </li> <li> Slide 7 </li> <li> Distribuio de cauda-pesada UFMG, 20137 Exemplo LOC: # classes analisadas: 1047; Mdia aritmtica = 107 LOC. Maioria das classes menos de 50 LOC; Possui classes com mais de 3 KLOC; Mdia no representativa! </li> <li> Slide 8 </li> <li> Trabalhos Relacionados UFMG, 20138 </li> <li> Slide 9 </li> <li> Caracterizao de Mtricas Vrios trabalhos que verificam conformidade com cauda-pesada; Importante contribuio terica; Mas no auxiliam a extrair valores de referncia na prtica; UFMG, 20139 Wheeldon &amp; 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] </li> <li> Slide 10 </li> <li> Extrao de Valores de Referncia Estatstica descritiva / Especialistas No respeitam a distribuio dos dados; UFMG, 201310 Erni &amp; Lewerentz [1996] Lanza &amp; Marinescu [2006] JPL [2010] </li> <li> Slide 11 </li> <li> Extrao de Valores de Referncia Mtodos que consideram distribuies de cauda-pesada UFMG, 201311 Ferreira et al. [2011] Alves et al. [2010] Heitlager et al. [2007] Baggen [2012] </li> <li> Slide 12 </li> <li> Modelo de Manutenibilidade do SIG.EU Metodologia emprica (100 sistemas); Novidade: ponderao por LOC; UFMG, 201312 Alves et al. [2010] Heitlager et al. [2007] Baggen [2012] </li> <li> Slide 13 </li> <li> Modelo de Manutenibilidade do SIG.EU; Resultado : perfis de qualidade e classificao em categorias de risco: Complexidade de McCabe: 6 - low risk, 8 - moderate risk, 14 - high risk, &gt;14 very high risk [Alves, 2010] - ICSM UFMG, 201313 Alves et al. [2010] Heitlager et al. [2007] Baggen [2012] </li> <li> Slide 14 </li> <li> Extrao de Valores de Referncia Mtodos que consideram distribuies de cauda-pesada UFMG, 201314 Ferreira et al. [2011] Alves et al. [2010] Heitlager et al. [2007] Baggen [2012] </li> <li> Slide 15 </li> <li> Ferreira et al. [2011] Metodologia emprica (40 sistemas) 6 mtricas: LCOM, DIT, COF, AC, NOMP e NOAP; Baseada em propriedades estatsticas: UFMG, 201315 </li> <li> Slide 16 </li> <li> Resultado Classificao em 3 categorias: Bom, Regular e Ruim LCOM - Good: 0; regular: 120; bad: greater than 20 [Ferreira,2011] Journal of Systems and Software UFMG, 201316 Ferreira et al. [2011] </li> <li> Slide 17 </li> <li> Avaliao Crtica Valor de Referncia Absoluto; Objetivo classificar entidades; Classes com valores alto so consideradas ruins ou de alto risco; Na prtica comum ter classes com alto valor UFMG, 201317 Ferreira et al. [2011] Alves et al. [2010] Heitlager et al. [2007] Baggen [2012] </li> <li> Slide 18 </li> <li> Soluo Proposta UFMG, 201318 </li> <li> Slide 19 </li> <li> Nossa proposta Valores de Referncia Relativos (VRR) Seguidos pela maioria das entidades; VRR que reflitam a prtica ; A partir de repositrio de sistemas ; UFMG, 201319 </li> <li> Slide 20 </li> <li> Nossa proposta Extrair valores de referncia relativos M - mtrica de cdigo fonte; k - limite superior; p - a porcentagem mnima de entidades que devem seguir esse limite. UFMG, 201320 </li> <li> Slide 21 </li> <li> Mtodo emprico para extrair VRR UFMG, 201321 Exemplo: Mtrica: Nmero de Atributos (NOA) Repositrio: 106 sistemas Java; </li> <li> Slide 22 </li> <li> Nossa proposta: UFMG, 201322 </li> <li> Slide 23 </li> <li> Valores de referncia relativos UFMG, 201323 </li> <li> Slide 24 </li> <li> Mtodo emprico para extrair VRR UFMG, 201324 Calcular p e k Corpus: repositrio de sistemas; MIN : regras de projetos reais; TAIL : regras de projetos idealizadas; </li> <li> Slide 25 </li> <li> Mtodo emprico para extrair VRR UFMG, 201325 Calcular p e k MIN : regras de projetos reais; % mnima de sistemas que seguem uma prtica amplamente usada; </li> <li> Slide 26 </li> <li> Mtodo emprico para extrair VRR UFMG, 201326 Calcular p e k TAIL : regras de projetos idealizadas; Percentil onde comea a cauda da distribuio; Existem classes com 100 atributos, contudo, no representam uma classe ideal </li> <li> Slide 27 </li> <li> Mtodo emprico para extrair VRR UFMG, 201327 </li> <li> Slide 28 </li> <li> Exemplo de Parmetros - NOA UFMG, 201328 </li> <li> Slide 29 </li> <li> Mtodo emprico para extrair VRR UFMG, 201329 </li> <li> Slide 30 </li> <li> Mtodo emprico para extrair VRR UFMG, 201330 Retorna a % de sistemas do corpus que seguem o VRR para o par [p,k] </li> <li> Slide 31 </li> <li> Exemplo NOA - ComplianceRate UFMG, 201331 ComplianceRate para diferentes valores de p e k Funo crescente de acordo com k; Crescimento mais lento quando p aumenta; </li> <li> Slide 32 </li> <li> Exemplo NOA - ComplianceRate UFMG, 201332 ComplianceRate[85, 17] = 100% </li> <li> Slide 33 </li> <li> Mtodo emprico para extrair VRR UFMG, 201333 Penaliza CompliaceRate &lt; MIN% </li> <li> Slide 34 </li> <li> Exemplo NOA - ComplianceRate UFMG, 201334 ComplianceRate[85, 17] = 100% MIN = 90% Penalty1[85, 17] = 0 </li> <li> Slide 35 </li> <li> Mtodo emprico para extrair VRR UFMG, 201335 Penaliza CompliaceRate quando k &gt; TailMedian* </li> <li> Slide 36 </li> <li> Mtodo emprico para extrair VRR SistemaTail: 90% Trove3 JUnit4 Lucene8 Weka14 TailMedian6 UFMG, 201336 TailMedian: a mediana do TAIL de todos os sistemas do corpus; Exemplo: Corpus 4 sistemas: </li> <li> Slide 37 </li> <li> Mtodo emprico para extrair VRR UFMG, 201337 Penaliza CompliaceRate quando k &gt; TailMedian* </li> <li> Slide 38 </li> <li> Exemplo NOA - ComplianceRate UFMG, 201338 ComplianceRate[85, 17] = 100% K = 17 MedianTail = 9 Penalty2[17]: (17-9)/9 = 0,89 K &gt; MedianTail </li> <li> Slide 39 </li> <li> Mtodo proposto para extrair VRR UFMG, 201339 O valor de referncia relativo o menor valor encontrado para ComplianceRatePenalty ComplianceRatePenalty: mdia ponderada entre as penalidades </li> <li> Slide 40 </li> <li> NOA - ComplianceRatePenalty UFMG, 201340 Menor </li> <li> Slide 41 </li> <li> NOA - ComplianceRatePenalty UFMG, 201341 ComplianceRatePenalty[85, 17] = 0,89/3 = 0,29 Equilbrio entre regras reais x idealizadas Menor </li> <li> Slide 42 </li> <li> NOA - ComplianceRatePenalty UFMG, 201342 ComplianceRatePenalty = 0 em 5 casos: [75,7] [75,8] [75,9] [80,8] [80,9] Critrio de desempate Maior p e menor k Critrio de desempate Maior p e menor k [80,8] [80,9] Menor </li> <li> Slide 43 </li> <li> NOA - ComplianceRatePenalty UFMG, 201343 Valor de referncia relativo para a mtrica NOA [p,k] = [80,8] Valor de referncia relativo para a mtrica NOA [p,k] = [80,8] </li> <li> Slide 44 </li> <li> VRR - NOA UFMG, 201344 </li> <li> Slide 45 </li> <li> O que est na cauda? UFMG, 201345 Classes com alto valor de NOA Considerando apenas sistemas que atendem o VRR </li> <li> Slide 46 </li> <li> Estudo de Caso: Qualitas Corpus UFMG, 201346 classes com valores altos para NOA normalmente so Data Classes; usadas apenas para armazenar constantes globais ; AspectJ - a grande maioria so atributos que armazenam mensagens de erro. </li> <li> Slide 47 </li> <li> Estudo de Caso UFMG, 201347 </li> <li> Slide 48 </li> <li> Estudo de Caso UFMG, 201348 Extrao de VRR Extrao para um subcorpus Anlise histrica Anlise de desigualdade </li> <li> Slide 49 </li> <li> Estudo de Caso: Qualitas Corpus UFMG, 201349 verso 20101126r com 106 sistemas Fonte: Vasilescu et al. [ICSM, 2011] </li> <li> Slide 50 </li> <li> Estudo de Caso: Qualitas Corpus UFMG, 201350 Mtricas: Tamanho: NOM Acoplamento: FAN-OUT Complexidade: WMC Encapsulamento: PUBA/NOA </li> <li> Slide 51 </li> <li> Estudo de Caso: Qualitas Corpus UFMG, 201351 Anlise da distribuio </li> <li> Slide 52 </li> <li> Estudo de Caso: Qualitas Corpus UFMG, 201352 </li> <li> Slide 53 </li> <li> Valores de referncia relativos UFMG, 201353 </li> <li> Slide 54 </li> <li> Sistemas outliers UFMG, 201354 </li> <li> Slide 55 </li> <li> Estudo de Caso VRR para um subcorpus UFMG, 201355 </li> <li> Slide 56 </li> <li> VRR para um subcorpus UFMG, 201356 Domnio Tools 26 sistemas; Tools - subconjunto do Qualitas Corpus; VRR ligeiramente maiores para os parmetros p e k; </li> <li> Slide 57 </li> <li> VRR para um subcorpus UFMG, 201357 Exemplo Corpus original 106 sistemas Domnio Tools 26 sistemas </li> <li> Slide 58 </li> <li> Corpus x Subcorpus UFMG, 201358 funo quantil da mediana dos valores de WMC para o corpus e subcorpus; </li> <li> Slide 59 </li> <li> Corpus x Subcorpus UFMG, 201359 Diferena apenas nos ltimos quantis; No subcorpus as classes da cauda tendem a ser maiores; </li> <li> Slide 60 </li> <li> VRR para um subcorpus UFMG, 201360 Domnio Tools 26 sistemas Weka era outlier para FAN-OUT; Importncia do Corpus no mtodo; O mtodo reclassifica sistemas de acordo com o Corpus; </li> <li> Slide 61 </li> <li> Estudo de Caso Anlise Histrica UFMG, 201361 </li> <li> Slide 62 </li> <li> Anlise Histrica UFMG, 201362 VRR so vlidos p/ diferentes verses? Sistemas considerados: Qualitas e COMETS Intervalos de bi-semanas; </li> <li> Slide 63 </li> <li> Anlise Histrica UFMG, 201363 FAN-OUT (p = 80, k = 15) </li> <li> Slide 64 </li> <li> Anlise Histrica UFMG, 201364 VRR capturam prticas de projetos duradouras; Sistemas no outliers apresentaram o mesmo comportamento em todas as verses analisadas; </li> <li> Slide 65 </li> <li> Estudo de Caso Anlise de Desigualdade UFMG, 201365 </li> <li> Slide 66 </li> <li> Anlise de Desigualdade UFMG, 201366 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 </li> <li> Slide 67 </li> <li> Anlise de Desigualdade UFMG, 201367 JParser e Checkstyle no parecem ser diferentes em termos de qualidade interna; </li> <li> Slide 68 </li> <li> Discusso UFMG, 201368 Staircase-effects Refatoraes podem mudar o estado de um sistema; </li> <li> Slide 69 </li> <li> Discusso UFMG, 201369 Tolerncia a Bad Smells VRR propostos toleram uma porcentagem de classes com alto valor; Tais classes tendem a representar bad smells; Contudo, no visto como uma ameaa qualidade global de um sistema; </li> <li> Slide 70 </li> <li> Discusso UFMG, 201370 Propriedades Estatsticas mediana no usada para definir um valor de referncia; usada simplesmente para penalizar Compliance Rates; </li> <li> Slide 71 </li> <li> Trabalhos Futuros UFMG, 201371 </li> <li> Slide 72 </li> <li> Situao Atual UFMG, 201372 Mtodo emprico para extrair VRR; Viabilidade por meio de estudo de caso Subcorpus; Anlise histrica; Anlise de desigualdade; </li> <li> Slide 73 </li> <li> Trabalhos futuros UFMG, 201373 </li> <li> Slide 74 </li> <li> Trabalhos futuros UFMG, 201374 Dois Novos Estudos de caso: 1.Ampliar o conjunto de mtricas: 10 mtricas; 2.Extrair VRR para diferentes contextos: tamanho do sistema, domnio e linguagem de programao; Reutilizar os dados de Zhang et al. [ICSM, 2013] </li> <li> Slide 75 </li> <li> Trabalhos futuros UFMG, 201375 Ferramenta de Apoio Mtricas VRR Mtodo proposto Outliers Entrada Processamento Sada </li> <li> Slide 76 </li> <li> Trabalhos futuros UFMG, 201376 Comparao com outras Abordagens Alves et al. [2010] e Ferreira et al. [2011] utilizando um mesmo conjunto de sistemas e mtricas. Enriquecer o captulo de reviso da literatura com um estudo comparativo real </li> <li> Slide 77 </li> <li> Trabalhos futuros UFMG, 201377 Aplicao - Identificar dbito tcnico (TD) Metfora inspirada em uma dvida financeira; VRR - pagar dvida decorrente de um TD excessivo Dbito Tcnico Dbito Tcnico Bad Smells Anlise Esttica Violao de Modularidade </li> <li> Slide 78 </li> <li> Publicaes UFMG, 201378 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 Verificao de Similaridade entre Sistemas Orientados a Objetos. SBQS, 2012. </li> <li> Slide 79 </li> <li> Cronograma UFMG, 201379 </li> <li> Slide 80 </li> <li> UFMG, 201380 Previso de defesa Dezembro/2014 </li> <li> Slide 81 </li> <li> Obrigada! </li> <li> Slide 82 </li> <li> Mtodo emprico para extrair VRR UFMG, 201382 Calcular p e k Exemplo TAIL : Corpus = 4 sistemas e Tail = 90% Sistema75%80%85%90% Trove 233 3 JUnit 223 4 Lucene 456 8 Weka 7810 14 </li> <li> Slide 83 </li> <li> Anlise Histrica UFMG, 201383 NOM (p = 80, k = 17) </li> <li> Slide 84 </li> <li> Anlise Histrica UFMG, 201384 WMC (p = 75, k = 32) </li> <li> Slide 85 </li> <li> Anlise Histrica UFMG, 201385 PUBA/NOA (p = 75, k = 0,1) </li> <li> Slide 86 </li> <li> Discusso UFMG, 201386 Requisitos Composio; Agregao; Simetria; </li> </ul>