Um modelo para a análise de impacto em código fonte usando ontologias e recuperação de informação - Noll, Rodrigo Perozzo (2012)
Mudanças são inevitáveis durante o ciclo de vida do software. Estas mudanças são resultado de diferentes necessidades, como a evolução do conhecimento sobre os processos de negócio, alterações de ambiente, etc. Nestas circunstâncias, é crucial ter controle sobre o que essas mudanças representam na aplicação. A análise de impacto representa o processo que gera este conhecimento. Essa análise possui um significado abrangente dentro do desenvolvimento de software, incluindo desde a identificação de estruturas no código fonte até o controle das restrições de gestão de projeto. Esta tese apresenta um modelo para analisar o impacto no código fonte de uma aplicação utilizando ontologias, visando melhorar a precisão e revocação de estruturas identificadas se comparadas a técnicas existentes. O uso de ontologias integra uma perspectiva semântica nas técnicas tradicionalmente baseadas na análise sintática do código fonte. Para o desenvolvimento do modelo de análise de impacto, foram definidos dois submodelos: o de rastreabilidade e o de probabilidade. O modelo de rastreabilidade recebe como entrada o código fonte e uma ontologia de domínio e gera como resultado uma ontologia de rastreabilidade populada automaticamente com elos entre conceitos do domínio (classes e propriedades) e estruturas do código (classes, métodos e atributos). Estes elos são populados através de um analisador léxico e semântico que realiza a categorização, normalização (geração de tokens, expansão e eliminação) e comparação (stemming). Com base na ontologia de rastreabilidade e em um requisito de mudança, o modelo probabilístico classifica cada elo de rastreabilidade utilizando o modelo de Redes de Crenças Bayesianas. Para o cálculo de probabilidade, a classificação dos nodos utilizou o algoritmo PageRank do Google e das arestas, a análise de frequência TFIDF e a dependência conceitual, definida nesta tese. Este modelo de análise de impacto foi implementado como um plugin do eclipse e foi avaliado empiricamente através de três experimentos controlados.