Uma abordagem para análise estática automática de procedimentos armazenados em bancos de dados.

Detalhes bibliográficos
Ano de defesa: 2013
Autor(a) principal: NASCIMENTO FILHO, Dimas Cassimiro do.
Orientador(a): Não Informado pela instituição
Banca de defesa: Não Informado pela instituição
Tipo de documento: Dissertação
Tipo de acesso: Acesso aberto
Idioma: por
Instituição de defesa: Universidade Federal de Campina Grande
Brasil
Centro de Engenharia Elétrica e Informática - CEEI
PÓS-GRADUAÇÃO EM CIÊNCIA DA COMPUTAÇÃO
UFCG
Programa de Pós-Graduação: Não Informado pela instituição
Departamento: Não Informado pela instituição
País: Não Informado pela instituição
Palavras-chave em Português:
Link de acesso: http://dspace.sti.ufcg.edu.br:8080/jspui/handle/riufcg/12351
Resumo: Os procedimentos armazenados em bancos de dados são comumente utilizados por aplicações para acessar e manipular dados em bancos de dados. Se os procedimentos forem implementados de maneira ineficiente, esperas demasiadas podem ser repassadas para a camada de aplicação e acarretar perdas financeiras significativas para as empresas. Caso sejam implementados usando más práticas de programação, os procedimentos podem apresentar difícil legibilidade e entendimento. Considerando que uma parte considerável da lógica de negócio das aplicações pode ser desenvolvida na forma de procedimentos, a redução destes problemas utilizando inspeções manuais pode tornar-se um processo custoso, propenso a erros e desestimulante para os desenvolvedores. Neste trabalho, é proposta uma abordagem, baseada em análise estática automática de código-fonte, para verificação da conformidade de procedimentos de banco de dados com diretrizes pré-definidas de eficiência e qualidade. A abordagem proposta foi instanciada para uma linguagem de programação de banco de dados específica e avaliada de três maneiras. Primeiramente, foi medido o impacto da aplicação de diretrizes de eficiência no tempo de execução de procedimentos de banco de dados. Para as maiores cargas de trabalho testadas, as diretrizes investigadas acarretaram em melhorias superiores a 80%. Além disso, foi realizado um estudo de caso, utilizando procedimentos de banco de dados reais, no intuito de avaliar a eficiência (tempo de análise automática) e eficácia (quantidade de advertências reportadas) da abordagem proposta. Neste processo, foram reportadas 299 advertências após a análise dos procedimentos (∼2KLoC) selecionados e, para tal, foram necessários menos de 7 segundos para a realização da análise automática. Por fim, foram realizados experimentos, no contexto de um projeto industrial real, no intuito de comparar as características da análise realizada pela abordagem proposta com as realizadas de forma manual por desenvolvedores. Nestes experimentos, a abordagem automática apresentou eficiência e eficácia superiores em todos os cenários observados.