[en] A HISTORY SENSITIVE APPROACH TO CODE ANOMALY DETECTION - LEANDRA MARA DA SILVA (2011)
[pt] A modularização do código pode influenciar diretamente a manutenibilidade de sistemas de software. Por isso, pesquisadores têm proposto mecanismos que visam contribuir com a identificação de potenciais anomalias de modularidade no código. Nesse contexto, um mecanismo baseado em métricas que vêm sendo bastante divulgado são as estratégias de detecção. Comumente, elas são compostas por métricas que consideram apenas propriedades de versões isoladas dos sistemas. Entretanto, estudos recentes relatam que tal abordagem têm se apresentado contraproducente. Nossa pesquisa está relacionada à investigação dos possíveis benefícios de se considerar informações sobre a evolução do código na detecção de anomalias. Nesse contexto, este trabalho propõe um conjunto de métricas e de estratégias de detecção que consideram propriedades históricas do código em evolução. Além disso, uma ferramenta de medição e avaliação para dar suporte à abordagem também foi desenvolvida. Essa ferramenta permite a especificação declarativa de diferentes estratégias de detecção através de uma linguagem específica de domínio. Tal fato atende a necessidades particulares de desenvolvedores na configuração de estratégias e disponinbiliza a pesquisadores um ambiente propício à experimentação de estratégias de detecção. Ainda como contribuição desta pesquisa, é apresentada uma avaliação das estratégias em termos de precisão e revocação em dois sistemas de domínio diferentes. Resultados de estratégias convencionais e sensíveis à história são comparados em detecções de anomalias clássicas, tais como God Class, Divergent Change e Shotgun Surgery em um total de 16 versões desses sistemas. Como resultado desse estudo observou-se que a utilização de informações relacionadas à evolução do código pode trazer importantes contribuições à detecção de anomalias de código.