Return to search

[en] A HISTORY SENSITIVE APPROACH TO CODE ANOMALY DETECTION / [pt] UMA ABORDAGEM SENSÍVEL À HISTÓRIA PARA DETECÇÃO DE ANOMALIAS DE CÓDIGO

[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. / [en] The modularization of the code can directly influence the software maintainability.
Therefore, researchers have proposed mechanisms to contribute
to the identification of potential modularity anomalies in source code. In
this context, a mechanism based on metrics that have been widespread are
the detection strategies. Commonly, they are based on metrics that consider
only properties of isolated versions of the systems. However, recent studies
have reported that these strategies have been considered counter-productive.
Our research is related to the investigation of the possible benefits of considering
information about the code evolution to detect anomalies. In this
context, this paper proposes a set of metrics and detection strategies that
consider historic properties of the code evolution. Furthermore, a measuring
and assessing tool to support the approach was also developed. This tool allows
the declarative specifcation of different detection strategies through a
domain-specific language. This fact meets the particular needs of developers
in setting strategies and dispose to researchers an opportune environment to
detection strategies experimentations. Also as a contribution of this research
is presented an evaluation of strategies in terms of precision and recall in
two systems of different domains. Results of conventional strategies and of
history-sensitive strategies are compared in detections of classical modularity
flaws, such as God Class, Divergent Change and Shotgun Surgery in
a total of 16 versions of these systems. Results of this study showed that
the use of information related to the code evolution can provide important
contributions to detect design flaws in code.

Identiferoai:union.ndltd.org:puc-rio.br/oai:MAXWELL.puc-rio.br:17163
Date30 March 2011
CreatorsLEANDRA MARA DA SILVA
ContributorsCARLOS JOSE PEREIRA DE LUCENA, CARLOS JOSE PEREIRA DE LUCENA
PublisherMAXWELL
Source SetsPUC Rio
LanguagePortuguese
Detected LanguagePortuguese
TypeTEXTO

Page generated in 0.0024 seconds