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)
Agenda Introdução Trabalhos Relacionados Solução Proposta Estudo de Caso Trabalhos Futuros UFMG, 2013
Introdução UFMG, 2013
Métricas de código-fonte UFMG, Acoplamento Coesão Complexidade Tamanho Encapsulamento Não são amplamente utilizadas para aferir a qualidade interna de produtos de software.
Métricas de código-fonte UFMG, Pouco usadas na prática Pouco usadas na prática Valores de Referência Instrumento efetivo de medida
Métricas de código-fonte UFMG, Extrair Valores de Referência Não é trivial Utiliza a experiência Cauda pesada
Distribuição de cauda-pesada UFMG, 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!
Trabalhos Relacionados UFMG, 20138
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, 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]
Extração de Valores de Referência Estatística descritiva / Especialistas – Não respeitam a distribuição dos dados; UFMG, Erni & Lewerentz [1996] Lanza & Marinescu [2006] JPL [2010]
Extração de Valores de Referência Métodos que consideram distribuições de cauda-pesada UFMG, Ferreira et al. [2011] Alves et al. [2010] Heitlager et al. [2007] Baggen [2012]
Modelo de Manutenibilidade do SIG.EU Metodologia empírica (100 sistemas); Novidade: ponderação por LOC; UFMG, Alves et al. [2010] Heitlager et al. [2007] Baggen [2012]
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, Alves et al. [2010] Heitlager et al. [2007] Baggen [2012]
Extração de Valores de Referência Métodos que consideram distribuições de cauda-pesada UFMG, Ferreira et al. [2011] Alves et al. [2010] Heitlager et al. [2007] Baggen [2012]
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,
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, Ferreira et al. [2011]
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, Ferreira et al. [2011] Alves et al. [2010] Heitlager et al. [2007] Baggen [2012]
Solução Proposta UFMG,
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,
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,
Método empírico para extrair VRR UFMG, Exemplo: – Métrica: Número de Atributos (NOA) – Repositório: 106 sistemas Java;
Nossa proposta: UFMG,
Valores de referência relativos UFMG,
Método empírico para extrair VRR UFMG, Calcular p e k – Corpus: repositório de sistemas; – MIN : regras de projetos reais; – TAIL : regras de projetos idealizadas;
Método empírico para extrair VRR UFMG, Calcular p e k – MIN : – regras de projetos reais; – % mínima de sistemas que seguem uma prática amplamente usada;
Método empírico para extrair VRR UFMG, 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”
Método empírico para extrair VRR UFMG,
Exemplo de Parâmetros - NOA UFMG,
Método empírico para extrair VRR UFMG,
Método empírico para extrair VRR UFMG, Retorna a % de sistemas do corpus que seguem o VRR para o par [p,k]
Exemplo – NOA - ComplianceRate UFMG, ComplianceRate para diferentes valores de p e k Função crescente de acordo com k; Crescimento mais lento quando p aumenta;
Exemplo – NOA - ComplianceRate UFMG, ComplianceRate[85, 17] = 100%
Método empírico para extrair VRR UFMG, Penaliza CompliaceRate < MIN%
Exemplo – NOA - ComplianceRate UFMG, ComplianceRate[85, 17] = 100% MIN = 90% Penalty1[85, 17] = 0
Método empírico para extrair VRR UFMG, Penaliza CompliaceRate quando k > TailMedian*
Método empírico para extrair VRR SistemaTail: 90% Trove3 JUnit4 Lucene8 Weka14 TailMedian6 UFMG, TailMedian: é a mediana do TAIL de todos os sistemas do corpus; Exemplo: Corpus – 4 sistemas:
Método empírico para extrair VRR UFMG, Penaliza CompliaceRate quando k > TailMedian*
Exemplo – NOA - ComplianceRate UFMG, ComplianceRate[85, 17] = 100% K = 17 MedianTail = 9 Penalty2[17]: (17-9)/9 = 0,89 K > MedianTail
Método proposto para extrair VRR UFMG, O valor de referência relativo é o menor valor encontrado para ComplianceRatePenalty ComplianceRatePenalty: média ponderada entre as penalidades
NOA - ComplianceRatePenalty UFMG, Menor
NOA - ComplianceRatePenalty UFMG, ComplianceRatePenalty[85, 17] = 0,89/3 = 0,29 Equilíbrio entre regras reais x idealizadas Menor
NOA - ComplianceRatePenalty UFMG, 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
NOA - ComplianceRatePenalty UFMG, 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]
VRR - NOA UFMG,
O que está na cauda? UFMG, Classes com alto valor de NOA Considerando apenas sistemas que atendem o VRR
Estudo de Caso: Qualitas Corpus UFMG, 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.
Estudo de Caso UFMG,
Estudo de Caso UFMG, Extração de VRR Extração para um subcorpus Análise histórica Análise de desigualdade
Estudo de Caso: Qualitas Corpus UFMG, versão r com 106 sistemas Fonte: Vasilescu et al. [ICSM, 2011]
Estudo de Caso: Qualitas Corpus UFMG, Métricas: – Tamanho: NOM – Acoplamento: FAN-OUT – Complexidade: WMC – Encapsulamento: PUBA/NOA
Estudo de Caso: Qualitas Corpus UFMG, Análise da distribuição
Estudo de Caso: Qualitas Corpus UFMG,
Valores de referência relativos UFMG,
Sistemas outliers UFMG,
Estudo de Caso VRR para um subcorpus UFMG,
VRR para um subcorpus UFMG, Domínio Tools – 26 sistemas; Tools - subconjunto do Qualitas Corpus; VRR ligeiramente maiores para os parâmetros p e k;
VRR para um subcorpus UFMG, Exemplo Corpus original – 106 sistemas Domínio Tools – 26 sistemas
Corpus x Subcorpus UFMG, função quantil da mediana dos valores de WMC para o corpus e subcorpus;
Corpus x Subcorpus UFMG, Diferença apenas nos últimos quantis; No subcorpus as classes da cauda tendem a ser maiores;
VRR para um subcorpus UFMG, 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;
Estudo de Caso Análise Histórica UFMG,
Análise Histórica UFMG, VRR são válidos p/ diferentes versões? Sistemas considerados: Qualitas e COMETS Intervalos de bi-semanas;
Análise Histórica UFMG, FAN-OUT (p = 80, k = 15)
Análise Histórica UFMG, VRR capturam práticas de projetos duradouras; Sistemas não outliers apresentaram o mesmo comportamento em todas as versões analisadas;
Estudo de Caso Análise de Desigualdade UFMG,
Análise de Desigualdade UFMG, Í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
Análise de Desigualdade UFMG, JParser e Checkstyle não parecem ser diferentes em termos de qualidade interna;
Discussão UFMG, Staircase-effects – Refatorações podem mudar o estado de um sistema;
Discussão UFMG, 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;
Discussão UFMG, Propriedades Estatísticas mediana não é usada para definir um valor de referência; usada simplesmente para penalizar Compliance Rates;
Trabalhos Futuros UFMG,
Situação Atual UFMG, Método empírico para extrair VRR; Viabilidade por meio de estudo de caso – Subcorpus; – Análise histórica; – Análise de desigualdade;
Trabalhos futuros UFMG,
Trabalhos futuros UFMG, 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]
Trabalhos futuros UFMG, Ferramenta de Apoio Métricas VRR Método proposto Outliers Entrada Processamento Saída
Trabalhos futuros UFMG, 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
Trabalhos futuros UFMG, 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
Publicações UFMG, Paloma Oliveira; Hudson Borges; Marco Tulio Valente; Heitor Costa. Metrics Based Detection of Similar Software. SEKE, Paloma Oliveira; Hudson Borges; Marco Tulio Valente; Heitor Costa. Uma Abordagem para Verificação de Similaridade entre Sistemas Orientados a Objetos. SBQS, 2012.
Cronograma UFMG,
UFMG, Previsão de defesa Dezembro/2014
Obrigada!
Método empírico para extrair VRR UFMG, Calcular p e k – Exemplo TAIL : – Corpus = 4 sistemas e Tail = 90% Sistema75%80%85%90% Trove JUnit Lucene Weka
Análise Histórica UFMG, NOM (p = 80, k = 17)
Análise Histórica UFMG, WMC (p = 75, k = 32)
Análise Histórica UFMG, PUBA/NOA (p = 75, k = 0,1)
Discussão UFMG, Requisitos – Composição; – Agregação; – Simetria;