extração de valores de referência relativos para métricas de código fonte paloma maira de...

Post on 21-Apr-2015

104 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

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)

UFMG, 2013

Agenda

• Introdução

• Trabalhos Relacionados

• Solução Proposta

• Estudo de Caso

• Trabalhos Futuros

UFMG, 2013

UFMG, 2013

Introdução

UFMG, 2013 4

Métricas de código-fonte

Acoplamento

CoesãoComplexidade

TamanhoEncapsulamento

• Não são amplamente utilizadas para aferir a qualidade interna de produtos de software.

UFMG, 2013

Métricas de código-fonte

5

Pouco usadas na prática

Valores de Referência

Instrumento efetivo de medida

UFMG, 2013 6

Métricas de código-fonte

Extrair Valores de Referência

Não é trivial Utiliza a

experiência

Cauda pesada

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

Trabalhos Relacionados

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;

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]

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

Ferreira et al. [2011]

Alves et al. [2010]Heitlager et al. [2007]Baggen [2012]

UFMG, 2013 12

Modelo de Manutenibilidade do SIG.EU

• Metodologia empírica (100 sistemas);

• Novidade: ponderação por LOC;

Alves et al. [2010]Heitlager et al. [2007]

Baggen [2012]

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

Alves et al. [2010]Heitlager et al. [2007]

Baggen [2012]

UFMG, 2013 14

Extração de Valores de Referência

• Métodos que consideram distribuições de cauda-pesada

Ferreira et al. [2011]

Alves et al. [2010]Heitlager et al. [2007]Baggen [2012]

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

• 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

Ferreira et al. [2011]

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

Ferreira et al. [2011]

Alves et al. [2010]Heitlager et al. [2007]Baggen [2012]

UFMG, 2013 18

Solução Proposta

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

p% das entidades devem ter M k

UFMG, 2013 21

Método empírico para extrair VRR

• Exemplo:

– Métrica: Número de Atributos (NOA)

– Repositório: 106 sistemas Java;

UFMG, 2013 22

Nossa proposta:

Extrair valores de referência relativos

• Exemplo:

• “80% das classes devem ter NOA 8”

p% das entidades devem ter M k

UFMG, 2013 23

Valores de referência relativos

p% das entidades devem ter M k

• “80% das classes devem ter NOA 8”

• Cauda: (1- p%) de entidades com M > K

• Exemplo: 20% das classes podem ter NOA > 8

• Equilíbrio entre regras: reais x idealizadas;

UFMG, 2013 24

Método empírico para extrair VRR

• Calcular p e k

– Corpus: repositório de sistemas;

–MIN: regras de projetos reais;

– TAIL: regras de projetos idealizadas;

UFMG, 2013 25

Método empírico para extrair 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étodo empírico para extrair 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étodo empírico para extrair 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étodo empírico para extrair VRR

UFMG, 2013 30

Método empírico para extrair VRR

Retorna a % de sistemas do corpus que seguem o VRR para o par [p,k]

UFMG, 2013 31

Exemplo – NOA - ComplianceRate• ComplianceRate para diferentes valores 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étodo empírico para extrair VRR

Penaliza CompliaceRate < MIN%

UFMG, 2013 34

Exemplo – NOA - ComplianceRate

• ComplianceRate[85, 17] = 100%

• MIN = 90%

• Penalty1[85, 17] = 0

UFMG, 2013 35

Método empírico para extrair VRR

Penaliza CompliaceRate quando k > TailMedian*

UFMG, 2013 36

Método empírico para extrair VRR

Sistema Tail: 90%Trove 3JUnit 4

Lucene 8Weka 14

TailMedian 6

TailMedian: é a mediana do TAIL de todos os sistemas do corpus;

Exemplo: Corpus – 4 sistemas:

UFMG, 2013 37

Método empírico para extrair 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étodo proposto para extrair 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

• ComplianceRatePenalty[85, 17] = 0,89/3 = 0,29• Equilíbrio entre regras reais x idealizadas

Menor

UFMG, 2013 42

NOA - ComplianceRatePenalty

• ComplianceRatePenalty = 0 em 5 casos:

[75,7] [75,8] [75,9] [80,8] [80,9]

Critério de desempate

Maior p e menor k

[80,8] [80,9]

Menor

UFMG, 2013 43

NOA - ComplianceRatePenalty

[75,7] [75,8] [75,9] [80,8] [80,9]“80% das classes devem ter NOA 8”

Valor de referência relativo para a métrica NOA

[p,k] = [80,8]

UFMG, 2013 44

VRR - NOA

“80% das classes devem ter NOA 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 que está na cauda?

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 51

Estudo de Caso: Qualitas Corpus

• Análise da distribuição

UFMG, 2013 52

Estudo de Caso: Qualitas Corpus

UFMG, 2013 53

Valores de referência relativos

UFMG, 2013 54

Sistemas outliers

UFMG, 2013 55

Estudo de Caso

VRR para um subcorpus

UFMG, 2013 56

VRR para um subcorpus

• Domínio Tools – 26 sistemas;

• Tools - subconjunto do Qualitas Corpus;

• VRR ligeiramente maiores para os

parâmetros p e k;

UFMG, 2013 57

VRR para um subcorpus

• Exemplo

• Corpus original – 106 sistemas

• Domínio Tools – 26 sistemas

UFMG, 2013 58

Corpus x Subcorpus

• função quantil da mediana dos valores de WMC para o corpus e subcorpus;

UFMG, 2013 59

Corpus x Subcorpus

• Diferença apenas nos últimos quantis; • No subcorpus as classes da cauda

tendem a ser maiores;

UFMG, 2013 60

VRR para um subcorpus

• 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;

UFMG, 2013 61

Estudo de Caso

Análise Histórica

UFMG, 2013 62

Análise Histórica

• VRR são válidos p/ diferentes versões?

• Sistemas considerados: Qualitas e COMETS

• Intervalos de bi-semanas;

UFMG, 2013 63

Análise Histórica

FAN-OUT (p = 80, k = 15)

UFMG, 2013 64

Análise Histórica

• VRR capturam práticas de projetos

duradouras;

• Sistemas não outliers apresentaram o

mesmo comportamento em todas as

versões analisadas;

UFMG, 2013 65

Estudo de Caso

Análise de Desigualdade

UFMG, 2013 66

Análise de Desigualdade

• Í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

UFMG, 2013 67

Análise de Desigualdade

• JParser e Checkstyle não parecem ser

diferentes em termos de qualidade interna;

UFMG, 2013 68

Discussão

• Staircase-effects

– Refatorações podem mudar o estado de um

sistema;

UFMG, 2013 69

Discussão

• 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;

UFMG, 2013 70

Discussão

• Propriedades Estatísticas

• mediana não é usada para definir um valor de referência;

• usada simplesmente para penalizar Compliance Rates;

UFMG, 2013 71

Trabalhos Futuros

UFMG, 2013 72

Situação Atual

• Método empírico para extrair VRR;

• Viabilidade por meio de estudo de caso

– Subcorpus;

– Análise histórica;

– Análise de desigualdade;

UFMG, 2013 73

Trabalhos futuros

• Aprimorar o método proposto:

– Analisar o impacto dos parâmetros

envolvidos ( e );

– Analisar o impacto do valor da constante

TAIL em diferentes métricas;

UFMG, 2013 74

Trabalhos futuros

• 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]

UFMG, 2013 75

Trabalhos futuros

• Ferramenta de Apoio

Métricas

VRRMétodo

propostoOutliers

Entrada Processamento Saída

UFMG, 2013 76

Trabalhos futuros

• 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

UFMG, 2013 77

Trabalhos futuros

• 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

Bad SmellsAnálise Estática

Violação de Modularidade

UFMG, 2013 78

Publicações

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

UFMG, 2013 79

Cronograma

UFMG, 2013 80

Previsão de defesa

Dezembro/2014

Obrigada!

UFMG, 2013 82

Método empírico para extrair VRR

• Calcular p e k

– Exemplo TAIL:

– Corpus = 4 sistemas e Tail = 90%

Sistema 75% 80% 85% 90%

Trove 2 3 3 3JUnit 2 2 3 4Lucen

e 4 5 6 8Weka 7 8 10 14

UFMG, 2013 83

Análise Histórica

NOM (p = 80, k = 17)

UFMG, 2013 84

Análise Histórica

WMC (p = 75, k = 32)

UFMG, 2013 85

Análise Histórica

PUBA/NOA (p = 75, k = 0,1)

UFMG, 2013 86

Discussão

• Requisitos

– Composição;

– Agregação;

– Simetria;

top related