• No results found

As métricas têm sido historicamente utilizadas para detectar anomalias de código [Lanza & Marinescu, 2006; Marinescu, 2004]. Marinescu [Marinescu, 2004] propôs a utilização de estratégias compostas de métricas tradicionais para a detecção de anoma- lias de código. Ele observou que várias métricas são necessárias para capturar todos os fatores que definem anomalias. A avaliação da sua abordagem de detecção indica uma acurácia de cerca de 60% para a maior parte das anomalias de código. Ele baseou-se em várias métricas tradicionais também utilizadas neste estudo, mas não usou métricas de interesses.

Vários estudos têm utilizado as métricas tradicionais e de interesses para avaliar atributos de software, tais como manutenibilidade [Sant’Anna et al., 2003], instabili- dade [Figueiredo et al., 2008; Greenwood et al., 2007] e propensão a erros [Eaddy et al., 2008; Ferrari et al., 2010]. Alguns desses estudos [Figueiredo et al., 2008; Greenwood et al., 2007] dependem de métricas de interesse para apoiar a comparação das decompo- sições orientadas a aspectos [Kiczales et al., 1997] e orientadas a objetos. Ao contrário deste trabalho de mestrado, esses estudos assumem implicitamente que as métricas de interesses são indicadoras confiáveis do atributo de qualidade. Esta pesquisa, por outro lado, destina-se a verificar se as métricas de interesses podem ser adequadas para detectar anomalias.

Eaddy e seus colegas [Eaddy et al., 2008] realizaram três experimentos para avaliar a utilidade de métricas de interesse na identificação de módulos propícios a erros. O experimento deles utilizou seis métricas de interesses, duas delas foram usadas em

nosso experimento, denominadas Espalhamento de Interesses em Componentes (CDC) e Espalhamento de Interesses em Operações (CDO). Eles encontraram uma moderada a forte correlação entre as métricas de interesses e defeitos nos módulos para todos os três experimentos. O objetivo de nosso estudo é diferente, devido ao fato de que não estamos focados na análise de erros propícios. Nosso trabalho complementa e amplia descobertas de Eaddy.

Em uma iniciativa preliminar, foi realizado um estudo piloto [Sant’Anna et al., 2008] abordando um subconjunto das metas estabelecidas para este trabalho de dis- sertação. O trabalho de Sant’Anna [2008] envolveu 30 participantes que detectaram as anomalias Divergent Change e Shotgun Surgery no sistema Health Watcher. Este trabalho de mestrado amplia o trabalho anterior, realizando novas experiências, onde se analisam os dados de dois sistemas (Health Watcher e MobileMedia) envolvendo 54 participantes. Além disso, também incluímos God Class na atualização da lista de anomalias. Além das anomalias de classes, realizamos também um estudo que envolveu 47 participantes para detectar anomalias em métodos (Feature Envy e God Method ) utilizando-se de um sistema (MobileMedia). Os resultados obtidos neste trabalho re- latam várias novas descobertas sobre a acurácia das métricas de interesses em relação ao trabalho anterior de Sant’Anna [Sant’Anna et al., 2008].

6.3

Considerações Finais

As conclusões obtidas aqui são restritas às métricas envolvidas, anomalias e sistemas utilizados. Após uma análise das ameaças à validade apresentadas anteriormente, constatamos que os nossos estudos experimentais estão propícios a terem todas as ameaças. Pois, apesar de termos uma amostra significativa para análise, não realizamos um teste estatístico rigoroso dos dados coletados nos experimentos.

Outro fator de variação do experimento é que apesar de ter havido uma discussão sobre o projeto e aplicação do experimento em instituições e países distintos, mesmo assim ele está sujeito a sofrer ameaças. Reconhecemos estas ameaças, mas elas são típicas de estudos como o nosso. Entretanto, o nosso estudo preenche a lacuna na literatura relatando a análise original sobre o uso de métricas de interesse para a de- tecção de anomalias. Além disso, esta dissertação descreveu a estrutura experimental do presente estudo que pode ser usada em outras aplicações experimentais.

Conclusões e Trabalhos Futuros

A avaliação da manutenibilidade do software é o ponto crítico na Engenharia de Soft- ware, pois ela é largamente dependente da disponibilidade de métricas que detectem com acurácia as anomalias de código. Diversos estudos empíricos [Conejero et al., 2012; Figueiredo et al., 2008; Garcia et al., 2005; Greenwood et al., 2007] usam a eficácia das métricas de interesse para avaliar a qualidade e manutenibilidade de software. En- tretanto, estes estudos não avaliam diretamente a acurácia das métricas de interesse para detecção destas anomalias. Por isso, nesta dissertação, foi feita uma avaliação das métricas de interesse com 101 participantes para este fim. Neste capítulo apresentamos as conclusões obtidas nesta dissertação (Seção 7.1) e os trabalhos a serem realizados em futuros desdobramentos desta pesquisa (Seção 7.2).

7.1

Conclusões

Dois estudos experimentais com propósitos semelhantes foram realizados no contexto deste trabalho de mestrado. O primeiro estudo envolveu anomalias em classes, onde os resultados obtidos revelaram que as métricas de interesse são claramente úteis para detectar a anomalia Divergent Change. As métricas de interesse também se mostraram boas quando combinadas, com as métricas tradicionais para detectar as anomalias God

Class e Shotgun Surgery. No segundo estudo, que envolveu anomalias em métodos, os

resultados obtidos revelaram que as métricas de interesse, em especial a Número de Interesses por Operações (NCO), é útil para detectar a anomalia God Method quando combinada com métricas tradicionais. No entanto, nenhuma das métricas tradicionais e de interesse avaliadas foram consideradas úteis para detectar Feature Envy. Em geral, os resultados indicaram que a acurácia de cada conjunto de métricas é largamente dependente da adequação de cada métrica, para assim quantificar uma propriedade

explicitamente mencionada na definição da anomalia.

Com o resultado destes dois estudos foi feito uma análise destas métricas para compor as regras heurísticas. Assim, as heurísticas foram compostas por métricas reportadas como úteis pelos participantes. Já que uma métrica sozinha não é eficaz na captura de uma anomalia, isto requer combinações de métricas. Com o propósito de automatizar a detecção de anomalias de código desenvolveu-se uma ferramenta, denominada ConcernMeBS, que implementa as heurísticas para apoiar a detecção de quatro anomalias Divergent Change, Shotgun Surgery, God Class e God Method.

Dentro deste contexto, as contribuições deste trabalho de mestrado foram as seguintes:

1. Foram empiricamente observados e documentados dois estudos que mostram que métricas de interesse podem ser eficazes para detectar algumas anomalias de código, como: Divergent Change, God Class, Shotgun Surgery e God Method. 2. Foi proposta uma nova métrica, Número de Interesse por Operações (NCO), para

auxiliar a medição de propriedades de interesses em métodos.

3. Foi proposto um método quantitativo pela composição de regras heurísticas para apoiar a detecção das anomalias de código.

4. Foi desenvolvido uma ferramenta para apoiar a detecção automática das anoma- lias estudadas.

A realização dos estudos experimentais serviu como uma primeira avaliação da eficácia das métricas de interesse para detectar anomalias de código. Apesar de não poderem ser generalizados, os resultados dos dois estudos experimentais serviram como indicação de que as métricas de interesse são boas para identificar algumas anomalias de código. Porém, existe uma carência destas métricas para capturar todas as propri- edades das anomalias de código classificadas pela literatura.