• Sonuç bulunamadı

2.13. Yürüyüşün Değerlendirilmes

2.13.1. Gözlemsel Yürüyüş Değerlendirmes

5.3

Resultados

Esta seção apresenta os resultados do estudo. Primeiramente, os resultados obti- dos a partir do conjunto completo de dados são descritos. Em seguida, são apresentados os resultados da análise realizada por tipos, domínios de aplicação e tamanhos de soft- ware.

5.3.1

Ajuste dos Dados de Todos os Software do Estudo

5.3.1.1 COF

O gráfico de dispersão da Figura 5.1a mostra que os valores menores do que 0,02 são muito mais frequentes do que valores superiores a 0,02. COF pode ser modelado pela distribuição Weibull, com parâmetros α = 0, 91927 and β = 0, 01762. A Figura 5.1b mostra valores de COF modelados pela distribuição Weibull. Mais de 80% dos softwares têm COF menor do que 0,02. A probabilidade de COF assumir valores acima de 0,02 e até 0,14 é baixa, e a probabilidade de COF assumir valores superiores a 0,14 é desprezível. Este resultado indica que, na maior parte dos casos, software aberto tem grau de conectivadade baixo, o que pode contribuir para sua manutenibilidade.

(a) (b)

Figura 5.1. COF – (a) frequência e (b) ajuste à distribuição de Weibull.

5.3.1.2 Conexões Aferentes

O gráfico de dispersão dos valores de conexões aferentes, mostrado na Figura 5.2a, sugere uma distribuição de cauda pesada. A Figura 5.2b mostra os mesmos dados em um gráfico de escala logarítmica. Neste gráfico, a distribuição mostra-se como uma reta inclinada à esquerda, característica de uma lei de potência. Há um pequeno número de classes com alto número de conexões aferentes e um número muito

grande de classes com poucas conexões aferentes. Como mostrado pela Figura 5.2c, valores dessa métrica podem ser modelados pela distribuição Weibull, com parâmetros α = 0, 78986 and β = 3, 2228. A distribuição dos valores é detalhada na Figura 5.2d. Aproximadamente 50% das classes têm pelo menos uma conexão aferente. A probabilidade de uma classe ter de 2 a 20 conexões aferentes é baixa, e a probabilidade de uma classe ter mais de 20 conexões aferentes é desprezível. Esta observação indica que a maioria das classes afeta no máximo uma única classe diretamente. Isso pode contribuir para a manutenibilidade de software, pois uma modificação ou um erro em uma classe impactaria diretamente em um número pequeno de classes.

(a) (b)

(c) (d)

Figura 5.2. Conexões aferentes – (a) frequência, (b) frequência em escala log-log, (c) ajuste à distribuição Weibull e (d) frequência detalhada.

5.3.1.3 LCOM

LCOM também é ajustada por uma distribuição de cauda pesada. A Figura 5.3a mostra um gráfico de dispersão dos valores de LCOM, e a Figura 5.3b mostra os mes- mos dados em escala logarítmica. Este gráfico indica que os valores de LCOM seguem uma lei de potência. Os valores de LCOM podem ser modelados pela distribuição de

5.3. Resultados 73

Weibull, como mostrado na Figura 5.3c, com parâmetros α = 0, 23802 e β = 1, 465. A Figura 5.3d detalha a distribuição dos valores de LCOM. Aproximadamente 50% das classes têm LCOM igual a zero. Há classes com LCOM de 1 a 20 em uma frequên- cia baixa, inferior a 12%. A probabilidade de uma classe ter LCOM superior a 20 é desprezível.

(a) (b)

(c) (d)

Figura 5.3. LCOM – (a) frequência, (b) frequência em escala log-log, (c) ajuste à distribuição Weibull e (d) frequência detalhada.

5.3.1.4 DIT

O gráfico de dispersão na Figura 5.4a mostra a distribuição de valores de DIT, e a Figura 5.4b mostra os mesmos dados em escala logarítmica. Esses gráficos não sugerem características de uma lei de potência. De fato, os valores de DIT podem ser ajustados pela distribuição Poisson, como mostrado na Figura 5.4c, com parâmetro λ = 1, 6818. Na distribuição Poisson, λ é o valor médio da variável randômica. Este resultado mostra que, em um software aberto, a maior distância de uma classe à raiz de sua árvore de herança é 2, em média. Árvores de herança rasas contribuem para a

qualidade estrutural do software diminuindo a sua complexidade [Gamma et al., 2000; Daly et al., 1996; Sommerville, 2003].

(a) (b)

(c)

Figura 5.4. DIT – (a) frequência, (b) frequência em escala log-log, (c) ajuste à distribuição Poisson e (d) frequência detalhada.

5.3.1.5 Atributos Públicos

O gráfico de dispersão do número de atributos públicos, mostrado na Figura 5.5a, revela que há poucas classes com um número grande de atributos públicos. Na maioria dos casos, o número de atributos públicos é zero. A Figura 5.5b mostra os dados em escala logarítmica, que indica que o número de atributos públicos em classes também segue uma lei de potência. Esta métrica pode ser modelada pela distribuição Weibull com parâmetros α = 0, 71008 e β = 4, 4001, o que é mostrado na Figura 5.5c. A Figura 5.5d detalha os dados. Mais de 80% das classes não têm atributos públicos, e a probabilidade de uma classe ter mais de 10 atributos públicos é desprezível. Esta observação revela que a maior parte dos softwares aplica o princípio de ocultação de informação apropriadamente, no que se refere a dados.

5.3. Resultados 75

(a) (b)

(c) (d)

Figura 5.5. Atributos públicos – (a) frequência, (b) frequência em escala log-log, (c) ajuste à distribuição Weibull e (d) frequência detalhada.

5.3.1.6 Métodos Públicos

A frequência de número de métodos públicos é mostrada na Figura 5.6a e, em escala logarítmica, na Figura 5.6b. Estes gráficos mostram que o número de métodos públicos segue uma lei de potência. Esta métrica pode ser modelada pela distribuição Weibull, com parâmetros α = 0, 85938 e β = 5, 6558, como mostrado na Figura 5.6c. A frequência de números de métodos públicos é detalhada na Figura 5.6d. Há uma pequena parte das classes com um número alto de métodos públicos, e a maioria das classes tem poucos métodos públicos. A maior parte das classes tem de 0 a 10 métodos públicos. Classes com 11 a 40 métodos públicos são pouco frequentes, e a probabilidade de uma classe ter mais de 40 métodos públicos é desprezível. Esses resultados mostram que, na maior parte dos casos, uma classe provê poucos serviços.

(a) (b)

(c) (d)

Figura 5.6. Métodos públicos – (a) frequência, (b) frequência em escala log-log, (c) ajuste à distribuição Weibull e (d) frequência detalhada.

Tabela 5.3. Valores Referência Gerais para Métricas de Software OO

Fator Nível Métrica Valor Referência

Conectividade Sistema COF Bom: até 0,02 – Regular: 0,02 a 0,14 – Ruim: superior a 0,14 Classe # Conexões

aferentes

Bom: até 1 – Regular: 2 a 20 – Ruim: superior a 20

Ocultação de informação

Classe # Atributos públicos

Bom: 0 – Regular: 1 a 10 – Ruim: superior a 10

Tamanho da interface

Classe # Métodos públicos

Bom: 0 a 10 – Regular: 11 a 40 – Ruim: superior a 40

Herança Classe DIT Valor típico: 2

Coesão Classe LCOM Bom : 0 – Regular: 1 a 20 – Ruim: superior a 20