Archruby: architecture conformance checking in dynamically typed languages
Carregando...
Arquivos
Data
Autor(es)
Título da Revista
ISSN da Revista
Título de Volume
Editor
Universidade Federal de Minas Gerais
Descrição
Tipo
Dissertação de mestrado
Título alternativo
Primeiro orientador
Membros da banca
Ricardo Terra Nunes Bueno Villela
Eduardo Magno Lages Figueiredo
Eduardo Magno Lages Figueiredo
Resumo
Erosão arquitetural é um problema recorrente na evolução de software. Esse problema se agrava em sistemas desenvolvidos em linguagens dinamicamente tipadas devido (i) a certos recursos providos por tais linguagens tornarem os desenvolvedores mais propícios a quebrar a arquitetura planejada, e (ii) a comunidade de desenvolvedores sofrer dafalta de ferramentas para análise de arquiteturas. Assim, esta dissertação de mestrado propõe uma solução de conformidade e visualização arquitetural baseada em técnicas de análise estática de código e em uma heurística de inferência de tipos para linguagensdinamicamente tipadas. A ideia central é prover à comunidade de desenvolvedores formas de controlar o processo de erosão arquitetural através da detecção de violações arquiteturais e da visualização de um modelo de alto nível da arquitetura implementada, na forma de modelos de reflexão e DSMs. Nesse sentido, foi projetada uma ferramenta,chamada ArchRuby, que implementa a solução proposta. Para avaliar tal solução, foram realizadas quatro avaliações. Primeiro, a solução proposta foi avaliada em três sistemas reais, sendo capaz de identificar 48 violações arquiteturais das quais os arquitetos não tinham conhecimento. Segundo, foi avaliada a acurácia da heurística de inferência de tipos, concluindo-se que (i) a quantidade de tipos analisados aumenta em 5% na média e (ii) certas violações só foram identificadas devido a essa heurística. Terceiro, realizou-se um estudo para comparar a heurística de inferência de tipos proposta comtécnicas de análise dinâmica de código, concluindo-se que (i) a heurística de inferência de tipos proposta provê uma revocação média de 44% e (ii) sete melhorias podem ser incorporadas em técnicas de análise estática de código para aumentar a quantidade de tipos inferidos. Quinto e último, realizou-se um estudo com um sistema real adaptando a ferramenta ArchRuby para utilizar informações geradas por técnicas de análise dinâmica de código, a fim de aumentar o número de dependências a serem analisadas.
Abstract
Assunto
Computação
Palavras-chave
Conformidade arquitetural, Linguagens dinâmicas, Visualização arquitetural de alto nível