1 / 86

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

conroy
Download Presentation

Extração de Valores de Referência Relativos para Métricas de Código Fonte

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


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

  2. Agenda Introdução TrabalhosRelacionados SoluçãoProposta Estudo de Caso TrabalhosFuturos UFMG, 2013 UFMG, 2013

  3. Introdução UFMG, 2013

  4. 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

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

  6. Métricas de código-fonte Extrair Valores de Referência Cauda pesada Não é trivial Utiliza a experiência 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! UFMG, 2013

  8. TrabalhosRelacionados 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; 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

  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] UFMG, 2013

  11. 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

  12. 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

  13. 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

  14. 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

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

  16. 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

  17. 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

  18. SoluçãoProposta UFMG, 2013

  19. Nossaproposta Valores de ReferênciaRelativos (VRR) • Seguidospelamaioriadas entidades; • VRR quereflitama prática; • A partir de repositório de sistemas; UFMG, 2013

  20. 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

  21. Métodoempíricoparaextrair VRR • Exemplo: • Métrica: Número de Atributos (NOA) • Repositório: 106 sistemas Java; UFMG, 2013

  22. Nossaproposta: Extrairvalores de referênciarelativos • Exemplo: • “80% das classesdevemterNOA 8” p% das entidadesdevemterM k UFMG, 2013

  23. 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

  24. 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

  25. 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

  26. 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

  27. 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

  28. 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

  29. Métodoempíricoparaextrair VRR UFMG, 2013

  30. Métodoempíricoparaextrair VRR Retorna a % de sistemas do corpus que seguem o VRR para o par [p,k] UFMG, 2013

  31. Exemplo– NOA - ComplianceRate • ComplianceRateparadiferentesvalores de p e k • Função crescente de acordo com k; • Crescimento mais lento quando p aumenta; UFMG, 2013

  32. Exemplo– NOA - ComplianceRate • ComplianceRate[85, 17] = 100% UFMG, 2013

  33. Métodoempíricoparaextrair VRR Penaliza CompliaceRate < MIN% UFMG, 2013

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

  35. Métodoempíricoparaextrair VRR Penaliza CompliaceRate quando k > TailMedian* UFMG, 2013

  36. Métodoempíricoparaextrair VRR TailMedian: é a mediana do TAIL de todos os sistemas do corpus; Exemplo: Corpus – 4 sistemas: UFMG, 2013

  37. Métodoempíricoparaextrair VRR Penaliza CompliaceRate quando k > TailMedian* UFMG, 2013

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

  39. Métodopropostoparaextrair VRR O valor de referência relativo é o menor valor encontrado para ComplianceRatePenalty • ComplianceRatePenalty: média ponderada entre as penalidades UFMG, 2013

  40. NOA - ComplianceRatePenalty Menor UFMG, 2013

  41. NOA - ComplianceRatePenalty Menor • ComplianceRatePenalty[85, 17] = 0,89/3 = 0,29 • Equilíbrio entre regrasreais x idealizadas UFMG, 2013

  42. 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

  43. 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

  44. 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

  45. O queestánacauda? Classes com alto valor de NOA • Considerando apenas sistemas que atendem o VRR 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. UFMG, 2013

  47. Estudo de Caso UFMG, 2013

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

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

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

More Related