A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

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)

Apresentações semelhantes


Apresentação em tema: "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)"— Transcrição da apresentação:

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

2 Agenda Introdução Trabalhos Relacionados Solução Proposta Estudo de Caso Trabalhos Futuros UFMG, 2013

3 Introdução UFMG, 2013

4 Métricas de código-fonte UFMG, 20134 Acoplamento Coesão Complexidade Tamanho Encapsulamento Não são amplamente utilizadas para aferir a qualidade interna de produtos de software.

5 Métricas de código-fonte UFMG, 20135 Pouco usadas na prática Pouco usadas na prática Valores de Referência Instrumento efetivo de medida

6 Métricas de código-fonte UFMG, 20136 Extrair Valores de Referência Não é trivial Utiliza a experiência Cauda pesada

7 Distribuição de cauda-pesada UFMG, 20137 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!

8 Trabalhos Relacionados UFMG, 20138

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; UFMG, 20139 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]

10 Extração de Valores de Referência Estatística descritiva / Especialistas – Não respeitam a distribuição dos dados; UFMG, 201310 Erni & Lewerentz [1996] Lanza & Marinescu [2006] JPL [2010]

11 Extração de Valores de Referência Métodos que consideram distribuições de cauda-pesada UFMG, 201311 Ferreira et al. [2011] Alves et al. [2010] Heitlager et al. [2007] Baggen [2012]

12 Modelo de Manutenibilidade do SIG.EU Metodologia empírica (100 sistemas); Novidade: ponderação por LOC; UFMG, 201312 Alves et al. [2010] Heitlager et al. [2007] Baggen [2012]

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 UFMG, 201313 Alves et al. [2010] Heitlager et al. [2007] Baggen [2012]

14 Extração de Valores de Referência Métodos que consideram distribuições de cauda-pesada UFMG, 201314 Ferreira et al. [2011] Alves et al. [2010] Heitlager et al. [2007] Baggen [2012]

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, 201315

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 UFMG, 201316 Ferreira et al. [2011]

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 UFMG, 201317 Ferreira et al. [2011] Alves et al. [2010] Heitlager et al. [2007] Baggen [2012]

18 Solução Proposta UFMG, 201318

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, 201319

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. UFMG, 201320

21 Método empírico para extrair VRR UFMG, 201321 Exemplo: – Métrica: Número de Atributos (NOA) – Repositório: 106 sistemas Java;

22 Nossa proposta: UFMG, 201322

23 Valores de referência relativos UFMG, 201323

24 Método empírico para extrair VRR UFMG, 201324 Calcular p e k – Corpus: repositório de sistemas; – MIN : regras de projetos reais; – TAIL : regras de projetos idealizadas;

25 Método empírico para extrair VRR UFMG, 201325 Calcular p e k – MIN : – regras de projetos reais; – % mínima de sistemas que seguem uma prática amplamente usada;

26 Método empírico para extrair VRR UFMG, 201326 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”

27 Método empírico para extrair VRR UFMG, 201327

28 Exemplo de Parâmetros - NOA UFMG, 201328

29 Método empírico para extrair VRR UFMG, 201329

30 Método empírico para extrair VRR UFMG, 201330 Retorna a % de sistemas do corpus que seguem o VRR para o par [p,k]

31 Exemplo – NOA - ComplianceRate UFMG, 201331 ComplianceRate para diferentes valores de p e k Função crescente de acordo com k; Crescimento mais lento quando p aumenta;

32 Exemplo – NOA - ComplianceRate UFMG, 201332 ComplianceRate[85, 17] = 100%

33 Método empírico para extrair VRR UFMG, 201333 Penaliza CompliaceRate < MIN%

34 Exemplo – NOA - ComplianceRate UFMG, 201334 ComplianceRate[85, 17] = 100% MIN = 90% Penalty1[85, 17] = 0

35 Método empírico para extrair VRR UFMG, 201335 Penaliza CompliaceRate quando k > TailMedian*

36 Método empírico 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:

37 Método empírico para extrair VRR UFMG, 201337 Penaliza CompliaceRate quando k > TailMedian*

38 Exemplo – NOA - ComplianceRate UFMG, 201338 ComplianceRate[85, 17] = 100% K = 17 MedianTail = 9 Penalty2[17]: (17-9)/9 = 0,89 K > MedianTail

39 Método proposto para extrair VRR UFMG, 201339 O valor de referência relativo é o menor valor encontrado para ComplianceRatePenalty ComplianceRatePenalty: média ponderada entre as penalidades

40 NOA - ComplianceRatePenalty UFMG, 201340 Menor

41 NOA - ComplianceRatePenalty UFMG, 201341 ComplianceRatePenalty[85, 17] = 0,89/3 = 0,29 Equilíbrio entre regras reais x idealizadas Menor

42 NOA - ComplianceRatePenalty UFMG, 201342 ComplianceRatePenalty = 0 em 5 casos: [75,7] [75,8] [75,9] [80,8] [80,9] Critério de desempate Maior p e menor k Critério de desempate Maior p e menor k [80,8] [80,9] Menor

43 NOA - ComplianceRatePenalty UFMG, 201343 Valor de referência relativo para a métrica NOA [p,k] = [80,8] Valor de referência relativo para a métrica NOA [p,k] = [80,8]

44 VRR - NOA UFMG, 201344

45 O que está na cauda? UFMG, 201345 Classes com alto valor de NOA Considerando apenas sistemas que atendem o VRR

46 Estudo de Caso: Qualitas Corpus UFMG, 201346 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.

47 Estudo de Caso UFMG, 201347

48 Estudo de Caso UFMG, 201348 Extração de VRR Extração para um subcorpus Análise histórica Análise de desigualdade

49 Estudo de Caso: Qualitas Corpus UFMG, 201349 versão 20101126r com 106 sistemas Fonte: Vasilescu et al. [ICSM, 2011]

50 Estudo de Caso: Qualitas Corpus UFMG, 201350 Métricas: – Tamanho: NOM – Acoplamento: FAN-OUT – Complexidade: WMC – Encapsulamento: PUBA/NOA

51 Estudo de Caso: Qualitas Corpus UFMG, 201351 Análise da distribuição

52 Estudo de Caso: Qualitas Corpus UFMG, 201352

53 Valores de referência relativos UFMG, 201353

54 Sistemas outliers UFMG, 201354

55 Estudo de Caso VRR para um subcorpus UFMG, 201355

56 VRR para um subcorpus UFMG, 201356 Domínio Tools – 26 sistemas; Tools - subconjunto do Qualitas Corpus; VRR ligeiramente maiores para os parâmetros p e k;

57 VRR para um subcorpus UFMG, 201357 Exemplo Corpus original – 106 sistemas Domínio Tools – 26 sistemas

58 Corpus x Subcorpus UFMG, 201358 função quantil da mediana dos valores de WMC para o corpus e subcorpus;

59 Corpus x Subcorpus UFMG, 201359 Diferença apenas nos últimos quantis; No subcorpus as classes da cauda tendem a ser maiores;

60 VRR para um subcorpus UFMG, 201360 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;

61 Estudo de Caso Análise Histórica UFMG, 201361

62 Análise Histórica UFMG, 201362 VRR são válidos p/ diferentes versões? Sistemas considerados: Qualitas e COMETS Intervalos de bi-semanas;

63 Análise Histórica UFMG, 201363 FAN-OUT (p = 80, k = 15)

64 Análise Histórica UFMG, 201364 VRR capturam práticas de projetos duradouras; Sistemas não outliers apresentaram o mesmo comportamento em todas as versões analisadas;

65 Estudo de Caso Análise de Desigualdade UFMG, 201365

66 Análise 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

67 Análise de Desigualdade UFMG, 201367 JParser e Checkstyle não parecem ser diferentes em termos de qualidade interna;

68 Discussão UFMG, 201368 Staircase-effects – Refatorações podem mudar o estado de um sistema;

69 Discussão UFMG, 201369 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;

70 Discussão UFMG, 201370 Propriedades Estatísticas mediana não é usada para definir um valor de referência; usada simplesmente para penalizar Compliance Rates;

71 Trabalhos Futuros UFMG, 201371

72 Situação Atual UFMG, 201372 Método empírico para extrair VRR; Viabilidade por meio de estudo de caso – Subcorpus; – Análise histórica; – Análise de desigualdade;

73 Trabalhos futuros UFMG, 201373

74 Trabalhos futuros UFMG, 201374 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]

75 Trabalhos futuros UFMG, 201375 Ferramenta de Apoio Métricas VRR Método proposto Outliers Entrada Processamento Saída

76 Trabalhos futuros UFMG, 201376 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

77 Trabalhos futuros UFMG, 201377 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 Débito Técnico Bad Smells Análise Estática Violação de Modularidade

78 Publicações 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 Verificação de Similaridade entre Sistemas Orientados a Objetos. SBQS, 2012.

79 Cronograma UFMG, 201379

80 UFMG, 201380 Previsão de defesa Dezembro/2014

81 Obrigada!

82 Método empírico 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

83 Análise Histórica UFMG, 201383 NOM (p = 80, k = 17)

84 Análise Histórica UFMG, 201384 WMC (p = 75, k = 32)

85 Análise Histórica UFMG, 201385 PUBA/NOA (p = 75, k = 0,1)

86 Discussão UFMG, 201386 Requisitos – Composição; – Agregação; – Simetria;


Carregar ppt "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)"

Apresentações semelhantes


Anúncios Google