Dissertação
Alinhamento de rastros de execução de programas para compreensão de pontos de variação em código-fonte
Registro en:
PAIXÃO, Klérisson Vinícius Ribeiro da. Alinhamento de rastros de execução de programas para compreensão
de pontos de variação em código-fonte. 2009. 79 f. Dissertação (Mestrado em Ciências Exatas e da Terra) - Universidade Federal de Uberlândia, Uberlândia, 2009.
Autor
Paixão, Klérisson Vinícius Ribeiro da
Institución
Resumen
The fact that requirement changes are inherent in software projects is well known. All
successful software must continually evolve to support user requests, hardware changes
and environment changes. However, discovering what are the software artifacts that need
to evolve or where a new feature have to be inserted is a major challenge to Software
Maintenance. In addition, discovering where the source code was refactored is another
problem that hinders the location of concepts in source code. This work proposes a
method to locate source code artifacts that will drive the evolution process in order to
add new features in the system or to compare source code artifacts extracted from dierent
versions of the same system in order to analyse where refactorings have taken place. The
approach is based on the pairwise alignment of method call sequences obtained from
the execution of predened functionalities. The misaligned points show the dierences
between the implementation of two similar functionalities or the dierences between the
implementation of some functionality in two dierent versions of the system.The proposed
method is validated with the analysis of the ArgoUML CASE tool. Specically, the
method have proven to be useful to locate potential source code artifact that helps the
system comprehension with the reduction of the number of elements that the developer
should anlyse. Mestre em Ciência da Computação É fato conhecido, que mudanças são inerentes a sistemas computacionais. Todo software
de sucesso passa por contínuas evoluções seja para atender as novas expectativas dos
usúarios, mudanças de hardware e mudanças no ambiente operacional. Contudo, um dos
problemas mais signicativos nas atuais práticas de evolução de software é a diculdade
dos mantenedores em encontrar seções nos códigos fontes que precisam ser alteradas ou
onde novas características precisam ser inseridas. Outro problema consiste nas refatora
ções produzidas durante o processo de mudança que também podem representar um
desao para a localização de conceitos entre diferentes versões. Neste trabalho é proposto
um mecanismo para localização de elementos de código-fonte que servirão de base
para inserção de novas funcionalidades em um sistema e para comparação de elementos
de código de versões diferentes sob o ponto de vista do conceito que eles implementam.
Especicamente, a abordagem proposta baseia-se no alinhamento de duas sequências de
chamadas de métodos obtidas da execução de determinadas funcionalidades do sistema.
Os pontos de desalinhamento mostram diferenças entre a implementação de duas funcionalidades
similares ou a diferença de implementação de uma funcionalidade entre duas
versões diferentes do sistem. O método é validado com a análise de resultados na ferramenta
CASE ArgoUML. Esta abordagem mostrou-se útil para prover localização de
potenciais artefatos do código-fonte que ajudem na compreensão do sistema diminuindo
a quantidade de elementos que os desenvolvedores deverão analisar.