860 likes | 989 Views
Paloma Maira de Oliveira Prof. Marco Túlio Valente ( Orientador ). Extração de Valores de Referência Relativos para Métricas de Código Fonte. Agenda. Introdução Trabalhos Relacionados Solução Proposta Estudo de Caso Trabalhos Futuros. UFMG, 2013. Introdução.
E N D
Paloma Maira de Oliveira Prof. Marco Túlio Valente (Orientador) Extração de Valores de Referência Relativos para Métricas de Código Fonte
Agenda Introdução TrabalhosRelacionados SoluçãoProposta Estudo de Caso TrabalhosFuturos UFMG, 2013 UFMG, 2013
Introdução UFMG, 2013
Métricas de código-fonte Acoplamento Encapsulamento Coesão Tamanho Complexidade • Não são amplamente utilizadas para aferir a qualidade interna de produtos de software. UFMG, 2013
Métricas de código-fonte Pouco usadas na prática Instrumento efetivo de medida Valores de Referência UFMG, 2013
Métricas de código-fonte Extrair Valores de Referência Cauda pesada Não é trivial Utiliza a experiência UFMG, 2013
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
TrabalhosRelacionados UFMG, 2013
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; Potanin et al. [2005] Wheeldon & Counsell [2003] Louridas et al. [2008] Baxter et al. [2006] Gao et al. [2010] Concas et al. [2007] Jing et al. [2006] Taube-schock et al. [2011] Vasa et al. [2009] Vasilescu et al. [2011] UFMG, 2013
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
Extração de Valores de Referência • Métodos que consideram distribuições de cauda-pesada Alves et al. [2010] Baggen [2012] Heitlager et al. [2007] Ferreira et al. [2011] UFMG, 2013
Modelo de Manutenibilidade do SIG.EU Baggen [2012] Alves et al. [2010] Heitlager et al. [2007] • Metodologia empírica (100 sistemas); • Novidade: ponderação por LOC; UFMG, 2013
Modelo de Manutenibilidade do SIG.EU; Baggen [2012] Alves et al. [2010] Heitlager et al. [2007] • Resultado: perfis de qualidade e classificação em categorias de risco: “Complexidade de McCabe: 6 - lowrisk, 8 - moderate risk, 14 - high risk, >14 – very high risk” [Alves, 2010] - ICSM UFMG, 2013
Extração de Valores de Referência • Métodos que consideram distribuições de cauda-pesada Alves et al. [2010] Baggen [2012] Heitlager et al. [2007] Ferreira et al. [2011] UFMG, 2013
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
Ferreira et al. [2011] • Resultado • Classificação em 3 categorias: Bom, Regular e Ruim “LCOM - Good: 0; regular: 1–20; bad: greater than 20” [Ferreira,2011] – Journalof Systems and Software UFMG, 2013
AvaliaçãoCrítica Alves et al. [2010] Baggen [2012] Heitlager et al. [2007] • Valor de Referência Absoluto; • Objetivoé classificarentidades; • 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] UFMG, 2013
SoluçãoProposta UFMG, 2013
Nossaproposta Valores de ReferênciaRelativos (VRR) • Seguidospelamaioriadas entidades; • VRR quereflitama prática; • A partir de repositório de sistemas; UFMG, 2013
Nossaproposta Extrairvalores de referênciarelativos • M - métrica de código fonte; • k - limite superior; • p - é a porcentagem mínima de entidades que devem seguir esse limite. p% das entidadesdevemter M k UFMG, 2013
Métodoempíricoparaextrair VRR • Exemplo: • Métrica: Número de Atributos (NOA) • Repositório: 106 sistemas Java; UFMG, 2013
Nossaproposta: Extrairvalores de referênciarelativos • Exemplo: • “80% das classesdevemterNOA 8” p% das entidadesdevemterM k UFMG, 2013
Valores de referênciarelativos p% das entidadesdevemter M k • “80% das classes devemter NOA 8” • Cauda: (1- p%) de entidades com M > K • Exemplo: 20% das classes podem ter NOA > 8 • Equilíbrio entre regras: reaisxidealizadas; UFMG, 2013
Métodoempíricoparaextrair VRR • Calcular p e k • Corpus: repositório de sistemas; • MIN: regras de projetos reais; • TAIL: regras de projetos idealizadas; UFMG, 2013
Métodoempíricoparaextrair VRR • Calcular p e k • MIN: • regras de projetos reais; • % mínima de sistemas que seguem uma prática amplamente usada; UFMG, 2013
Métodoempíricoparaextrair 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
Métodoempíricoparaextrair 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
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
Métodoempíricoparaextrair VRR UFMG, 2013
Métodoempíricoparaextrair VRR Retorna a % de sistemas do corpus que seguem o VRR para o par [p,k] UFMG, 2013
Exemplo– NOA - ComplianceRate • ComplianceRateparadiferentesvalores de p e k • Função crescente de acordo com k; • Crescimento mais lento quando p aumenta; UFMG, 2013
Exemplo– NOA - ComplianceRate • ComplianceRate[85, 17] = 100% UFMG, 2013
Métodoempíricoparaextrair VRR Penaliza CompliaceRate < MIN% UFMG, 2013
Exemplo– NOA - ComplianceRate • ComplianceRate[85, 17] = 100% • MIN = 90% • Penalty1[85, 17]= 0 UFMG, 2013
Métodoempíricoparaextrair VRR Penaliza CompliaceRate quando k > TailMedian* UFMG, 2013
Métodoempíricoparaextrair VRR TailMedian: é a mediana do TAIL de todos os sistemas do corpus; Exemplo: Corpus – 4 sistemas: UFMG, 2013
Métodoempíricoparaextrair VRR Penaliza CompliaceRate quando k > TailMedian* UFMG, 2013
Exemplo– NOA - ComplianceRate • ComplianceRate[85, 17] = 100% • K = 17 • MedianTail = 9 • Penalty2[17]: (17-9)/9 = 0,89 K > MedianTail UFMG, 2013
Métodopropostoparaextrair VRR O valor de referência relativo é o menor valor encontrado para ComplianceRatePenalty • ComplianceRatePenalty: média ponderada entre as penalidades UFMG, 2013
NOA - ComplianceRatePenalty Menor UFMG, 2013
NOA - ComplianceRatePenalty Menor • ComplianceRatePenalty[85, 17] = 0,89/3 = 0,29 • Equilíbrio entre regrasreais x idealizadas UFMG, 2013
NOA - ComplianceRatePenalty Critério de desempate Maior p e menor k Menor • ComplianceRatePenalty = 0 em 5 casos: [75,7] [75,8] [75,9] [80,8] [80,9] [80,8] [80,9] UFMG, 2013
NOA - ComplianceRatePenalty Valor de referência relativo para a métrica NOA [p,k] = [80,8] [75,7] [75,8] [75,9] [80,8] [80,9] “80% das classesdevemterNOA 8” UFMG, 2013
VRR - NOA “80% das classesdevemterNOA 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
O queestánacauda? Classes com alto valor de NOA • Considerando apenas sistemas que atendem o VRR UFMG, 2013
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
Estudo de Caso UFMG, 2013
Estudo de Caso • Extração de VRR • Extração para um subcorpus • Análise histórica • Análise de desigualdade UFMG, 2013
Estudo de Caso: Qualitas Corpus • versão 20101126r com 106 sistemas Fonte: Vasilescu et al. [ICSM, 2011] UFMG, 2013
Estudo de Caso: Qualitas Corpus • Métricas: • Tamanho: NOM • Acoplamento: FAN-OUT • Complexidade: WMC • Encapsulamento: PUBA/NOA UFMG, 2013